meson: qtest: set "depends" correctly

This does not have any effect on Meson's behavior itself, since "meson test"
always rebuilds everything (that is one reason why we are not using it...).
However, mtest2make can use this information to do a selective rebuild
for the requested suite.

Cc: Thomas Huth <thuth@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
Paolo Bonzini 2020-09-16 05:00:53 -04:00
parent 61f8641644
commit fd5eef85fe
2 changed files with 11 additions and 4 deletions

View File

@ -1103,7 +1103,7 @@ common_all = static_library('common',
feature_to_c = find_program('scripts/feature_to_c.sh')
emulators = []
emulators = {}
foreach target : target_dirs
config_target = config_target_mak[target]
target_name = config_target['TARGET_NAME']
@ -1222,7 +1222,8 @@ foreach target : target_dirs
}]
endif
foreach exe: execs
emulators += executable(exe['name'], exe['sources'],
emulators += {exe['name']:
executable(exe['name'], exe['sources'],
install: true,
c_args: c_args,
dependencies: arch_deps + deps + exe['dependencies'],
@ -1231,6 +1232,7 @@ foreach target : target_dirs
link_depends: [block_syms, qemu_syms] + exe.get('link_depends', []),
link_args: link_args,
gui_app: exe['gui'])
}
if 'CONFIG_TRACE_SYSTEMTAP' in config_host
foreach stp: [
@ -1276,7 +1278,6 @@ if xkbcommon.found()
dependencies: [qemuutil, xkbcommon], install: have_tools)
endif
qemu_block_tools = []
if have_tools
qemu_img = executable('qemu-img', [files('qemu-img.c'), hxdep],
dependencies: [authz, block, crypto, io, qom, qemuutil], install: true)

View File

@ -228,10 +228,15 @@ foreach dir : target_dirs
endif
target_base = dir.split('-')[0]
qtest_emulator = emulators['qemu-system-' + target_base]
qtests = get_variable('qtests_' + target_base, []) + qtests_generic
test_deps = []
qtest_env = environment()
qtest_env.set('QTEST_QEMU_IMG', './qemu-img')
if have_tools
qtest_env.set('QTEST_QEMU_IMG', './qemu-img')
test_deps += [qemu_img]
endif
qtest_env.set('G_TEST_DBUS_DAEMON', meson.source_root() / 'tests/dbus-vmstate-daemon.sh')
qtest_env.set('QTEST_QEMU_BINARY', './qemu-system-' + target_base)
@ -248,6 +253,7 @@ foreach dir : target_dirs
# FIXME: missing dependency on the emulator binary and qemu-img
test('qtest-@0@: @1@'.format(target_base, test),
qtest_executables[test],
depends: [test_deps, qtest_emulator],
env: qtest_env,
args: ['--tap', '-k'],
protocol: 'tap',