All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Daniel P. Berrangé" <berrange@redhat.com>
To: qemu-devel@nongnu.org
Cc: "Kevin Wolf" <kwolf@redhat.com>,
	"Hanna Reitz" <hreitz@redhat.com>,
	qemu-block@nongnu.org, "Paolo Bonzini" <pbonzini@redhat.com>,
	"Daniel P. Berrangé" <berrange@redhat.com>
Subject: [PATCH 0/5] iotests: make meson aware of individual I/O tests
Date: Thu,  2 Mar 2023 18:46:01 +0000	[thread overview]
Message-ID: <20230302184606.418541-1-berrange@redhat.com> (raw)

To just repeat the patch 5 description...

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 is not really specific to the I/O tests, the problem is common
to any case of us running a test which is in fact another test
harness which runs many tests. It would be nice to have meson have
the full view of all tests run. Adapting the I/O tests is as easy
win in this respect.

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.

Compare contrast output from a current job:

  https://gitlab.com/qemu-project/qemu/-/jobs/3863603546

[quote]
204/224 qemu:block / qemu-iotests qcow2   OK 329.94s   119 subtests passed
[/quote]

Vs what is seen with this series:

  https://gitlab.com/berrange/qemu/-/jobs/3865975463

[quote]
204/350 qemu:block / qemu-iotests-qcow2-001   OK    2.16s   1 subtests passed
205/350 qemu:block / qemu-iotests-qcow2-002   OK    2.77s   1 subtests passed

...snip...

329/350 qemu:block / qemu-iotests-qcow2-qemu-img-close-errors       OK    6.19s   1 subtests passed
330/350 qemu:block / qemu-iotests-qcow2-qsd-jobs          OK    0.55s   1 subtests passed
[/quote]

A few tweaks were needed to the iotests runner because it had a few
assumptions about it always running in a tree that has already been
built, which is obviously not the case at the time meson does test
discovery.

Daniel P. Berrangé (5):
  iotests: explicitly pass source/build dir to 'check' command
  iotests: allow test discovery before building
  iotests: strip subdir path when listing tests
  iotests: print TAP protocol version when reporting tests
  iotests: register each I/O test separately with meson

 tests/qemu-iotests/check         | 11 +++++++++--
 tests/qemu-iotests/meson.build   | 33 ++++++++++++++++++++++++++------
 tests/qemu-iotests/testenv.py    | 22 +++++++++++++++++----
 tests/qemu-iotests/testrunner.py |  1 +
 4 files changed, 55 insertions(+), 12 deletions(-)

-- 
2.39.2



             reply	other threads:[~2023-03-02 18:47 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-03-02 18:46 Daniel P. Berrangé [this message]
2023-03-02 18:46 ` [PATCH 1/5] iotests: explicitly pass source/build dir to 'check' command Daniel P. Berrangé
2023-03-03 12:55   ` Alex Bennée
2023-03-03 13:01     ` Daniel P. Berrangé
2023-03-02 18:46 ` [PATCH 2/5] iotests: allow test discovery before building Daniel P. Berrangé
2023-03-03  8:14   ` Thomas Huth
2023-03-03 12:56   ` Alex Bennée
2023-03-02 18:46 ` [PATCH 3/5] iotests: strip subdir path when listing tests Daniel P. Berrangé
2023-03-03 12:58   ` Alex Bennée
2023-03-02 18:46 ` [PATCH 4/5] iotests: print TAP protocol version when reporting tests Daniel P. Berrangé
2023-03-03  8:17   ` Thomas Huth
2023-03-03 12:58   ` Alex Bennée
2023-03-02 18:46 ` [PATCH 5/5] iotests: register each I/O test separately with meson Daniel P. Berrangé
2023-03-03  9:34   ` Thomas Huth
2023-03-03 10:21     ` Daniel P. Berrangé
2023-03-02 18:54 ` [PATCH 0/5] iotests: make meson aware of individual I/O tests Daniel P. Berrangé
2023-03-03  8:30 ` Thomas Huth
2023-03-03  8:53   ` Daniel P. Berrangé
2023-03-03  9:39     ` Daniel P. Berrangé
2023-03-03 10:27     ` Thomas Huth
2023-03-03 10:45   ` Daniel P. Berrangé
2023-03-03 13:06     ` Daniel P. Berrangé
2023-03-03 15:49       ` Thomas Huth
2023-03-03 15:52         ` 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=20230302184606.418541-1-berrange@redhat.com \
    --to=berrange@redhat.com \
    --cc=hreitz@redhat.com \
    --cc=kwolf@redhat.com \
    --cc=pbonzini@redhat.com \
    --cc=qemu-block@nongnu.org \
    --cc=qemu-devel@nongnu.org \
    /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.