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: https://lists.nongnu.org/archive/html/qemu-devel/2026-03/msg01252.html
v6: https://lists.nongnu.org/archive/html/qemu-devel/2026-04/msg04861.html
v7: https://lists.nongnu.org/archive/html/qemu-devel/2026-05/msg03163.html
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 v8
- Use 'driver' more comprehensively in tests/qemu-iotests/meson.build
- Use 'iotests:' as patch prefix
- Fix series numbering - due to a laptop change I accidentally
posted v6 twice, once without a version and once with a versio.
IOW what I previously called v6 was in fact v7.
Changed in v7:
- 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 v6:
- Drop redundant change from gitlab yml config
- Pull in rebase for qemu.qmp to 0.6.0 to fix two tests
by avoiding deprecation warnings
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
iotests: print reason when I/O test is skipped in TAP mode
iotests: remove redundant meson suite for iotests
iotests: 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
iotests: add a meson suite / make target per block I/O tests format
docs/devel/testing: expand documentation for 'make check-block'
iotests: add nbd and luks to the I/O test suites
iotests: use 'driver' as collective term for either format or protocol
iotests: validate dmsetup result in test 128
iotests: fix check for sudo access in LUKS I/O test
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 | 65 +++++++++++++++---
tests/qemu-iotests/testrunner.py | 2 +-
14 files changed, 171 insertions(+), 54 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