Add CLI arg to keep scratch files after test execution, equivalent to setting QEMU_TEST_KEEP_SCRATCH env var.
Suggested-by: Alex Bennée <alex.ben...@linaro.org> Signed-off-by: Manos Pitsidianakis <manos.pitsidiana...@linaro.org> --- tests/functional/qemu_test/testcase.py | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/tests/functional/qemu_test/testcase.py b/tests/functional/qemu_test/testcase.py index 3ecaaeffd4df2945fb4c44b4ddef6911527099b9..9b00c63e6ca7a2a669fd456f1d1b51501ce4a726 100644 --- a/tests/functional/qemu_test/testcase.py +++ b/tests/functional/qemu_test/testcase.py @@ -43,6 +43,13 @@ def parse_args(test_name: str) -> argparse.Namespace: help="Also print test and console logs on stdout. This will make the" " TAP output invalid and is meant for debugging only.", ) + parser.add_argument( + "--keep-scratch", + action="store_true", + help="Do not purge any scratch files created during the tests. " + "This is equivalent to setting QEMU_TEST_KEEP_SCRATCH=1 in the " + "environment.", + ) return parser.parse_args() @@ -214,6 +221,9 @@ def setUp(self): path = os.path.basename(sys.argv[0])[:-3] args = parse_args(path) self.stdout_handler = None + self.keep_scratch = ( + "QEMU_TEST_KEEP_SCRATCH" in os.environ or args.keep_scratch + ) if args.debug: self.stdout_handler = logging.StreamHandler(sys.stdout) self.stdout_handler.setLevel(logging.DEBUG) @@ -255,8 +265,10 @@ def setUp(self): self.skipTest('One or more assets is not available') def tearDown(self): - if "QEMU_TEST_KEEP_SCRATCH" not in os.environ: + if not self.keep_scratch: shutil.rmtree(self.workdir) + else: + self.log.info(f"Kept scratch files in {self.workdir}") if self.socketdir is not None: shutil.rmtree(self.socketdir.name) self.socketdir = None -- 2.47.2