Thomas Huth <[email protected]> writes:

> On 18/09/2026 22.31, Fabiano Rosas wrote:
>> make check is currently by default running tests tagged
>> "slow". 
> That's a regression, it did not used to be that way. Thus could you please 
> add a "Fixes:" tag to your patch?
>

So, in a sense, it's this commit:

  f4b2607228 ("tests: tag slow tests with 'slow' suite for easy filtering").

It added some qtests to the 'slow' suite. But the problem actually has
always existed, it's just that we usually put tests not only the 'slow'
suite but also some 'foo-slow'. The mtest2make.py script then omits the
'slow' suite...

  def process_tests(test, targets, suites):
              ...
              if s == 'slow' or s == 'thorough':
                  continue

...while the filtering omits the foo-slow:

  .speed.quick = $(foreach s,$(sort $(filter-out %-slow %-thorough,
  $1)), --suite $s)

But using the 'exclude_suites' in the main meson.build never did
anything. So the 'slow' suite is actually useless aside from the fact
that it carries the environment variables along.


Daniel P. BerrangĂ© <[email protected]> writes:

> On Fri, Sep 18, 2026 at 05:31:52PM -0300, Fabiano Rosas wrote:
>> make check is currently by default running tests tagged
>> "slow". Running make check with no SPEED variable set should be
>> equivalent to SPEED=quick and run the meson 'quick' test setup, which
>> explicitly excludes slow tests:
>
> Can you give an example of some tests that you think should not
> be running.
>

Sorry, I could have worded this patch a bit better. I'm aiming
specifically at the (presumed) assumption that 'excluded_suites' in
meson.build is sufficient to stop a test from running if that test is in
one of the suites listed there.

For instance, all tests listed in the tests/qtest/meson.build
'slow_qtests' variable are affected:

$ ../configure
--target-list=x86_64-softmmu,i386-softmmu,x86_64-linux-user,aarch64-softmmu,arm-softmmu,ppc64-softmmu,ppc-softmmu,s390x-softmmu,riscv64-softmmu,aarch64-linux-user,mips64-softmmu,loongarch64-softmmu
--enable-plugins --enable-modules --enable-werror --enable-debug
--disable-docs --enable-slirp --disable-containers

$ make -j$(nproc) check | grep "+slow"
 1/1100 qemu:qtest+qtest-s390x+slow / qtest-s390x/qom-test
 2/1100 qemu:qtest+qtest-mips64+slow / qtest-mips64/qom-test
 3/1100 qemu:qtest+qtest-loongarch64+slow / qtest-loongarch64/qom-test
 4/1100 qemu:qtest+qtest-i386+slow / qtest-i386/qom-test
 <plus a bunch>

> I just run 'make check' and looked at two examples
>
> tests/unit/test-crypto-pbkdf.c  skips registering some tests
> unless "SPEED=slow" and that correctly skipped them.
>
> tests/qemu-iotests/meson.build skips running 'raw' format tests
> unless SPEED=slow, and that appears to be correctly working,
> only running qcow2 format tests by default.
>

Right, make SPEED=speed check works in the sense that:

1) it sets the SPEED properly
2) it excludes 'foo-slow' and 'slow' tests ("manually" via mtest2make.py)

however,

3) it does not exclude _the same test_ if it's part of another suite.


Reply via email to