[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v2 23/32] iotests: always use a unique sub-directory per test
From: |
Alex Bennée |
Subject: |
[PATCH v2 23/32] iotests: always use a unique sub-directory per test |
Date: |
Wed, 15 Mar 2023 17:43:22 +0000 |
From: Daniel P. Berrangé <berrange@redhat.com>
The current test runner is only safe against parallel execution within
a single instance of the 'check' process, and only if -j is given a
value greater than 2. This prevents running multiple copies of the
'check' process for different test scenarios.
This change switches the output / socket directories to always include
the test name, image format and image protocol. This should allow full
parallelism of all distinct test scenarios. eg running both qcow2 and
raw tests at the same time, or both file and nbd tests at the same
time.
It would be possible to allow for parallelism of the same test scenario
by including the pid, but that would potentially let many directories
accumulate over time on failures, so is not done.
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
Reviewed-by: Thomas Huth <thuth@redhat.com>
Acked-by: Hanna Czenczek <hreitz@redhat.com>
Tested-by: Thomas Huth <thuth@redhat.com>
Message-Id: <20230303160727.3977246-7-berrange@redhat.com>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
---
tests/qemu-iotests/testrunner.py | 20 ++++++++++----------
1 file changed, 10 insertions(+), 10 deletions(-)
diff --git a/tests/qemu-iotests/testrunner.py b/tests/qemu-iotests/testrunner.py
index 81519ed6e2..7b322272e9 100644
--- a/tests/qemu-iotests/testrunner.py
+++ b/tests/qemu-iotests/testrunner.py
@@ -228,13 +228,11 @@ def find_reference(self, test: str) -> str:
return f'{test}.out'
- def do_run_test(self, test: str, mp: bool) -> TestResult:
+ def do_run_test(self, test: str) -> TestResult:
"""
Run one test
:param test: test file path
- :param mp: if true, we are in a multiprocessing environment, use
- personal subdirectories for test run
Note: this method may be called from subprocess, so it does not
change ``self`` object in any way!
@@ -257,12 +255,14 @@ def do_run_test(self, test: str, mp: bool) -> TestResult:
args = [str(f_test.resolve())]
env = self.env.prepare_subprocess(args)
- if mp:
- # Split test directories, so that tests running in parallel don't
- # break each other.
- for d in ['TEST_DIR', 'SOCK_DIR']:
- env[d] = os.path.join(env[d], f_test.name)
- Path(env[d]).mkdir(parents=True, exist_ok=True)
+
+ # Split test directories, so that tests running in parallel don't
+ # break each other.
+ for d in ['TEST_DIR', 'SOCK_DIR']:
+ env[d] = os.path.join(
+ env[d],
+ f"{self.env.imgfmt}-{self.env.imgproto}-{f_test.name}")
+ Path(env[d]).mkdir(parents=True, exist_ok=True)
test_dir = env['TEST_DIR']
f_bad = Path(test_dir, f_test.name + '.out.bad')
@@ -347,7 +347,7 @@ def run_test(self, test: str,
testname = os.path.basename(test)
print(f'# running {self.env.imgfmt} {testname}')
- res = self.do_run_test(test, mp)
+ res = self.do_run_test(test)
end = datetime.datetime.now().strftime('%H:%M:%S')
self.test_print_one_line(test=test,
--
2.39.2
- [PATCH v2 21/32] iotests: print TAP protocol version when reporting tests, (continued)
- [PATCH v2 21/32] iotests: print TAP protocol version when reporting tests, Alex Bennée, 2023/03/15
- [PATCH v2 26/32] contrib/gitdm: Add ASPEED Technology to the domain map, Alex Bennée, 2023/03/15
- [PATCH v2 27/32] contrib/gitdm: Add SYRMIA to the domain map, Alex Bennée, 2023/03/15
- [PATCH v2 32/32] contrib/gitdm: add group map for AMD, Alex Bennée, 2023/03/15
- [PATCH v2 12/32] tcg: Drop plugin_gen_disable_mem_helpers from tcg_gen_exit_tb, Alex Bennée, 2023/03/15
- [PATCH v2 30/32] contrib/gitdm: add revng to domain map, Alex Bennée, 2023/03/15
- [PATCH v2 10/32] tests/avocado: don't use tags to define drive, Alex Bennée, 2023/03/15
- [PATCH v2 31/32] contrib/gitdm: add more individual contributors, Alex Bennée, 2023/03/15
- [PATCH v2 23/32] iotests: always use a unique sub-directory per test,
Alex Bennée <=
- [PATCH v2 09/32] include/exec: fix kerneldoc definition, Alex Bennée, 2023/03/15
- [PATCH v2 28/32] contrib/gitdm: add Amazon to the domain map, Alex Bennée, 2023/03/15
- [PATCH v2 29/32] contrib/gitdm: add Alibaba to the domain-map, Alex Bennée, 2023/03/15
- [PATCH v2 08/32] tests/tcg: disable pauth for aarch64 gdb tests, Alex Bennée, 2023/03/15
- [PATCH v2 13/32] include/qemu/plugin: Remove QEMU_PLUGIN_ASSERT, Alex Bennée, 2023/03/15
- [PATCH v2 11/32] tcg: Clear plugin_mem_cbs on TB exit, Alex Bennée, 2023/03/15
- [PATCH v2 25/32] iotests: remove the check-block.sh script, Alex Bennée, 2023/03/15