diff --git a/src/python/devtest/os/CmdTestOs.py b/src/python/devtest/os/CmdTestOs.py index dbcf7c6..97ca843 100644 --- a/src/python/devtest/os/CmdTestOs.py +++ b/src/python/devtest/os/CmdTestOs.py @@ -94,7 +94,9 @@ class CmdTestOs(MachineCmd): # export machine = await Machine.create(env) case_filter = None if not env.args.cases else env.args.cases.split(',') test_cases = TestCases(env.args.test_case_path, include=case_filter, dummies=env.args.dummy_tests) - for phase in TestPhases.Phase: + phases = TestPhases.parse(env.args.phases) + slog(INFO, "Running phases: {}".format(', '.join([p.name for p in phases]))) + for phase in phases: if not machine.clear_for_tests(): raise Exception("machine is not clear for running tests") delim = '-' * 60 + " Phase {} -- ".format(phase.name) @@ -118,8 +120,9 @@ class CmdTestOs(MachineCmd): # export raise finally: if machine is not None: - await machine.request_shutdown(env) - await machine.wait_poweroff(env) + if TestPhases.Phase.Shutdown in phases: + await machine.request_shutdown(env) + await machine.wait_poweroff(env) await machine.cleanup(env) for conn in env.connections: if conn.instance: @@ -136,6 +139,7 @@ class CmdTestOs(MachineCmd): # export def add_parser(self, parsers): p = super().add_parser(parsers) - p.add_argument( "--cases", help="List of dedicated test cases to run, wildcards are supported", default='') + p.add_argument("--cases", help="List of dedicated test cases to run, wildcards are supported", default='') + p.add_argument("--phases", help="List of phases the test should pass", default='all') self.__results.add_arguments(p) return p