qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Kevin Wolf <kwolf@redhat.com>
To: Thomas Huth <thuth@redhat.com>
Cc: qemu-block@nongnu.org, Hanna Czenczek <hreitz@redhat.com>,
	qemu-devel@nongnu.org
Subject: Re: [PATCH 2/3] tests/qemu-iotests: Improve the dry run list to speed up thorough testing
Date: Mon, 13 Oct 2025 14:51:24 +0200	[thread overview]
Message-ID: <aOz1zLV4J5Znm_M3@redhat.com> (raw)
In-Reply-To: <c8e6d6c7-d261-4ede-83f3-1fd7b70d2eee@redhat.com>

Am 02.10.2025 um 16:33 hat Thomas Huth geschrieben:
> On 02/10/2025 16.04, Kevin Wolf wrote:
> > Am 10.09.2025 um 17:37 hat Thomas Huth geschrieben:
> > > From: Thomas Huth <thuth@redhat.com>
> > > 
> > > When running the tests in thorough mode, e.g. with:
> > > 
> > >   make -j$(nproc) check SPEED=thorough
> > > 
> > > we currently always get a huge amount of total tests that the test
> > > runner tries to execute (2457 in my case), but a big bunch of them are
> > > only skipped (1099 in my case, meaning that only 1358 got executed).
> > > This happens because we try to run the whole set of iotests for multiple
> > > image formats while a lot of the tests can only run with one certain
> > > format only and thus are marked as SKIP during execution. This is quite a
> > > waste of time during each test run, and also unnecessarily blows up the
> > > displayed list of executed tests in the console output.
> > > 
> > > Thus let's try to be a little bit smarter: If the "check" script is run
> > > with "-n" and an image format switch (like "-qed") at the same time (which
> > > is what we do already for discovering the tests for the meson test runner),
> > > only report the tests that likely support the given format instead of
> > > providing the whole list of all tests. We can determine whether a test
> > > supports a format or not by looking at the lines in the file that contain
> > > a "supported_fmt" or "unsupported_fmt" statement. This is only heuristics,
> > > of course, but it is good enough for running the iotests via "make
> > > check-block" - I double-checked that the list of executed tests does not
> > > get changed by this patch, it's only the tests that are skipped anyway that
> > > are now not run anymore.
> > > 
> > > This way the amount of total tests drops from 2457 to 1432 for me, and
> > > the amount of skipped tests drops from 1099 to just 74 (meaning that we
> > > still properly run 1432 - 74 = 1358 tests as we did before).
> > > 
> > > Signed-off-by: Thomas Huth <thuth@redhat.com>
> > > ---
> > >   tests/qemu-iotests/check | 35 ++++++++++++++++++++++++++++++++---
> > >   1 file changed, 32 insertions(+), 3 deletions(-)
> > 
> > > +def dry_run_list(test_dir, imgfmt, testlist):
> > > +    for t in testlist:
> > > +        if not imgfmt:
> > > +            print('\n'.join([os.path.basename(t)]))
> > > +            continue
> > > +        # If a format has been given, we look for the "supported_fmt"
> > > +        # and the "unsupported_fmt" lines in the test and try to find out
> > > +        # whether the format is supported or not. This is only heuristics,
> > > +        # but it should be good enough for "make check-block"
> > 
> > I'm not completely sure if this is a good idea at all, but I think we
> > should at least mention the possible surprising cases where the
> > heuristics fails in this comment.
> 
> Yeah, it's not perfect, but I also failed to come up with a better
> solution... do you have any other ideas?

Maybe fixing the qcow vs. qcow2 case could be possible relatively easily
by operating only on full words, but I don't have any fundamentally
different solution without touching every script.

If touching everything is an option, maybe we could have a standardised
comment line like we have with "# group:" today. This would be easy to
parse and work in both bash and Python scripts. But I'm not sure if it's
worth it.

> If not, would you be fine with the patch if I respin it with the comment
> here extended with some words about those surprising cases?

Yes, I just want to have potentially surprising behaviour documented.

Kevin



  reply	other threads:[~2025-10-13 12:54 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-09-10 15:37 [PATCH 0/3] tests/qemu-iotests: Improve test detection for meson Thomas Huth
2025-09-10 15:37 ` [PATCH 1/3] tests/qemu-iotests/184: Fix skip message for qemu-img without throttle Thomas Huth
2025-10-02 14:05   ` Kevin Wolf
2025-09-10 15:37 ` [PATCH 2/3] tests/qemu-iotests: Improve the dry run list to speed up thorough testing Thomas Huth
2025-10-02 14:04   ` Kevin Wolf
2025-10-02 14:33     ` Thomas Huth
2025-10-13 12:51       ` Kevin Wolf [this message]
2025-09-10 15:37 ` [PATCH 3/3] tests/qemu-iotest: Add more image formats to the " Thomas Huth
2025-10-02 14:07   ` Kevin Wolf

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=aOz1zLV4J5Znm_M3@redhat.com \
    --to=kwolf@redhat.com \
    --cc=hreitz@redhat.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;
as well as URLs for NNTP newsgroup(s).