All of 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>,
	"Daniel P. Berrangé" <berrange@redhat.com>,
	"Thanos Makatos" <thanos.makatos@nutanix.com>,
	qemu-block@nongnu.org, "Hanna Reitz" <hreitz@redhat.com>,
	"Kevin Wolf" <kwolf@redhat.com>,
	"Pierrick Bouvier" <pierrick.bouvier@oss.qualcomm.com>,
	"Cédric Le Goater" <clg@redhat.com>,
	"John Snow" <jsnow@redhat.com>,
	"John Levon" <john.levon@nutanix.com>,
	"Alex Bennée" <alex.bennee@linaro.org>,
	"Cleber Rosa" <crosa@redhat.com>,
	"Thomas Huth" <thuth@redhat.com>
Subject: [PULL 07/29] iotests: ensure all qcow2 I/O tests are able to be run via make
Date: Wed, 20 May 2026 10:13:29 +0100	[thread overview]
Message-ID: <20260520091351.1160442-8-berrange@redhat.com> (raw)
In-Reply-To: <20260520091351.1160442-1-berrange@redhat.com>

For block formats marked as 'quick', only tests in the 'auto' group are
added to the meson test suite.

The result of this is that qcow2 tests not in the 'auto' group cannot be
run at all, even if passing SPEED=slow or SPEED=thorough.

To fix this we need todo two passes over the I/O test list. First add
all tests from 'auto' group into the 'block' suite, so they are run by
default. Then on the second pass add any tests which were not in 'auto'
into the 'block-slow' suite, so they get run when SPEED=slow or
SPEED=thorough.

Reviewed-by: Kevin Wolf <kwolf@redhat.com>
Reviewed-by: Thomas Huth <thuth@redhat.com>
Reviewed-by: Pierrick Bouvier <pierrick.bouvier@oss.qualcomm.com>
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
---
 tests/qemu-iotests/meson.build | 48 ++++++++++++++++++++++++++++++----
 1 file changed, 43 insertions(+), 5 deletions(-)

diff --git a/tests/qemu-iotests/meson.build b/tests/qemu-iotests/meson.build
index bf588cc2c9..1a24d801a3 100644
--- a/tests/qemu-iotests/meson.build
+++ b/tests/qemu-iotests/meson.build
@@ -30,16 +30,48 @@ endforeach
 qemu_iotests_check_cmd = files('check')
 
 foreach format, speed: qemu_iotests_formats
+  # Formats tagged 'quick' get the subset of tests in the 'auto'
+  # group, run by default with 'make check' / 'make check-block'
+  seen = []
   if speed == 'quick'
-    suites = 'block'
+    args = ['-tap', '-' + format, '-g', 'auto']
+    suites = ['block']
+
+    rc = run_command(
+      [python, qemu_iotests_check_cmd] + args + ['-n'],
+      check: true,
+    )
+
+    foreach item: rc.stdout().strip().split()
+      seen += item
+      args = [qemu_iotests_check_cmd,
+              '-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,
+           python,
+           args: args,
+           depends: qemu_iotests_binaries,
+           env: qemu_iotests_env,
+           protocol: 'tap',
+           timeout: 180,
+           suite: suites)
+    endforeach
+  endif
+
+  suites = []
+  # Any format tagged quick or slow also gets added to slow
+  # otherwise its tagged thorough
+  if speed != 'thorough'
+    suites += ['block-slow']
   else
-    suites = ['block-' + speed]
+    suites += ['block-thorough']
   endif
 
   args = ['-tap', '-' + format]
-  if speed == 'quick'
-      args += ['-g', 'auto']
-  endif
 
   rc = run_command(
       [python, qemu_iotests_check_cmd] + args + ['-n'],
@@ -47,6 +79,12 @@ foreach format, speed: qemu_iotests_formats
   )
 
   foreach item: rc.stdout().strip().split()
+      # Skip any tests already added from the 'auto' group
+      # as they're run in the 'quick' suite already
+      if item in seen
+          continue
+      endif
+
       args = [qemu_iotests_check_cmd,
               '-tap', '-' + format, item,
               '--source-dir', meson.current_source_dir(),
-- 
2.54.0



  parent reply	other threads:[~2026-05-20  9:14 UTC|newest]

Thread overview: 33+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-05-20  9:13 [PULL 00/29] Misc next patches Daniel P. Berrangé
2026-05-20  9:13 ` [PULL 01/29] io: invert the return semantics of qio_channel_flush Daniel P. Berrangé
2026-05-20  9:13 ` [PULL 02/29] crypto: fix client side anonymous TLS credentials Daniel P. Berrangé
2026-05-20  9:13 ` [PULL 03/29] python: bump qemu.qmp to v0.0.6 Daniel P. Berrangé
2026-05-20  9:13 ` [PULL 04/29] gitlab: ensure all meson jobs capture build/meson-logs by default Daniel P. Berrangé
2026-05-20  9:13 ` [PULL 05/29] iotests: print reason when I/O test is skipped in TAP mode Daniel P. Berrangé
2026-05-20  9:13 ` [PULL 06/29] iotests: remove redundant meson suite for iotests Daniel P. Berrangé
2026-05-20  9:13 ` Daniel P. Berrangé [this message]
2026-05-20  9:13 ` [PULL 08/29] scripts/mtest2make: ensure output has stable sorting Daniel P. Berrangé
2026-05-20  9:13 ` [PULL 09/29] scripts/mtest2make: support optional tests grouping Daniel P. Berrangé
2026-05-20  9:13 ` [PULL 10/29] iotests: add a meson suite / make target per block I/O tests format Daniel P. Berrangé
2026-05-20  9:13 ` [PULL 11/29] docs/devel/testing: expand documentation for 'make check-block' Daniel P. Berrangé
2026-05-20  9:13 ` [PULL 12/29] iotests: add nbd and luks to the I/O test suites Daniel P. Berrangé
2026-05-20  9:13 ` [PULL 13/29] iotests: use 'driver' as collective term for either format or protocol Daniel P. Berrangé
2026-05-20  9:13 ` [PULL 14/29] iotests: validate dmsetup result in test 128 Daniel P. Berrangé
2026-05-20  9:13 ` [PULL 15/29] iotests: fix check for sudo access in LUKS I/O test Daniel P. Berrangé
2026-05-20  9:13 ` [PULL 16/29] iotests: mark 185 as a flaky test Daniel P. Berrangé
2026-05-20  9:13 ` [PULL 17/29] gitlab: add jobs for thorough block tests Daniel P. Berrangé
2026-05-20  9:13 ` [PULL 18/29] gitlab: remove I/O tests from build-tcg-disabled job Daniel P. Berrangé
2026-05-20  9:13 ` [PULL 19/29] qom: add trace events for object/property lifecycle Daniel P. Berrangé
2026-05-20  9:13 ` [PULL 20/29] hw/vfio-user: use a valid object ID for iothread Daniel P. Berrangé
2026-05-20  9:13 ` [PULL 21/29] qom: validate ID format when creating objects Daniel P. Berrangé
2026-05-20  9:13 ` [PULL 22/29] qom: make errp last param in methods taking va_list Daniel P. Berrangé
2026-05-20  9:13 ` [PULL 23/29] qom: shorten name of object_set_properties_from_keyval Daniel P. Berrangé
2026-05-20  9:13 ` [PULL 24/29] qom: have object_set_props_keyval return bool Daniel P. Berrangé
2026-05-20  9:13 ` [PULL 25/29] qom: move object_set_prop_keyval into object.c Daniel P. Berrangé
2026-05-20  9:13 ` [PULL 26/29] qom: add object_new_with_props_from_qdict Daniel P. Berrangé
2026-05-20  9:13 ` [PULL 27/29] qom: fix ability to create objects without a parent Daniel P. Berrangé
2026-05-20  9:13 ` [PULL 28/29] qom: allow object_new_with_prop* to trigger module loading Daniel P. Berrangé
2026-05-20  9:13 ` [PULL 29/29] qom: drop user_creatable_add_type method Daniel P. Berrangé
2026-05-20 20:51 ` [PULL 00/29] Misc next patches Stefan Hajnoczi
2026-05-21  8:56   ` Daniel P. Berrangé
  -- strict thread matches above, loose matches on Subject: below --
2026-05-21 13:49 [PULL v3 00/29] Misc patches for iotests, qom, crypt & io Daniel P. Berrangé
2026-05-21 13:49 ` [PULL 07/29] iotests: ensure all qcow2 I/O tests are able to be run via make 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=20260520091351.1160442-8-berrange@redhat.com \
    --to=berrange@redhat.com \
    --cc=alex.bennee@linaro.org \
    --cc=clg@redhat.com \
    --cc=crosa@redhat.com \
    --cc=hreitz@redhat.com \
    --cc=john.levon@nutanix.com \
    --cc=jsnow@redhat.com \
    --cc=kwolf@redhat.com \
    --cc=pbonzini@redhat.com \
    --cc=pierrick.bouvier@oss.qualcomm.com \
    --cc=qemu-block@nongnu.org \
    --cc=qemu-devel@nongnu.org \
    --cc=thanos.makatos@nutanix.com \
    --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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.