From aac1e6264c540bec928493b8ca7ff0cb115556a6 Mon Sep 17 00:00:00 2001 From: Donghoon Shin Date: Thu, 2 Feb 2017 12:47:48 +0900 Subject: [PATCH] Sync up upstream Change-Id: I765a5f675b9744a68b395a8bac301e9412abf12a --- CHANGES.txt | 50 ----------- MANIFEST.in | 1 - README.md | 50 +++++------ debian/changelog | 7 +- debian/docs | 1 - litmus/__init__.py | 2 +- litmus/cmds/__init__.py | 9 ++ litmus/cmds/cmd_adhoc.py | 2 + litmus/cmds/cmd_run.py | 3 +- litmus/core/manager.py | 2 + litmus/helper/helper.py | 32 +------ .../artik10/{conf.yaml => conf_iot.yaml} | 0 litmus/templates/artik10/misc/autoinput | Bin 13976 -> 0 bytes litmus/templates/artik10/misc/getevent | Bin 37415 -> 0 bytes .../artik10/{tc.yaml => tc_iot.yaml} | 0 litmus/templates/artik10/userscript.py | 14 ++- .../artik5/{conf.yaml => conf_iot.yaml} | 0 litmus/templates/artik5/misc/autoinput | Bin 13976 -> 0 bytes litmus/templates/artik5/misc/getevent | Bin 37415 -> 0 bytes .../templates/artik5/{tc.yaml => tc_iot.yaml} | 0 litmus/templates/artik5/userscript.py | 14 ++- .../templates/standalone_tm1/conf_mobile.yaml | 2 +- litmus/templates/standalone_tm1/conf_tv.yaml | 5 -- .../standalone_tm1/conf_wearable.yaml | 4 - .../templates/standalone_tm1/tc_wearable.yaml | 50 ----------- litmus/templates/standalone_tm1/userscript.py | 9 ++ .../templates/standalone_tm2/conf_mobile.yaml | 2 +- litmus/templates/standalone_tm2/conf_tv.yaml | 5 -- .../standalone_tm2/conf_wearable.yaml | 4 - .../templates/standalone_tm2/tc_wearable.yaml | 50 ----------- litmus/templates/standalone_tm2/userscript.py | 9 ++ .../templates/standalone_tw1/conf_mobile.yaml | 4 - litmus/templates/standalone_tw1/conf_tv.yaml | 5 -- .../standalone_tw1/conf_wearable.yaml | 2 +- .../templates/standalone_tw1/tc_mobile.yaml | 50 ----------- litmus/templates/standalone_tw1/tc_tv.yaml | 23 ----- litmus/templates/standalone_tw1/userscript.py | 9 ++ .../templates/standalone_u3/conf_mobile.yaml | 4 - litmus/templates/standalone_u3/conf_tv.yaml | 4 +- .../standalone_u3/conf_wearable.yaml | 4 - litmus/templates/standalone_u3/tc_mobile.yaml | 50 ----------- .../templates/standalone_u3/tc_wearable.yaml | 50 ----------- litmus/templates/standalone_u3/userscript.py | 9 ++ .../templates/standalone_xu3/conf_mobile.yaml | 4 - litmus/templates/standalone_xu3/conf_tv.yaml | 4 +- .../standalone_xu3/conf_wearable.yaml | 4 - .../templates/standalone_xu3/tc_mobile.yaml | 50 ----------- .../templates/standalone_xu3/tc_wearable.yaml | 50 ----------- litmus/templates/standalone_xu3/userscript.py | 9 ++ litmus/templates/u3/conf.yaml | 5 -- litmus/templates/u3/conf_tv.yaml | 5 ++ litmus/templates/u3/tc.yaml | 23 ----- .../{standalone_tm1 => u3}/tc_tv.yaml | 0 litmus/templates/u3/userscript.py | 7 +- .../templates/xu3/{conf.yaml => conf_tv.yaml} | 0 litmus/templates/xu3/tc.yaml | 23 ----- .../{standalone_tm2 => xu3}/tc_tv.yaml | 0 litmus/templates/xu3/userscript.py | 7 +- tools/litmus | 83 ++++++++++++++---- 59 files changed, 205 insertions(+), 610 deletions(-) delete mode 100644 CHANGES.txt rename litmus/templates/artik10/{conf.yaml => conf_iot.yaml} (100%) delete mode 100755 litmus/templates/artik10/misc/autoinput delete mode 100755 litmus/templates/artik10/misc/getevent rename litmus/templates/artik10/{tc.yaml => tc_iot.yaml} (100%) rename litmus/templates/artik5/{conf.yaml => conf_iot.yaml} (100%) delete mode 100755 litmus/templates/artik5/misc/autoinput delete mode 100755 litmus/templates/artik5/misc/getevent rename litmus/templates/artik5/{tc.yaml => tc_iot.yaml} (100%) delete mode 100644 litmus/templates/standalone_tm1/conf_tv.yaml delete mode 100644 litmus/templates/standalone_tm1/conf_wearable.yaml delete mode 100644 litmus/templates/standalone_tm1/tc_wearable.yaml delete mode 100644 litmus/templates/standalone_tm2/conf_tv.yaml delete mode 100644 litmus/templates/standalone_tm2/conf_wearable.yaml delete mode 100644 litmus/templates/standalone_tm2/tc_wearable.yaml delete mode 100644 litmus/templates/standalone_tw1/conf_mobile.yaml delete mode 100644 litmus/templates/standalone_tw1/conf_tv.yaml delete mode 100644 litmus/templates/standalone_tw1/tc_mobile.yaml delete mode 100644 litmus/templates/standalone_tw1/tc_tv.yaml delete mode 100644 litmus/templates/standalone_u3/conf_mobile.yaml delete mode 100644 litmus/templates/standalone_u3/conf_wearable.yaml delete mode 100644 litmus/templates/standalone_u3/tc_mobile.yaml delete mode 100644 litmus/templates/standalone_u3/tc_wearable.yaml delete mode 100644 litmus/templates/standalone_xu3/conf_mobile.yaml delete mode 100644 litmus/templates/standalone_xu3/conf_wearable.yaml delete mode 100644 litmus/templates/standalone_xu3/tc_mobile.yaml delete mode 100644 litmus/templates/standalone_xu3/tc_wearable.yaml delete mode 100644 litmus/templates/u3/conf.yaml create mode 100644 litmus/templates/u3/conf_tv.yaml delete mode 100644 litmus/templates/u3/tc.yaml rename litmus/templates/{standalone_tm1 => u3}/tc_tv.yaml (100%) rename litmus/templates/xu3/{conf.yaml => conf_tv.yaml} (100%) delete mode 100644 litmus/templates/xu3/tc.yaml rename litmus/templates/{standalone_tm2 => xu3}/tc_tv.yaml (100%) diff --git a/CHANGES.txt b/CHANGES.txt deleted file mode 100644 index d928568..0000000 --- a/CHANGES.txt +++ /dev/null @@ -1,50 +0,0 @@ -====================== - litmus Release Notes -====================== - -Version 0.1.0 09 Jun 2016 ---------------------------- -- Initial Version - -Version 0.1.1 27 Jun 2016 ---------------------------- -- Add ttyS0 in uarts list -- Release global lock at exception of device.on() function -- Turn off device if keyboard interrupt is raised while flashing or turning on device -- Add timeout for all call/check_output to avoid hang issue - -Version 0.2.0 09 Sep 2016 ---------------------------- -- Remove acmlock routine to improve test performance -- Support flash function for standalone device type -- Update test helper functions - -Version 0.2.1 09 Sep 2016 ---------------------------- -- Update import command to use shell-like path expansions -- Update standalone device type to avoid sdb error -- Update default templates for u3 and xu3 - -Version 0.3.0 21 Sep 2016 ---------------------------- -- Update projects/topology file location -- Add projects/topology param at command prompt -- Support multiple standalone devices in topology -- Add global lock for standalone device type - -Version 0.3.1 22 Sep 2016 ---------------------------- -- Update cmd_rm handler - -Version 0.3.2 07 Oct 2016 ---------------------------- -- Support artik and more standalone device types - -Version 0.3.3 11 Oct 2016 ---------------------------- -- Support device.screenshot() API - -Version 0.3.4 21 Oct 2016 ---------------------------- -- Update flash method for tw1 to skip passing parameter 'flasher' -- Change private function _sdb_root_on to public function sdb_root_on diff --git a/MANIFEST.in b/MANIFEST.in index 07fcd5a..a9648a1 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -15,7 +15,6 @@ include AUTHORS include README.md include LICENSE.APLv2 -include CHANGES.txt include MANIFEST.in include setup.py recursive-include litmus/templates * diff --git a/README.md b/README.md index 9c7bd31..3c58688 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,7 @@ Litmus is an automated testing tool for tizen arm devices. -Prerequisite ---------------------- +# Prerequisite Litmus uses sdb to communicate with device. sdb is not released on download.tizen.org/tools but you can find it from sdk. @@ -10,51 +9,52 @@ sdb is not released on download.tizen.org/tools but you can find it from sdk. Install sdb from tizen sdk or download binary from below url. 32bit: -http://download.tizen.org/sdk/tizenstudio/official/binary/sdb_2.2.89_ubuntu-32.zip + https://download.tizen.org/sdk/tizenstudio/official/binary/sdb_2.3.0_ubuntu-32.zip 64bit: -http://download.tizen.org/sdk/tizenstudio/official/binary/sdb_2.2.89_ubuntu-64.zip + https://download.tizen.org/sdk/tizenstudio/official/binary/sdb_2.3.0_ubuntu-64.zip Unzip this package and copy sdb binary to /usr/bin + $ wget http://download.tizen.org/sdk/tizenstudio/official/binary/sdb_2.3.0_ubuntu-64.zip \ + && unzip sdb_2.3.0_ubuntu-64.zip -d ~/temp \ + && cp ~/temp/data/tools/sdb /usr/bin \ + && rm -f sdb_2.3.0_ubuntu-64.zip \ + && rm -rf ~/temp -Buliding & installing ---------------------- -1. Clone this project +# Buliding & installing - $ git clone https://github.com/dhs-shine/litmus - -1. Build a deb package with debuild +Clone this project - $ cd litmus + $ git clone https://github.com/dhs-shine/litmus - $ debuild +Build a deb package with debuild -2. Install the deb package by using dpkg + $ cd litmus + $ debuild - $ cd .. - - $ sudo dpkg -i litmus_0.3.4-1_amd64.deb +Install the deb package by using dpkg + + $ cd .. + $ sudo dpkg -i litmus_0.3.5-1_amd64.deb Getting started --------------- -1. Create a litmus project: +Create a litmus project: - $ litmus mk [project_name] + $ litmus mk [project_name] -2. Modify [project_path]/userscript.py and [project_path]/conf.yaml +Modify [project_path]/userscript.py and [project_path]/conf.yaml -3. Run the litmus project +Run the litmus project - $ litmus run [project_name] + $ litmus run [project_name] Please refer to litmus wiki for more details. - -https://github.com/dhs-shine/litmus/wiki - -https://wiki.tizen.org/wiki/Litmus + https://github.com/dhs-shine/litmus/wiki + https://wiki.tizen.org/wiki/Litmus diff --git a/debian/changelog b/debian/changelog index bda0fa9..84dca2b 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,7 +1,12 @@ +litmus (0.3.5-1) unstable; urgency=low + + * Create a working directory if it does not exist (for -d option) + + -- Donghoon Shin Thu, 1 Feb 2017 09:17:00 +0900 + litmus (0.3.4-1) unstable; urgency=low * Update flash method for tw1 to skip passing parameter 'flasher' - * Change private function _sdb_root_on to public function sdb_root_on -- Donghoon Shin Fri, 21 Oct 2016 11:36:00 +0900 diff --git a/debian/docs b/debian/docs index a18c7d9..b43bf86 100644 --- a/debian/docs +++ b/debian/docs @@ -1,2 +1 @@ -CHANGES.txt README.md diff --git a/litmus/__init__.py b/litmus/__init__.py index 9f1fca6..c3e61e5 100644 --- a/litmus/__init__.py +++ b/litmus/__init__.py @@ -14,7 +14,7 @@ # limitations under the License. import os -__version__ = '0.3.4' +__version__ = '0.3.5' _homedir_ = os.path.expanduser('~') _confdir_ = os.path.join(_homedir_, '.litmus') _duts_ = os.path.join(_confdir_, 'topology') diff --git a/litmus/cmds/__init__.py b/litmus/cmds/__init__.py index 4852a96..6fa3183 100644 --- a/litmus/cmds/__init__.py +++ b/litmus/cmds/__init__.py @@ -14,6 +14,7 @@ # limitations under the License. from configparser import RawConfigParser +from litmus.core.util import call def load_project_list(projects): @@ -27,3 +28,11 @@ def load_project_list(projects): item['name'] = section project_list.append(item) return project_list + +def sdb_does_exist(): + help_url = 'https://github.com/dhs-shine/litmus#prerequisite' + try: + call('sdb version', timeout=10) + except FileNotFoundError: + raise Exception('Please install sdb. Refer to {}'.format(help_url)) + return diff --git a/litmus/cmds/cmd_adhoc.py b/litmus/cmds/cmd_adhoc.py index a1de8e6..46dd1c3 100755 --- a/litmus/cmds/cmd_adhoc.py +++ b/litmus/cmds/cmd_adhoc.py @@ -16,10 +16,12 @@ import os import sys from litmus.core.util import call +from litmus.cmd import sdb_does_exist def main(args): """docstring for main""" + sdb_does_exist() project_path = os.path.abspath(args.project_path) sys.path.append(project_path) diff --git a/litmus/cmds/cmd_run.py b/litmus/cmds/cmd_run.py index 6332d6f..fd01765 100755 --- a/litmus/cmds/cmd_run.py +++ b/litmus/cmds/cmd_run.py @@ -14,11 +14,12 @@ # limitations under the License. import sys -from litmus.cmds import load_project_list +from litmus.cmds import load_project_list, sdb_does_exist def main(args): """docstring for main""" + sdb_does_exist() prj_list = load_project_list(args.projects) project = next((prj for prj in prj_list if prj['name'] == args.project), None) diff --git a/litmus/core/manager.py b/litmus/core/manager.py index 1de68aa..15f21cb 100644 --- a/litmus/core/manager.py +++ b/litmus/core/manager.py @@ -277,6 +277,8 @@ Lightweight test manager for tizen automated testing try: self._backup_cwd = os.getcwd() if self._workingdir: + if not os.path.exists(self._workingdir): + os.mkdir(self._workingdir) os.chdir(self._workingdir) else: workingdir_name = str((hashlib.sha1(str(datetime.now()) diff --git a/litmus/helper/helper.py b/litmus/helper/helper.py index 0b4eac3..8a965cb 100644 --- a/litmus/helper/helper.py +++ b/litmus/helper/helper.py @@ -141,41 +141,11 @@ def tizen_snapshot_downloader(url, pattern_bin='tar.gz$', return filenames -def install_plugin(dut, script, waiting=5, timeout=180): - """ - Install tizen plugins on device. - This helper function turn on device and turn off device automatically. - - :param device dut: device instance - :param str script: script path to install plugins on device - :param float waiting: wait time before installing plugins - :param float timeout: timeout - - Example: - >>> from litmus.helper.helper import install_plugin - >>> install_plugin(dut, - script='install-set/setup') - """ - logging.debug('================Install plugins=================') - dut.on() - - script_path = '/'.join(script.split('/')[:-1]) - script_name = script.split('/')[-1] - - call('cp -R {0}/* .'.format(script_path), shell=True) - - time.sleep(waiting) - - call('sh {0} {1}'.format(script_name, dut.get_id()).split(), - timeout=timeout) - - dut.off() - - import tempfile import shutil from subprocess import DEVNULL + def install_plugin_from_git(dut, url, branch, script, waiting=5, timeout=180, commitid=None): """ diff --git a/litmus/templates/artik10/conf.yaml b/litmus/templates/artik10/conf_iot.yaml similarity index 100% rename from litmus/templates/artik10/conf.yaml rename to litmus/templates/artik10/conf_iot.yaml diff --git a/litmus/templates/artik10/misc/autoinput b/litmus/templates/artik10/misc/autoinput deleted file mode 100755 index 88d78e3864ebaadf751577c3daffb0607277fcbb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13976 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 T7+;q^ycp9=KC%2Ig^m7C8hN2J diff --git a/litmus/templates/artik10/misc/getevent b/litmus/templates/artik10/misc/getevent deleted file mode 100755 index 66e2c2a493f27420663572ab45042ed2963b6b40..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 37415 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 T7+;q^ycp9=KC%2Ig^m7C8hN2J diff --git a/litmus/templates/artik5/misc/getevent b/litmus/templates/artik5/misc/getevent deleted file mode 100755 index 66e2c2a493f27420663572ab45042ed2963b6b40..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 37415 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 password: diff --git a/litmus/templates/standalone_tm1/conf_tv.yaml b/litmus/templates/standalone_tm1/conf_tv.yaml deleted file mode 100644 index 43a1164..0000000 --- a/litmus/templates/standalone_tm1/conf_tv.yaml +++ /dev/null @@ -1,5 +0,0 @@ -binary_urls: - - http://download.tizen.org/snapshots/tizen/tv/latest/images/arm-wayland/tv-boot-armv7l-odroidxu3/ - - http://download.tizen.org/snapshots/tizen/tv/latest/images/arm-wayland/tv-wayland-armv7l-odroidu3/ -username: -password: diff --git a/litmus/templates/standalone_tm1/conf_wearable.yaml b/litmus/templates/standalone_tm1/conf_wearable.yaml deleted file mode 100644 index eb9cbca..0000000 --- a/litmus/templates/standalone_tm1/conf_wearable.yaml +++ /dev/null @@ -1,4 +0,0 @@ -binary_urls: - - http://download.tizen.org/snapshots/tizen/wearable/latest/images/target-circle/wearable-wayland-armv7l-circle/ -username: -password: diff --git a/litmus/templates/standalone_tm1/tc_wearable.yaml b/litmus/templates/standalone_tm1/tc_wearable.yaml deleted file mode 100644 index f1c099f..0000000 --- a/litmus/templates/standalone_tm1/tc_wearable.yaml +++ /dev/null @@ -1,50 +0,0 @@ -testcases: - - name: verify_process_is_running - from: litmus.helper.tests - result_dir: result - plan: - - name: dbus_is_running - param: dbus - pattern: .*/usr/bin/dbus-daemon.* - - name: enlightenment_is_running - param: enlightenment - pattern: .*/usr/bin/enlightenment.* - - name: sensord_is_running - param: sensord - pattern: .*/usr/bin/sensord.* - - name: deviced_is_running - param: deviced - pattern: .*/usr/bin/deviced.* - - name: pulseaudio_is_running - param: pulseaudio - pattern: .*/usr/bin/pulseaudio.* - - name: sdbd_is_running - param: sdbd - pattern: .*/usr/sbin/sdbd.* - - name: msg-server_is_running - param: msg-server - pattern: .*/usr/bin/msg-server.* - - name: connmand_is_running - param: connmand - pattern: .*/usr/sbin/connmand.* - - name: alarm-server_is_running - param: alarm-server - pattern: .*/usr/bin/alarm-server.* - - name: sound_server_is_running - param: sound_server - pattern: .*/usr/bin/sound_server.* - - name: media-server_is_running - param: media-server - pattern: .*/usr/bin/media-server.* - - name: verify_dmesg - from: litmus.helper.tests - result_dir: result - plan: - - name: panel_is_alive - param: panel - pattern: .*panel is dead.* - - name: verify_wifi_is_working - from: litmus.helper.tests - wifi_apname: setup - wifi_password: - result_dir: result diff --git a/litmus/templates/standalone_tm1/userscript.py b/litmus/templates/standalone_tm1/userscript.py index 0ef6126..267e5dd 100755 --- a/litmus/templates/standalone_tm1/userscript.py +++ b/litmus/templates/standalone_tm1/userscript.py @@ -23,6 +23,8 @@ def main(*args, **kwargs): # get version from parameter # ex) 20160923.3 + # you can customize params from litmus (adhoc|run) -p option + # Nth arg : kwargs['param'][N] try: version = kwargs['param'][0] except (IndexError, TypeError): @@ -37,6 +39,13 @@ def main(*args, **kwargs): version=version)) # get an available device for testing. + # Please set up topology before acquiring device. + # Example) + # ~/.litmus/topology + # [TM1_001] + # dev_type = standalone_tm1 + # serialno = 01234TEST + dut = mgr.acquire_dut('standalone_tm1', max_retry_times=180) # flashing binaries to device. diff --git a/litmus/templates/standalone_tm2/conf_mobile.yaml b/litmus/templates/standalone_tm2/conf_mobile.yaml index 1a6b53d..62b7a52 100644 --- a/litmus/templates/standalone_tm2/conf_mobile.yaml +++ b/litmus/templates/standalone_tm2/conf_mobile.yaml @@ -1,4 +1,4 @@ binary_urls: - - http://download.tizen.org/snapshots/tizen/mobile/latest/images/arm64-wayland/mobile-wayland-arm64-tm2/ + - http://download.tizen.org/snapshots/tizen/mobile/latest/images/arm64-wayland/mobile-wayland-arm64-tm2/ username: password: diff --git a/litmus/templates/standalone_tm2/conf_tv.yaml b/litmus/templates/standalone_tm2/conf_tv.yaml deleted file mode 100644 index 43a1164..0000000 --- a/litmus/templates/standalone_tm2/conf_tv.yaml +++ /dev/null @@ -1,5 +0,0 @@ -binary_urls: - - http://download.tizen.org/snapshots/tizen/tv/latest/images/arm-wayland/tv-boot-armv7l-odroidxu3/ - - http://download.tizen.org/snapshots/tizen/tv/latest/images/arm-wayland/tv-wayland-armv7l-odroidu3/ -username: -password: diff --git a/litmus/templates/standalone_tm2/conf_wearable.yaml b/litmus/templates/standalone_tm2/conf_wearable.yaml deleted file mode 100644 index eb9cbca..0000000 --- a/litmus/templates/standalone_tm2/conf_wearable.yaml +++ /dev/null @@ -1,4 +0,0 @@ -binary_urls: - - http://download.tizen.org/snapshots/tizen/wearable/latest/images/target-circle/wearable-wayland-armv7l-circle/ -username: -password: diff --git a/litmus/templates/standalone_tm2/tc_wearable.yaml b/litmus/templates/standalone_tm2/tc_wearable.yaml deleted file mode 100644 index f1c099f..0000000 --- a/litmus/templates/standalone_tm2/tc_wearable.yaml +++ /dev/null @@ -1,50 +0,0 @@ -testcases: - - name: verify_process_is_running - from: litmus.helper.tests - result_dir: result - plan: - - name: dbus_is_running - param: dbus - pattern: .*/usr/bin/dbus-daemon.* - - name: enlightenment_is_running - param: enlightenment - pattern: .*/usr/bin/enlightenment.* - - name: sensord_is_running - param: sensord - pattern: .*/usr/bin/sensord.* - - name: deviced_is_running - param: deviced - pattern: .*/usr/bin/deviced.* - - name: pulseaudio_is_running - param: pulseaudio - pattern: .*/usr/bin/pulseaudio.* - - name: sdbd_is_running - param: sdbd - pattern: .*/usr/sbin/sdbd.* - - name: msg-server_is_running - param: msg-server - pattern: .*/usr/bin/msg-server.* - - name: connmand_is_running - param: connmand - pattern: .*/usr/sbin/connmand.* - - name: alarm-server_is_running - param: alarm-server - pattern: .*/usr/bin/alarm-server.* - - name: sound_server_is_running - param: sound_server - pattern: .*/usr/bin/sound_server.* - - name: media-server_is_running - param: media-server - pattern: .*/usr/bin/media-server.* - - name: verify_dmesg - from: litmus.helper.tests - result_dir: result - plan: - - name: panel_is_alive - param: panel - pattern: .*panel is dead.* - - name: verify_wifi_is_working - from: litmus.helper.tests - wifi_apname: setup - wifi_password: - result_dir: result diff --git a/litmus/templates/standalone_tm2/userscript.py b/litmus/templates/standalone_tm2/userscript.py index 77a09c1..58b4bbb 100755 --- a/litmus/templates/standalone_tm2/userscript.py +++ b/litmus/templates/standalone_tm2/userscript.py @@ -23,6 +23,8 @@ def main(*args, **kwargs): # get version from parameter # ex) 20160923.3 + # you can customize params from litmus (adhoc|run) -p option + # Nth arg : kwargs['param'][N] try: version = kwargs['param'][0] except (IndexError, TypeError): @@ -37,6 +39,13 @@ def main(*args, **kwargs): version=version)) # get an available device for testing. + # Please set up topology before acquiring device. + # Example) + # ~/.litmus/topology + # [TM2_001] + # dev_type = standalone_tm2 + # serialno = 01234TEST + dut = mgr.acquire_dut('standalone_tm2', max_retry_times=180) # flashing binaries to device. diff --git a/litmus/templates/standalone_tw1/conf_mobile.yaml b/litmus/templates/standalone_tw1/conf_mobile.yaml deleted file mode 100644 index 072e0d7..0000000 --- a/litmus/templates/standalone_tw1/conf_mobile.yaml +++ /dev/null @@ -1,4 +0,0 @@ -binary_urls: - - http://download.tizen.org/snapshots/tizen/mobile/latest/images/target-TM1/mobile-wayland-armv7l-tm1/ -username: -password: diff --git a/litmus/templates/standalone_tw1/conf_tv.yaml b/litmus/templates/standalone_tw1/conf_tv.yaml deleted file mode 100644 index 43a1164..0000000 --- a/litmus/templates/standalone_tw1/conf_tv.yaml +++ /dev/null @@ -1,5 +0,0 @@ -binary_urls: - - http://download.tizen.org/snapshots/tizen/tv/latest/images/arm-wayland/tv-boot-armv7l-odroidxu3/ - - http://download.tizen.org/snapshots/tizen/tv/latest/images/arm-wayland/tv-wayland-armv7l-odroidu3/ -username: -password: diff --git a/litmus/templates/standalone_tw1/conf_wearable.yaml b/litmus/templates/standalone_tw1/conf_wearable.yaml index eb9cbca..4bc27e3 100644 --- a/litmus/templates/standalone_tw1/conf_wearable.yaml +++ b/litmus/templates/standalone_tw1/conf_wearable.yaml @@ -1,4 +1,4 @@ binary_urls: - - http://download.tizen.org/snapshots/tizen/wearable/latest/images/target-circle/wearable-wayland-armv7l-circle/ + - http://download.tizen.org/snapshots/tizen/wearable/latest/images/target-circle/wearable-wayland-armv7l-circle/ username: password: diff --git a/litmus/templates/standalone_tw1/tc_mobile.yaml b/litmus/templates/standalone_tw1/tc_mobile.yaml deleted file mode 100644 index 7932170..0000000 --- a/litmus/templates/standalone_tw1/tc_mobile.yaml +++ /dev/null @@ -1,50 +0,0 @@ -testcases: - - name: verify_process_is_running - from: litmus.helper.tests - result_dir: result - plan: - - name: dbus_is_running - param: dbus - pattern: .*/usr/bin/dbus-daemon.* - - name: enlightenment_is_running - param: enlightenment - pattern: .*/usr/bin/enlightenment.* - - name: sensord_is_running - param: sensord - pattern: .*/usr/bin/sensord.* - - name: deviced_is_running - param: deviced - pattern: .*/usr/bin/deviced.* - - name: pulseaudio_is_running - param: pulseaudio - pattern: .*/usr/bin/pulseaudio.* - - name: sdbd_is_running - param: sdbd - pattern: .*/usr/sbin/sdbd.* - - name: msg-server_is_running - param: msg-server - pattern: .*/usr/bin/msg-server.* - - name: connmand_is_running - param: connmand - pattern: .*/usr/sbin/connmand.* - - name: callmgrd_is_running - param: callmgrd - pattern: .*/usr/bin/callmgrd.* - - name: alarm-server_is_running - param: alarm-server - pattern: .*/usr/bin/alarm-server.* - - name: media-server_is_running - param: media-server - pattern: .*/usr/bin/media-server.* - - name: verify_dmesg - from: litmus.helper.tests - result_dir: result - plan: - - name: panel_is_alive - param: panel - pattern: .*panel is dead.* - - name: verify_wifi_is_working - from: litmus.helper.tests - wifi_apname: setup - wifi_password: - result_dir: result diff --git a/litmus/templates/standalone_tw1/tc_tv.yaml b/litmus/templates/standalone_tw1/tc_tv.yaml deleted file mode 100644 index 44ed8a2..0000000 --- a/litmus/templates/standalone_tw1/tc_tv.yaml +++ /dev/null @@ -1,23 +0,0 @@ -testcases: - - name: verify_process_is_running - from: litmus.helper.tests - result_dir: result - plan: - - name: enlightenment_is_running - param: enlightenment - pattern: .*/usr/bin/enlightenment.* - - name: deviced_is_running - param: deviced - pattern: .*/usr/bin/deviced.* - - name: pulseaudio_is_running - param: pulseaudio - pattern: .*/usr/bin/pulseaudio.* - - name: sdbd_is_running - param: sdbd - pattern: .*/usr/sbin/sdbd.* - - name: alarm-server_is_running - param: alarm-server - pattern: .*/usr/bin/alarm-server.* - - name: media-server_is_running - param: media-server - pattern: .*/usr/bin/media-server.* diff --git a/litmus/templates/standalone_tw1/userscript.py b/litmus/templates/standalone_tw1/userscript.py index e20d6dc..203720c 100755 --- a/litmus/templates/standalone_tw1/userscript.py +++ b/litmus/templates/standalone_tw1/userscript.py @@ -23,6 +23,8 @@ def main(*args, **kwargs): # get version from parameter # ex) 20160923.3 + # you can customize params from litmus (adhoc|run) -p option + # Nth arg : kwargs['param'][N] try: version = kwargs['param'][0] except (IndexError, TypeError): @@ -37,6 +39,13 @@ def main(*args, **kwargs): version=version)) # get an available device for testing. + # Please set up topology before acquiring device. + # Example) + # ~/.litmus/topology + # [TW1_001] + # dev_type = standalone_tw1 + # serialno = 01234TEST + dut = mgr.acquire_dut('standalone_tw1', max_retry_times=180) # flashing binaries to device. diff --git a/litmus/templates/standalone_u3/conf_mobile.yaml b/litmus/templates/standalone_u3/conf_mobile.yaml deleted file mode 100644 index 072e0d7..0000000 --- a/litmus/templates/standalone_u3/conf_mobile.yaml +++ /dev/null @@ -1,4 +0,0 @@ -binary_urls: - - http://download.tizen.org/snapshots/tizen/mobile/latest/images/target-TM1/mobile-wayland-armv7l-tm1/ -username: -password: diff --git a/litmus/templates/standalone_u3/conf_tv.yaml b/litmus/templates/standalone_u3/conf_tv.yaml index 43a1164..ef4322c 100644 --- a/litmus/templates/standalone_u3/conf_tv.yaml +++ b/litmus/templates/standalone_u3/conf_tv.yaml @@ -1,5 +1,5 @@ binary_urls: - - http://download.tizen.org/snapshots/tizen/tv/latest/images/arm-wayland/tv-boot-armv7l-odroidxu3/ - - http://download.tizen.org/snapshots/tizen/tv/latest/images/arm-wayland/tv-wayland-armv7l-odroidu3/ + - http://download.tizen.org/snapshots/tizen/tv/latest/images/arm-wayland/tv-boot-armv7l-odroidxu3/ + - http://download.tizen.org/snapshots/tizen/tv/latest/images/arm-wayland/tv-wayland-armv7l-odroidu3/ username: password: diff --git a/litmus/templates/standalone_u3/conf_wearable.yaml b/litmus/templates/standalone_u3/conf_wearable.yaml deleted file mode 100644 index eb9cbca..0000000 --- a/litmus/templates/standalone_u3/conf_wearable.yaml +++ /dev/null @@ -1,4 +0,0 @@ -binary_urls: - - http://download.tizen.org/snapshots/tizen/wearable/latest/images/target-circle/wearable-wayland-armv7l-circle/ -username: -password: diff --git a/litmus/templates/standalone_u3/tc_mobile.yaml b/litmus/templates/standalone_u3/tc_mobile.yaml deleted file mode 100644 index 7932170..0000000 --- a/litmus/templates/standalone_u3/tc_mobile.yaml +++ /dev/null @@ -1,50 +0,0 @@ -testcases: - - name: verify_process_is_running - from: litmus.helper.tests - result_dir: result - plan: - - name: dbus_is_running - param: dbus - pattern: .*/usr/bin/dbus-daemon.* - - name: enlightenment_is_running - param: enlightenment - pattern: .*/usr/bin/enlightenment.* - - name: sensord_is_running - param: sensord - pattern: .*/usr/bin/sensord.* - - name: deviced_is_running - param: deviced - pattern: .*/usr/bin/deviced.* - - name: pulseaudio_is_running - param: pulseaudio - pattern: .*/usr/bin/pulseaudio.* - - name: sdbd_is_running - param: sdbd - pattern: .*/usr/sbin/sdbd.* - - name: msg-server_is_running - param: msg-server - pattern: .*/usr/bin/msg-server.* - - name: connmand_is_running - param: connmand - pattern: .*/usr/sbin/connmand.* - - name: callmgrd_is_running - param: callmgrd - pattern: .*/usr/bin/callmgrd.* - - name: alarm-server_is_running - param: alarm-server - pattern: .*/usr/bin/alarm-server.* - - name: media-server_is_running - param: media-server - pattern: .*/usr/bin/media-server.* - - name: verify_dmesg - from: litmus.helper.tests - result_dir: result - plan: - - name: panel_is_alive - param: panel - pattern: .*panel is dead.* - - name: verify_wifi_is_working - from: litmus.helper.tests - wifi_apname: setup - wifi_password: - result_dir: result diff --git a/litmus/templates/standalone_u3/tc_wearable.yaml b/litmus/templates/standalone_u3/tc_wearable.yaml deleted file mode 100644 index f1c099f..0000000 --- a/litmus/templates/standalone_u3/tc_wearable.yaml +++ /dev/null @@ -1,50 +0,0 @@ -testcases: - - name: verify_process_is_running - from: litmus.helper.tests - result_dir: result - plan: - - name: dbus_is_running - param: dbus - pattern: .*/usr/bin/dbus-daemon.* - - name: enlightenment_is_running - param: enlightenment - pattern: .*/usr/bin/enlightenment.* - - name: sensord_is_running - param: sensord - pattern: .*/usr/bin/sensord.* - - name: deviced_is_running - param: deviced - pattern: .*/usr/bin/deviced.* - - name: pulseaudio_is_running - param: pulseaudio - pattern: .*/usr/bin/pulseaudio.* - - name: sdbd_is_running - param: sdbd - pattern: .*/usr/sbin/sdbd.* - - name: msg-server_is_running - param: msg-server - pattern: .*/usr/bin/msg-server.* - - name: connmand_is_running - param: connmand - pattern: .*/usr/sbin/connmand.* - - name: alarm-server_is_running - param: alarm-server - pattern: .*/usr/bin/alarm-server.* - - name: sound_server_is_running - param: sound_server - pattern: .*/usr/bin/sound_server.* - - name: media-server_is_running - param: media-server - pattern: .*/usr/bin/media-server.* - - name: verify_dmesg - from: litmus.helper.tests - result_dir: result - plan: - - name: panel_is_alive - param: panel - pattern: .*panel is dead.* - - name: verify_wifi_is_working - from: litmus.helper.tests - wifi_apname: setup - wifi_password: - result_dir: result diff --git a/litmus/templates/standalone_u3/userscript.py b/litmus/templates/standalone_u3/userscript.py index f577e40..7d2e798 100755 --- a/litmus/templates/standalone_u3/userscript.py +++ b/litmus/templates/standalone_u3/userscript.py @@ -23,6 +23,8 @@ def main(*args, **kwargs): # get version from parameter # ex) 20160923.3 + # you can customize params from litmus (adhoc|run) -p option + # Nth arg : kwargs['param'][N] try: version = kwargs['param'][0] except (IndexError, TypeError): @@ -37,6 +39,13 @@ def main(*args, **kwargs): version=version)) # get an available device for testing. + # Please set up topology before acquiring device. + # Example) + # ~/.litmus/topology + # [U3_001] + # dev_type = standalone_u3 + # serialno = 01234TEST + dut = mgr.acquire_dut('standalone_u3', max_retry_times=180) # flashing binaries to device. diff --git a/litmus/templates/standalone_xu3/conf_mobile.yaml b/litmus/templates/standalone_xu3/conf_mobile.yaml deleted file mode 100644 index 072e0d7..0000000 --- a/litmus/templates/standalone_xu3/conf_mobile.yaml +++ /dev/null @@ -1,4 +0,0 @@ -binary_urls: - - http://download.tizen.org/snapshots/tizen/mobile/latest/images/target-TM1/mobile-wayland-armv7l-tm1/ -username: -password: diff --git a/litmus/templates/standalone_xu3/conf_tv.yaml b/litmus/templates/standalone_xu3/conf_tv.yaml index 43a1164..ef4322c 100644 --- a/litmus/templates/standalone_xu3/conf_tv.yaml +++ b/litmus/templates/standalone_xu3/conf_tv.yaml @@ -1,5 +1,5 @@ binary_urls: - - http://download.tizen.org/snapshots/tizen/tv/latest/images/arm-wayland/tv-boot-armv7l-odroidxu3/ - - http://download.tizen.org/snapshots/tizen/tv/latest/images/arm-wayland/tv-wayland-armv7l-odroidu3/ + - http://download.tizen.org/snapshots/tizen/tv/latest/images/arm-wayland/tv-boot-armv7l-odroidxu3/ + - http://download.tizen.org/snapshots/tizen/tv/latest/images/arm-wayland/tv-wayland-armv7l-odroidu3/ username: password: diff --git a/litmus/templates/standalone_xu3/conf_wearable.yaml b/litmus/templates/standalone_xu3/conf_wearable.yaml deleted file mode 100644 index eb9cbca..0000000 --- a/litmus/templates/standalone_xu3/conf_wearable.yaml +++ /dev/null @@ -1,4 +0,0 @@ -binary_urls: - - http://download.tizen.org/snapshots/tizen/wearable/latest/images/target-circle/wearable-wayland-armv7l-circle/ -username: -password: diff --git a/litmus/templates/standalone_xu3/tc_mobile.yaml b/litmus/templates/standalone_xu3/tc_mobile.yaml deleted file mode 100644 index 7932170..0000000 --- a/litmus/templates/standalone_xu3/tc_mobile.yaml +++ /dev/null @@ -1,50 +0,0 @@ -testcases: - - name: verify_process_is_running - from: litmus.helper.tests - result_dir: result - plan: - - name: dbus_is_running - param: dbus - pattern: .*/usr/bin/dbus-daemon.* - - name: enlightenment_is_running - param: enlightenment - pattern: .*/usr/bin/enlightenment.* - - name: sensord_is_running - param: sensord - pattern: .*/usr/bin/sensord.* - - name: deviced_is_running - param: deviced - pattern: .*/usr/bin/deviced.* - - name: pulseaudio_is_running - param: pulseaudio - pattern: .*/usr/bin/pulseaudio.* - - name: sdbd_is_running - param: sdbd - pattern: .*/usr/sbin/sdbd.* - - name: msg-server_is_running - param: msg-server - pattern: .*/usr/bin/msg-server.* - - name: connmand_is_running - param: connmand - pattern: .*/usr/sbin/connmand.* - - name: callmgrd_is_running - param: callmgrd - pattern: .*/usr/bin/callmgrd.* - - name: alarm-server_is_running - param: alarm-server - pattern: .*/usr/bin/alarm-server.* - - name: media-server_is_running - param: media-server - pattern: .*/usr/bin/media-server.* - - name: verify_dmesg - from: litmus.helper.tests - result_dir: result - plan: - - name: panel_is_alive - param: panel - pattern: .*panel is dead.* - - name: verify_wifi_is_working - from: litmus.helper.tests - wifi_apname: setup - wifi_password: - result_dir: result diff --git a/litmus/templates/standalone_xu3/tc_wearable.yaml b/litmus/templates/standalone_xu3/tc_wearable.yaml deleted file mode 100644 index f1c099f..0000000 --- a/litmus/templates/standalone_xu3/tc_wearable.yaml +++ /dev/null @@ -1,50 +0,0 @@ -testcases: - - name: verify_process_is_running - from: litmus.helper.tests - result_dir: result - plan: - - name: dbus_is_running - param: dbus - pattern: .*/usr/bin/dbus-daemon.* - - name: enlightenment_is_running - param: enlightenment - pattern: .*/usr/bin/enlightenment.* - - name: sensord_is_running - param: sensord - pattern: .*/usr/bin/sensord.* - - name: deviced_is_running - param: deviced - pattern: .*/usr/bin/deviced.* - - name: pulseaudio_is_running - param: pulseaudio - pattern: .*/usr/bin/pulseaudio.* - - name: sdbd_is_running - param: sdbd - pattern: .*/usr/sbin/sdbd.* - - name: msg-server_is_running - param: msg-server - pattern: .*/usr/bin/msg-server.* - - name: connmand_is_running - param: connmand - pattern: .*/usr/sbin/connmand.* - - name: alarm-server_is_running - param: alarm-server - pattern: .*/usr/bin/alarm-server.* - - name: sound_server_is_running - param: sound_server - pattern: .*/usr/bin/sound_server.* - - name: media-server_is_running - param: media-server - pattern: .*/usr/bin/media-server.* - - name: verify_dmesg - from: litmus.helper.tests - result_dir: result - plan: - - name: panel_is_alive - param: panel - pattern: .*panel is dead.* - - name: verify_wifi_is_working - from: litmus.helper.tests - wifi_apname: setup - wifi_password: - result_dir: result diff --git a/litmus/templates/standalone_xu3/userscript.py b/litmus/templates/standalone_xu3/userscript.py index d19dc35..3fa8568 100755 --- a/litmus/templates/standalone_xu3/userscript.py +++ b/litmus/templates/standalone_xu3/userscript.py @@ -23,6 +23,8 @@ def main(*args, **kwargs): # get version from parameter # ex) 20160923.3 + # you can customize params from litmus (adhoc|run) -p option + # Nth arg : kwargs['param'][N] try: version = kwargs['param'][0] except (IndexError, TypeError): @@ -37,6 +39,13 @@ def main(*args, **kwargs): version=version)) # get an available device for testing. + # Please set up topology before acquiring device. + # Example) + # ~/.litmus/topology + # [XU3_001] + # dev_type = standalone_xu3 + # serialno = 01234TEST + dut = mgr.acquire_dut('standalone_xu3', max_retry_times=180) # flashing binaries to device. diff --git a/litmus/templates/u3/conf.yaml b/litmus/templates/u3/conf.yaml deleted file mode 100644 index 9a76742..0000000 --- a/litmus/templates/u3/conf.yaml +++ /dev/null @@ -1,5 +0,0 @@ -binary_urls: - - http://download.tizen.org/snapshots/tizen/tv/latest/images/arm-wayland/tv-wayland-armv7l-odroidu3/ - - http://download.tizen.org/snapshots/tizen/tv/latest/images/arm-wayland/tv-boot-armv7l-odroidu3/ -username: -password: diff --git a/litmus/templates/u3/conf_tv.yaml b/litmus/templates/u3/conf_tv.yaml new file mode 100644 index 0000000..284b50f --- /dev/null +++ b/litmus/templates/u3/conf_tv.yaml @@ -0,0 +1,5 @@ +binary_urls: + - http://download.tizen.org/snapshots/tizen/tv/latest/images/arm-wayland/tv-wayland-armv7l-odroidu3/ + - http://download.tizen.org/snapshots/tizen/tv/latest/images/arm-wayland/tv-boot-armv7l-odroidu3/ +username: +password: diff --git a/litmus/templates/u3/tc.yaml b/litmus/templates/u3/tc.yaml deleted file mode 100644 index 44ed8a2..0000000 --- a/litmus/templates/u3/tc.yaml +++ /dev/null @@ -1,23 +0,0 @@ -testcases: - - name: verify_process_is_running - from: litmus.helper.tests - result_dir: result - plan: - - name: enlightenment_is_running - param: enlightenment - pattern: .*/usr/bin/enlightenment.* - - name: deviced_is_running - param: deviced - pattern: .*/usr/bin/deviced.* - - name: pulseaudio_is_running - param: pulseaudio - pattern: .*/usr/bin/pulseaudio.* - - name: sdbd_is_running - param: sdbd - pattern: .*/usr/sbin/sdbd.* - - name: alarm-server_is_running - param: alarm-server - pattern: .*/usr/bin/alarm-server.* - - name: media-server_is_running - param: media-server - pattern: .*/usr/bin/media-server.* diff --git a/litmus/templates/standalone_tm1/tc_tv.yaml b/litmus/templates/u3/tc_tv.yaml similarity index 100% rename from litmus/templates/standalone_tm1/tc_tv.yaml rename to litmus/templates/u3/tc_tv.yaml diff --git a/litmus/templates/u3/userscript.py b/litmus/templates/u3/userscript.py index a965801..f14f3e6 100755 --- a/litmus/templates/u3/userscript.py +++ b/litmus/templates/u3/userscript.py @@ -15,13 +15,16 @@ def main(*args, **kwargs): mgr.init_workingdir() # get projectinfo - project_info = load_yaml('conf.yaml') + project_info = load_yaml('conf_tv.yaml') username = project_info['username'] password = project_info['password'] binary_urls = project_info['binary_urls'] # get version from parameter + # ex) 20160923.3 + # you can customize params from litmus (adhoc|run) -p option + # Nth arg : kwargs['param'][N] try: version = kwargs['param'][0] except (IndexError, TypeError): @@ -48,7 +51,7 @@ def main(*args, **kwargs): if not os.path.exists('result'): os.mkdir('result') - testcases = load_yaml('tc.yaml') + testcases = load_yaml('tc_tv.yaml') add_test_helper(dut, testcases) dut.run_tests() diff --git a/litmus/templates/xu3/conf.yaml b/litmus/templates/xu3/conf_tv.yaml similarity index 100% rename from litmus/templates/xu3/conf.yaml rename to litmus/templates/xu3/conf_tv.yaml diff --git a/litmus/templates/xu3/tc.yaml b/litmus/templates/xu3/tc.yaml deleted file mode 100644 index 44ed8a2..0000000 --- a/litmus/templates/xu3/tc.yaml +++ /dev/null @@ -1,23 +0,0 @@ -testcases: - - name: verify_process_is_running - from: litmus.helper.tests - result_dir: result - plan: - - name: enlightenment_is_running - param: enlightenment - pattern: .*/usr/bin/enlightenment.* - - name: deviced_is_running - param: deviced - pattern: .*/usr/bin/deviced.* - - name: pulseaudio_is_running - param: pulseaudio - pattern: .*/usr/bin/pulseaudio.* - - name: sdbd_is_running - param: sdbd - pattern: .*/usr/sbin/sdbd.* - - name: alarm-server_is_running - param: alarm-server - pattern: .*/usr/bin/alarm-server.* - - name: media-server_is_running - param: media-server - pattern: .*/usr/bin/media-server.* diff --git a/litmus/templates/standalone_tm2/tc_tv.yaml b/litmus/templates/xu3/tc_tv.yaml similarity index 100% rename from litmus/templates/standalone_tm2/tc_tv.yaml rename to litmus/templates/xu3/tc_tv.yaml diff --git a/litmus/templates/xu3/userscript.py b/litmus/templates/xu3/userscript.py index 3723505..cd06c9d 100755 --- a/litmus/templates/xu3/userscript.py +++ b/litmus/templates/xu3/userscript.py @@ -15,13 +15,16 @@ def main(*args, **kwargs): mgr.init_workingdir() # get projectinfo - project_info = load_yaml('conf.yaml') + project_info = load_yaml('conf_tv.yaml') username = project_info['username'] password = project_info['password'] binary_urls = project_info['binary_urls'] # get version from parameter + # ex) 20160923.3 + # you can customize params from litmus (adhoc|run) -p option + # Nth arg : kwargs['param'][N] try: version = kwargs['param'][0] except (IndexError, TypeError): @@ -48,7 +51,7 @@ def main(*args, **kwargs): if not os.path.exists('result'): os.mkdir('result') - testcases = load_yaml('tc.yaml') + testcases = load_yaml('tc_tv.yaml') add_test_helper(dut, testcases) dut.run_tests() diff --git a/tools/litmus b/tools/litmus index 87b2238..5c7b31d 100644 --- a/tools/litmus +++ b/tools/litmus @@ -15,21 +15,18 @@ import os import sys -import signal import functools import logging import traceback -from argparse import ArgumentParser, RawTextHelpFormatter -from litmus import __version__, _path_for_locks_, _duts_, _projects_, _confdir_ +from argparse import (ArgumentParser, + RawTextHelpFormatter) +from litmus import (__version__, + _path_for_locks_, + _duts_, _projects_, + _confdir_) from litmus.core.util import init_logger -#def sigterm_handler(signal, frame): -# """docstring for sigterm_handler""" -# raise Exception('SIGTERM') -# sys.exit(1) - - def subparser(func): """docstring for subparser""" @functools.wraps(func) @@ -47,7 +44,13 @@ def subparser(func): @subparser def adhoc_parser(parser): - """run a adhoc script + """run litmus project which is not imported. + + This will help you to run test project with Continous Integration systems. + If you use seperated worker node for testing, just copy litmus project to + worker node and use this command. If not, you have to import litmus project + on worker node before run it. + Examples: $ litmus adhoc """ @@ -61,7 +64,12 @@ def adhoc_parser(parser): @subparser def mk_parser(parser): - """make a new litmus project + """make new litmus project + + This will create a new directory and copy default templates. + You can locate more files and test scripts under this project directory + and run your own test script with project name. + Examples: $ litmus mk """ @@ -73,7 +81,12 @@ def mk_parser(parser): @subparser def rm_parser(parser): - """remove a litmus project + """remove litmus project + + This will remove both of your litmus project and project directory from + your host. WARNING: You can not recover your test project sources after + run this command. + Examples: $ litmus rm """ @@ -83,7 +96,15 @@ def rm_parser(parser): @subparser def run_parser(parser): - """run a litmus project + """run litmus project + + This will run your litmus project. Project entry point is userscript.py in + your project directory. You can pass argument to project with -p option. + You can also set working directory with -d option. If you don't set working + directory then litmus creates a temporary directory under /tmp and run test + on it, and remove it if test has done. hence you have to use -d option + if you want to keep test result. + Examples: $ litmus run """ @@ -98,6 +119,11 @@ def run_parser(parser): @subparser def ls_parser(parser): """list all litmus projects + + This will list all litmus projects. Default project list locate under + ~/.litmus/projects. If you want to use your custom project list then use + - p option with main command. + Examples: $ litmus ls """ @@ -107,6 +133,14 @@ def ls_parser(parser): @subparser def dev_parser(parser): """list all devices from topology configuration + + If you want to run test with real device, you have to configure topology. + Default topology file path is ~/.litmus/topology. + Topology file example for standalone_tm1 is + [TM1_001] + dev_type = standalone_tm1 + serialno = 012345678 + Examples: $ litmus dev """ @@ -115,7 +149,14 @@ def dev_parser(parser): @subparser def gt_parser(parser): - """generate a topology configuration + """generate topology configuration + + This is a helper to generate topology configuration for non-standalone + devices. non-standalone device means that device is controlled by external + uart and power supply. xu3 and u3 device types are non-standard device. + This will find proper uart port and power supply node from your system. + Do not run this command if you use standalone type devices. + Examples: $ litmus gt """ @@ -124,7 +165,12 @@ def gt_parser(parser): @subparser def cp_parser(parser): - """copy a litmus project + """copy litmus project + + This will create new litmus project from existed one. New project has + duplicated project directory from origin project and does not use default + template. If you need duplicated project from old one, this will be useful. + Examples: $ litmus cp """ @@ -136,7 +182,11 @@ def cp_parser(parser): @subparser def imp_parser(parser): - """import a litmus project + """import litmus project + + You sometimes need to run litmus project authored by others. This command + will import project and you can use run subcommand after import it. + Examples: $ litmus imp """ @@ -224,7 +274,6 @@ if __name__ == '__main__': init_logger() init_lockdir() init_confdir() - #signal.signal(signal.SIGTERM, sigterm_handler) sys.exit(main(sys.argv)) except KeyboardInterrupt: raise Exception('KeyboardInterrupt') -- 2.34.1