From: Vincent Fu Date: Tue, 21 Sep 2021 21:27:11 +0000 (+0000) Subject: run-fio-tests: make test runs more resilient X-Git-Tag: fio-3.29~53 X-Git-Url: https://git.kernel.dk/?a=commitdiff_plain;h=aa9f26276e1961fab2d33e188f5a2432360c9c14;p=fio.git run-fio-tests: make test runs more resilient Catch exceptions that occur during test setup/running/evaluation. This makes it more likely that the entire test suite can run to completion even if some tests fail in an unexpected fashion. In particular I have seen failures in FioJobTest_t0014() when the test is run on a bare metal machine. Without this patch these failures make the entire script grind to a halt. Signed-off-by: Vincent Fu Link: https://lore.kernel.org/r/20210921212639.61319-1-vincent.fu@samsung.com Signed-off-by: Jens Axboe --- diff --git a/t/run-fio-tests.py b/t/run-fio-tests.py index a59cdfe0..612e50ca 100755 --- a/t/run-fio-tests.py +++ b/t/run-fio-tests.py @@ -49,6 +49,7 @@ import shutil import logging import argparse import platform +import traceback import subprocess import multiprocessing from pathlib import Path @@ -1057,9 +1058,16 @@ def main(): skipped = skipped + 1 continue - test.setup(artifact_root, config['test_id']) - test.run() - test.check_result() + try: + test.setup(artifact_root, config['test_id']) + test.run() + test.check_result() + except KeyboardInterrupt: + break + except Exception as e: + test.passed = False + test.failure_reason += str(e) + logging.debug("Test %d exception:\n%s\n", config['test_id'], traceback.format_exc()) if test.passed: result = "PASSED" passed = passed + 1