iotests: check: return 1 on failure

We should indicate failure by exit code, not only output.

Reported-by: Peter Maydell
Fixes: f203080bbd
Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
Message-Id: <20210201085041.3079-1-vsementsov@virtuozzo.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
This commit is contained in:
Vladimir Sementsov-Ogievskiy 2021-02-01 11:50:41 +03:00 committed by Kevin Wolf
parent ca502ca60d
commit 3ae50942f1
2 changed files with 7 additions and 2 deletions

View File

@ -140,4 +140,7 @@ if __name__ == '__main__':
else:
with TestRunner(env, makecheck=args.makecheck,
color=args.color) as tr:
tr.run_tests([os.path.join(env.source_iotests, t) for t in tests])
paths = [os.path.join(env.source_iotests, t) for t in tests]
ok = tr.run_tests(paths)
if not ok:
sys.exit(1)

View File

@ -318,7 +318,7 @@ class TestRunner(ContextManager['TestRunner']):
return res
def run_tests(self, tests: List[str]) -> None:
def run_tests(self, tests: List[str]) -> bool:
n_run = 0
failed = []
notrun = []
@ -363,5 +363,7 @@ class TestRunner(ContextManager['TestRunner']):
if failed:
print('Failures:', ' '.join(failed))
print(f'Failed {len(failed)} of {n_run} iotests')
return False
else:
print(f'Passed all {n_run} iotests')
return True