QEMU-Devel Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: "Daniel P. Berrangé" <berrange@redhat.com>
To: qemu-devel@nongnu.org
Cc: "Paolo Bonzini" <pbonzini@redhat.com>,
	"Pierrick Bouvier" <pierrick.bouvier@oss.qualcomm.com>,
	"Alex Bennée" <alex.bennee@linaro.org>,
	qemu-block@nongnu.org, "Kevin Wolf" <kwolf@redhat.com>,
	"John Snow" <jsnow@redhat.com>,
	"Pierrick Bouvier" <pierrick.bouvier@linaro.org>,
	"Hanna Reitz" <hreitz@redhat.com>,
	"Philippe Mathieu-Daudé" <philmd@linaro.org>,
	"Cleber Rosa" <crosa@redhat.com>,
	"Thomas Huth" <thuth@redhat.com>,
	"Daniel P. Berrangé" <berrange@redhat.com>
Subject: [PATCH v6 00/16] tests: do more testing of block drivers
Date: Wed, 13 May 2026 12:59:47 +0100	[thread overview]
Message-ID: <20260513120003.226790-1-berrange@redhat.com> (raw)

 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



             reply	other threads:[~2026-05-13 12:01 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-05-13 11:59 Daniel P. Berrangé [this message]
2026-05-13 11:59 ` [PATCH v6 01/16] python: bump qemu.qmp to v0.0.6 Daniel P. Berrangé
2026-05-13 11:59 ` [PATCH v6 02/16] gitlab: ensure all meson jobs capture build/meson-logs by default Daniel P. Berrangé
2026-05-13 11:59 ` [PATCH v6 03/16] tests: print reason when I/O test is skipped in TAP mode Daniel P. Berrangé
2026-05-13 11:59 ` [PATCH v6 04/16] tests: remove redundant meson suite for iotests Daniel P. Berrangé
2026-05-13 11:59 ` [PATCH v6 05/16] tests: ensure all qcow2 I/O tests are able to be run via make Daniel P. Berrangé
2026-05-13 11:59 ` [PATCH v6 06/16] scripts/mtest2make: ensure output has stable sorting Daniel P. Berrangé
2026-05-13 11:59 ` [PATCH v6 07/16] scripts/mtest2make: support optional tests grouping Daniel P. Berrangé
2026-05-13 11:59 ` [PATCH v6 08/16] tests: add a meson suite / make target per block I/O tests format Daniel P. Berrangé
2026-05-13 11:59 ` [PATCH v6 09/16] docs/devel/testing: expand documentation for 'make check-block' Daniel P. Berrangé
2026-05-13 11:59 ` [PATCH v6 10/16] tests: add nbd and luks to the I/O test suites Daniel P. Berrangé
2026-05-13 11:59 ` [PATCH v6 11/16] tests: use 'driver' as collective term for either format or protocol Daniel P. Berrangé
2026-05-13 11:59 ` [PATCH v6 12/16] tests: validate dmsetup result in test 128 Daniel P. Berrangé
2026-05-13 15:56   ` Pierrick Bouvier
2026-05-13 12:00 ` [PATCH v6 13/16] tests: fix check for sudo access in LUKS I/O test Daniel P. Berrangé
2026-05-13 12:00 ` [PATCH v6 14/16] tests/qemu-iotests: mark 185 as a flaky test Daniel P. Berrangé
2026-05-13 12:14   ` Thomas Huth
2026-05-13 15:59   ` Pierrick Bouvier
2026-05-13 12:00 ` [PATCH v6 15/16] gitlab: add jobs for thorough block tests Daniel P. Berrangé
2026-05-13 16:00   ` Pierrick Bouvier
2026-05-13 17:18     ` Daniel P. Berrangé
2026-05-13 17:21       ` Pierrick Bouvier
2026-05-13 12:00 ` [PATCH v6 16/16] gitlab: remove I/O tests from build-tcg-disabled job Daniel P. Berrangé

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20260513120003.226790-1-berrange@redhat.com \
    --to=berrange@redhat.com \
    --cc=alex.bennee@linaro.org \
    --cc=crosa@redhat.com \
    --cc=hreitz@redhat.com \
    --cc=jsnow@redhat.com \
    --cc=kwolf@redhat.com \
    --cc=pbonzini@redhat.com \
    --cc=philmd@linaro.org \
    --cc=pierrick.bouvier@linaro.org \
    --cc=pierrick.bouvier@oss.qualcomm.com \
    --cc=qemu-block@nongnu.org \
    --cc=qemu-devel@nongnu.org \
    --cc=thuth@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox