[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v2 24/32] iotests: register each I/O test separately with meson
From: |
Alex Bennée |
Subject: |
[PATCH v2 24/32] iotests: register each I/O test separately with meson |
Date: |
Wed, 15 Mar 2023 17:43:23 +0000 |
From: Daniel P. Berrangé <berrange@redhat.com>
Currently meson registers a single test that invokes an entire group of
I/O tests, hiding the test granularity from meson. There are various
downsides of doing this
* You cannot ask 'meson test' to invoke a single I/O test
* The meson test timeout can't be applied to the individual
tests
* Meson only gets a pass/fail for the overall I/O test group
not individual tests
* If a CI job gets killed by the GitLab timeout, we don't
get visibility into how far through the I/O tests
execution got.
This switches meson to perform test discovery by invoking 'check' in
dry-run mode. It then registers one meson test case for each I/O
test. Parallel execution remains disabled since the I/O tests do not
use self contained execution environments and thus conflict with
each other.
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-8-berrange@redhat.com>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
---
tests/qemu-iotests/meson.build | 35 ++++++++++++++++++++++++++++------
1 file changed, 29 insertions(+), 6 deletions(-)
diff --git a/tests/qemu-iotests/meson.build b/tests/qemu-iotests/meson.build
index 323a4acb6a..a162f683ef 100644
--- a/tests/qemu-iotests/meson.build
+++ b/tests/qemu-iotests/meson.build
@@ -32,16 +32,39 @@ foreach k, v : emulators
endif
endforeach
+qemu_iotests_check_cmd = files('check')
+
foreach format, speed: qemu_iotests_formats
if speed == 'quick'
suites = 'block'
else
suites = ['block-' + speed, speed]
endif
- test('qemu-iotests ' + format, sh, args: [files('../check-block.sh'),
format],
- depends: qemu_iotests_binaries, env: qemu_iotests_env,
- protocol: 'tap',
- suite: suites,
- timeout: 0,
- is_parallel: false)
+
+ args = ['-tap', '-' + format]
+ if speed == 'quick'
+ args += ['-g', 'auto']
+ endif
+
+ rc = run_command(
+ [qemu_iotests_check_cmd] + args + ['-n'],
+ check: true,
+ )
+
+ foreach item: rc.stdout().strip().split()
+ args = ['-tap', '-' + format, item,
+ '--source-dir', meson.current_source_dir(),
+ '--build-dir', meson.current_build_dir()]
+ # Some individual tests take as long as 45 seconds
+ # Bump the timeout to 3 minutes for some headroom
+ # on slow machines to minimize spurious failures
+ test('io-' + format + '-' + item,
+ qemu_iotests_check_cmd,
+ args: args,
+ depends: qemu_iotests_binaries,
+ env: qemu_iotests_env,
+ protocol: 'tap',
+ timeout: 180,
+ suite: suites)
+ endforeach
endforeach
--
2.39.2
- [PATCH v2 07/32] tests/tcg: add some help output for running individual tests, (continued)
- [PATCH v2 07/32] tests/tcg: add some help output for running individual tests, Alex Bennée, 2023/03/15
- [PATCH v2 06/32] include/qemu: add documentation for memory callbacks, Alex Bennée, 2023/03/15
- [PATCH v2 15/32] *: Add missing includes of qemu/plugin.h, Alex Bennée, 2023/03/15
- [PATCH v2 14/32] *: Add missing includes of qemu/error-report.h, Alex Bennée, 2023/03/15
- [PATCH v2 16/32] include/qemu: Split out plugin-event.h, Alex Bennée, 2023/03/15
- [PATCH v2 17/32] include/qemu/plugin: Inline qemu_plugin_disable_mem_helpers, Alex Bennée, 2023/03/15
- [PATCH v2 18/32] iotests: explicitly pass source/build dir to 'check' command, Alex Bennée, 2023/03/15
- [PATCH v2 19/32] iotests: allow test discovery before building, Alex Bennée, 2023/03/15
- [PATCH v2 24/32] iotests: register each I/O test separately with meson,
Alex Bennée <=
- [PATCH v2 20/32] iotests: strip subdir path when listing tests, Alex Bennée, 2023/03/15
- [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