- non-existing suite dir cnf -: DBG: Found config file paths.conf as [PATH]/selftest/suite_test/paths.conf in ./suite_test which is [PATH]/selftest/suite_test cnf -: DBG: [PATH]/selftest/suite_test/paths.conf: relative path ./test_work/state_dir is [PATH]/selftest/suite_test/test_work/state_dir cnf -: DBG: [PATH]/selftest/suite_test/paths.conf: relative path . is [PATH]/selftest/suite_test cnf -: DBG: Found path suites_dir as [PATH]/selftest/suite_test --- -: ERR: RuntimeError: Suite not found: 'does_not_exist' in [PATH]/selftest/suite_test - no suite.conf cnf -: DBG: Found path suites_dir as [PATH]/selftest/suite_test cnf empty_dir: DBG: reading suite.conf [empty_dir↪empty_dir] --- [PATH]/selftest/suite_test/empty_dir/suite.conf: ERR: FileNotFoundError: [Errno 2] No such file or directory: '[PATH]/selftest/suite_test/empty_dir/suite.conf' [empty_dir↪[PATH]/selftest/suite_test/empty_dir/suite.conf] - valid suite dir cnf -: DBG: Found path suites_dir as [PATH]/selftest/suite_test cnf test_suite: DBG: reading suite.conf [test_suite↪test_suite] defaults: timeout: 60s resources: bts: - times: '1' modem: - times: '2' nitb_iface: - times: '1' - run hello world test cnf -: DBG: Found config file resources.conf as [PATH]/selftest/suite_test/resources.conf in ./suite_test which is [PATH]/selftest/suite_test cnf -: DBG: Found path state_dir as [PATH]/selftest/suite_test/test_work/state_dir tst test_suite: Suite run start tst test_suite: reserving resources... tst test_suite: DBG: {combining='resources'} [test_suite↪test_suite] tst test_suite: DBG: {definition_conf={bts=[{'times': '1'}], modem=[{'times': '2'}], nitb_iface=[{'times': '1'}]}} [test_suite↪(combining_scenarios='resources')↪test_suite] tst test_suite: Reserving 1 x bts (candidates: 3) [test_suite↪test_suite] tst test_suite: DBG: Picked - _hash: 07d9c8aaa940b674efcbbabdd69f58a6ce4e94f9 addr: 10.42.42.114 band: GSM-1800 ipa_unit_id: '1' label: sysmoBTS 1002 type: sysmo [test_suite↪test_suite] tst test_suite: Reserving 2 x modem (candidates: 16) [test_suite↪test_suite] tst test_suite: DBG: Picked - _hash: 19c69e45aa090fb511446bd00797690aa82ff52f imsi: '901700000007801' ki: D620F48487B1B782DA55DF6717F08FF9 label: m7801 path: /wavecom_0 - _hash: e1a46516a1fb493b2617ab14fc1693a9a45ec254 imsi: '901700000007802' ki: 47FDB2D55CE6A10A85ABDAD034A5B7B3 label: m7802 path: /wavecom_1 [test_suite↪test_suite] tst test_suite: Reserving 1 x nitb_iface (candidates: 3) [test_suite↪test_suite] tst test_suite: DBG: Picked - _hash: cde1debf28f07f94f92c761b4b7c6bf35785ced4 addr: 10.42.42.1 [test_suite↪test_suite] tst hello_world.py:[LINENR] START [test_suite↪hello_world.py] tst hello_world.py:[LINENR]: hello world [test_suite↪hello_world.py:[LINENR]] tst hello_world.py:[LINENR]: I am 'test_suite' / 'hello_world.py:[LINENR]' [test_suite↪hello_world.py:[LINENR]] tst hello_world.py:[LINENR]: one [test_suite↪hello_world.py:[LINENR]] tst hello_world.py:[LINENR]: two [test_suite↪hello_world.py:[LINENR]] tst hello_world.py:[LINENR]: three [test_suite↪hello_world.py:[LINENR]] tst hello_world.py:[LINENR] PASS [test_suite↪hello_world.py] pass: all 1 tests passed. - a test with an error tst test_suite: Suite run start [suite.py:[LINENR]] tst test_error.py:[LINENR] START [test_suite↪test_error.py] [suite.py:[LINENR]] tst test_error.py:[LINENR]: I am 'test_suite' / 'test_error.py:[LINENR]' [test_suite↪test_error.py:[LINENR]] [test_error.py:[LINENR]] tst test_error.py:[LINENR]: FAIL [test_suite↪test_error.py:[LINENR]] [suite.py:[LINENR]] tst test_error.py:[LINENR]: ERR: AssertionError: [test_suite↪test_error.py:[LINENR]] [test_error.py:[LINENR]: assert False] FAIL: 1 of 1 tests failed: test_error.py - graceful exit.