os.CmdTestOs: Add support for --phases argument

Signed-off-by: Jan Lindemann <jan@janware.com>
This commit is contained in:
Jan Lindemann 2022-12-15 13:21:07 +01:00
commit 3fba1c2a89

View file

@ -94,7 +94,9 @@ class CmdTestOs(MachineCmd): # export
machine = await Machine.create(env) machine = await Machine.create(env)
case_filter = None if not env.args.cases else env.args.cases.split(',') 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) 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(): if not machine.clear_for_tests():
raise Exception("machine is not clear for running tests") raise Exception("machine is not clear for running tests")
delim = '-' * 60 + " Phase {} -- ".format(phase.name) delim = '-' * 60 + " Phase {} -- ".format(phase.name)
@ -118,6 +120,7 @@ class CmdTestOs(MachineCmd): # export
raise raise
finally: finally:
if machine is not None: if machine is not None:
if TestPhases.Phase.Shutdown in phases:
await machine.request_shutdown(env) await machine.request_shutdown(env)
await machine.wait_poweroff(env) await machine.wait_poweroff(env)
await machine.cleanup(env) await machine.cleanup(env)
@ -137,5 +140,6 @@ class CmdTestOs(MachineCmd): # export
def add_parser(self, parsers): def add_parser(self, parsers):
p = super().add_parser(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) self.__results.add_arguments(p)
return p return p