mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-07-27 04:13:53 -06:00
build: make check-block a meson test
"meson test" can be asked to run tests verbosely; this makes it usable also for qemu-iotests's own harness, and it lets "make check-block" reuse mtest2make.py's infrastructure to find and build test dependencies. Adjust check-block.sh to use the standard exit code that reports a test as skipped. Alternatively, in the future we could make it produce TAP output, which is consistent with all other "make check" tests. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
parent
3e233e2917
commit
98487b9035
6 changed files with 58 additions and 32 deletions
|
@ -79,7 +79,7 @@ def emit_prolog(suites, prefix):
|
|||
print(f'{prefix}-report.junit.xml $(all-{prefix}-xml): {prefix}-report%.junit.xml: run-ninja')
|
||||
print(f'\t$(MAKE) {prefix}$* MTESTARGS="$(MTESTARGS) --logbase {prefix}-report$*" && ln -f meson-logs/$@ .')
|
||||
|
||||
def emit_suite(name, suite, prefix):
|
||||
def emit_suite_deps(name, suite, prefix):
|
||||
deps = ' '.join(suite.deps)
|
||||
targets = f'{prefix}-{name} {prefix}-report-{name}.junit.xml {prefix} {prefix}-report.junit.xml'
|
||||
print()
|
||||
|
@ -87,6 +87,10 @@ def emit_suite(name, suite, prefix):
|
|||
print(f'ifneq ($(filter {prefix}-build {targets}, $(MAKECMDGOALS)),)')
|
||||
print(f'.{prefix}.build-suites += {name}')
|
||||
print(f'endif')
|
||||
|
||||
def emit_suite(name, suite, prefix):
|
||||
emit_suite_deps(name, suite, prefix)
|
||||
targets = f'{prefix}-{name} {prefix}-report-{name}.junit.xml {prefix} {prefix}-report.junit.xml'
|
||||
print(f'ifneq ($(filter {targets}, $(MAKECMDGOALS)),)')
|
||||
print(f'.{prefix}.mtest-suites += ' + ' '.join(suite.names(name)))
|
||||
print(f'endif')
|
||||
|
@ -97,6 +101,10 @@ targets = {t['id']: [os.path.relpath(f) for f in t['filename']]
|
|||
testsuites = defaultdict(Suite)
|
||||
for test in introspect['tests']:
|
||||
process_tests(test, targets, testsuites)
|
||||
# HACK: check-block is a separate target so that it runs with --verbose;
|
||||
# only write the dependencies
|
||||
emit_suite_deps('block', testsuites['block'], 'check')
|
||||
del testsuites['block']
|
||||
emit_prolog(testsuites, 'check')
|
||||
for name, suite in testsuites.items():
|
||||
emit_suite(name, suite, 'check')
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue