v1: https://lists.nongnu.org/archive/html/qemu-devel/2025-10/msg01650.html v2: https://lists.nongnu.org/archive/html/qemu-devel/2026-01/msg02083.html v3: https://lists.nongnu.org/archive/html/qemu-devel/2026-01/msg02939.html v4: https://lists.nongnu.org/archive/html/qemu-devel/2026-02/msg03245.html v5: <...somewhere...mailman is dead again at time of sending...>
The recent (at the time of v1) set of regressions identified in the LUKS block driver re-inforced that despite having a hugely useful set of I/O tests, our CI coverage is still letting through too many bugs. The core goals of this series were/are: * Add LUKS and NBD to the tested formats/protocols integrated into "make check-block SPEED=thorough" * Ensure that all qcow2 tests can be run with "SPEED=slow", not staying limited to only the 'auto' group used by the 'make check-block' target in its default 'quick' mode * Add 'make check-block-$FORMAT' to expose a standalone target for running all tests for a given format (or equivalently a protocol) * Add GitLab CI jobs for exercising tests for all formats A sample pipeline for this is https://gitlab.com/berrange/qemu/-/pipelines/2258731804/ Showing the 'block-FORMAT' jobs which test the 10 block formats/protocols currently enabled. This series fixes a couple of bugs * Test 128 check for device mapper usage doesn't work sufficiently well to detect gitlab's containe env can't do dynamic devfs * Test 185 is failing on gitlab so is marked as flaky Testing of pipelines throughout development of v1-v5 postings does not exhibit any non-deterministic failures with the shared runners. Hopefully that will apply to QEMU's private runners used forthe staging tree too. At this point it is a chicken & egg problem though. If we don't bite the bullet and enable block I/O tests in GitLab CI for everyone, we'll never find out if they're truely stable enough to rely on. As a mitigation against instability a patch in this series adds a new QEMU_TEST_IO_SKIP env variable that we are able to set as a GitLab CI env variable. This lets us skip broken tests dynamically without waiting for a git commit to disable them in the buildtest.yml config that we use for disabling the 3 known broken tests currently. Changed in v6: - Support QEMU_TEST_FLAKY_TESTS in I/O tests framework and mark 185 as flaky - Drop the env var for skipping tests - Use a matrix job in gitlab definition for I/O tests jobs Changed in v5: - Adapt for python-qemu-qmp being spun off, by temp disabling tests that are broken by it, that we formerly fixed in-tree. Changed in v4: - Remove tests from build-tcg-disabled job Changed in v3: - Test whether dmsetup create device appeared or not, instead of unconditionally skipping test 128 in GitLab - Use 'driver' term instead of 'format' or 'protocol' - Fix misc typos & rephrasing Daniel P. Berrangé (15): gitlab: ensure all meson jobs capture build/meson-logs by default tests: print reason when I/O test is skipped in TAP mode tests: remove redundant meson suite for iotests tests: ensure all qcow2 I/O tests are able to be run via make scripts/mtest2make: ensure output has stable sorting scripts/mtest2make: support optional tests grouping tests: add a meson suite / make target per block I/O tests format docs/devel/testing: expand documentation for 'make check-block' tests: add nbd and luks to the I/O test suites tests: use 'driver' as collective term for either format or protocol tests: validate dmsetup result in test 128 tests: fix check for sudo access in LUKS I/O test tests/qemu-iotests: mark 185 as a flaky test gitlab: add jobs for thorough block tests gitlab: remove I/O tests from build-tcg-disabled job John Snow (1): python: bump qemu.qmp to v0.0.6 .gitlab-ci.d/buildtest-template.yml | 30 +++++---- .gitlab-ci.d/buildtest.yml | 27 +++++--- docs/devel/testing/main.rst | 26 +++++++- python/scripts/vendor.py | 4 +- ...ny.whl => qemu_qmp-0.0.6-py3-none-any.whl} | Bin 72263 -> 72379 bytes pythondeps.toml | 2 +- scripts/mtest2make.py | 30 ++++++--- tests/Makefile.include | 3 +- tests/qemu-iotests/128 | 6 ++ tests/qemu-iotests/149 | 13 ++-- tests/qemu-iotests/185 | 1 + tests/qemu-iotests/common.rc | 16 +++++ tests/qemu-iotests/meson.build | 59 +++++++++++++++--- tests/qemu-iotests/testrunner.py | 2 +- 14 files changed, 168 insertions(+), 51 deletions(-) rename python/wheels/{qemu_qmp-0.0.5-py3-none-any.whl => qemu_qmp-0.0.6-py3-none-any.whl} (64%) -- 2.54.0
