Skip to content

Commit

Permalink
iotests: allow test discovery before building
Browse files Browse the repository at this point in the history
The 'check' script can be invoked in "dry run" mode, in which case it
merely does test discovery and prints out all their names. Despite only
doing test discovery it still validates that the various QEMU binaries
can be found. This makes it impossible todo test discovery prior to
building QEMU. This is a desirable feature to support, because it will
let meson discover tests.

Fortunately the code in the TestEnv constructor is ordered in a way
that makes this fairly trivial to achieve. We can just short circuit
the constructor after the basic directory paths have been set.

Reviewed-by: Thomas Huth <thuth@redhat.com>
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
Acked-by: Hanna Czenczek <hreitz@redhat.com>
Tested-by: Thomas Huth <thuth@redhat.com>
Message-Id: <20230303160727.3977246-3-berrange@redhat.com>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Message-Id: <20230315174331.2959-20-alex.bennee@linaro.org>
  • Loading branch information
berrange authored and stsquad committed Mar 22, 2023
1 parent 0c8076b commit a9e2178
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 2 deletions.
3 changes: 2 additions & 1 deletion tests/qemu-iotests/check
Original file line number Diff line number Diff line change
Expand Up @@ -145,7 +145,8 @@ if __name__ == '__main__':
aiomode=args.aiomode, cachemode=args.cachemode,
imgopts=args.imgopts, misalign=args.misalign,
debug=args.debug, valgrind=args.valgrind,
gdb=args.gdb, qprint=args.print)
gdb=args.gdb, qprint=args.print,
dry_run=args.dry_run)

if len(sys.argv) > 1 and sys.argv[-len(args.tests)-1] == '--':
if not args.tests:
Expand Down
7 changes: 6 additions & 1 deletion tests/qemu-iotests/testenv.py
Original file line number Diff line number Diff line change
Expand Up @@ -178,7 +178,8 @@ def __init__(self, source_dir: str, build_dir: str,
debug: bool = False,
valgrind: bool = False,
gdb: bool = False,
qprint: bool = False) -> None:
qprint: bool = False,
dry_run: bool = False) -> None:
self.imgfmt = imgfmt
self.imgproto = imgproto
self.aiomode = aiomode
Expand Down Expand Up @@ -218,6 +219,10 @@ def __init__(self, source_dir: str, build_dir: str,
self.build_root = os.path.join(self.build_iotests, '..', '..')

self.init_directories()

if dry_run:
return

self.init_binaries()

self.malloc_perturb_ = os.getenv('MALLOC_PERTURB_',
Expand Down

0 comments on commit a9e2178

Please sign in to comment.