On Fri, Mar 03, 2023 at 10:34:11AM +0100, Thomas Huth wrote: > On 02/03/2023 19.46, Daniel P. Berrangé wrote: > > 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 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. > > > > Signed-off-by: Daniel P. Berrangé <berra...@redhat.com> > > --- > > tests/qemu-iotests/meson.build | 33 +++++++++++++++++++++++++++------ > > 1 file changed, 27 insertions(+), 6 deletions(-) > > > > diff --git a/tests/qemu-iotests/meson.build b/tests/qemu-iotests/meson.build > > index 323a4acb6a..48c82085af 100644 > > --- a/tests/qemu-iotests/meson.build > > +++ b/tests/qemu-iotests/meson.build > > @@ -32,16 +32,37 @@ foreach k, v : emulators > > endif > > endforeach > > +qemu_iotests_check_cmd = files('check') > > + > > foreach format, speed: qemu_iotests_formats > > if speed == 'quick' > > suites = 'block' > > else > > suites = ['block-' + speed, speed] > > endif > > - test('qemu-iotests ' + format, sh, args: [files('../check-block.sh'), > > format], > > - depends: qemu_iotests_binaries, env: qemu_iotests_env, > > - protocol: 'tap', > > - suite: suites, > > - timeout: 0, > > - is_parallel: false) > > + > > + args = ['-tap', '-' + format] > > + if speed == 'quick' > > + args += ['-g', 'auto'] > > + endif > > + > > + rc = run_command( > > + [qemu_iotests_check_cmd] + args + ['-n'], > > + check: true, > > + ) > > + > > + foreach item: rc.stdout().strip().split() > > + message('Adding test qemu-iotests-' + format + '-' + item) > > This message spoils the output during "configure" quite a bit, please remove > that line.
Yes, that wasn't supposed to be left it, it was me debugging :-) > > Apart from that, patch looks fine to me! > > Thomas > > > > + args = ['-tap', '-' + format, item, > > + '--source-dir', meson.current_source_dir(), > > + '--build-dir', meson.current_build_dir()] > > + test('qemu-iotests-' + format + '-' + item, > > + qemu_iotests_check_cmd, > > + args: args, > > + is_parallel: false, > > + depends: qemu_iotests_binaries, > > + env: qemu_iotests_env, > > + protocol: 'tap', > > + suite: suites) > > + endforeach > > endforeach > With regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|