Meson 0.58.2 does not need b_staticpic=$pie anymore, and has stabilized the keyval module. Remove the workaround and use a few replacements for features deprecated in the 0.57.0 release cycle. One feature that we would like to use is passing dependencies to summary. However, that was broken in 0.59.0 and 0.59.1. Therefore, use the embedded Meson if the host has anything older than 0.59.2, but allow --meson= to use 0.58.2. Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
187 lines
5.5 KiB
Meson
187 lines
5.5 KiB
Meson
|
|
testblock = declare_dependency(dependencies: [block], sources: 'iothread.c')
|
|
|
|
tests = {
|
|
'check-block-qdict': [],
|
|
'check-qdict': [],
|
|
'check-qnum': [],
|
|
'check-qstring': [],
|
|
'check-qlist': [],
|
|
'check-qnull': [],
|
|
'check-qobject': [],
|
|
'check-qjson': [],
|
|
'check-qlit': [],
|
|
'test-qobject-output-visitor': [testqapi],
|
|
'test-clone-visitor': [testqapi],
|
|
'test-qobject-input-visitor': [testqapi],
|
|
'test-forward-visitor': [testqapi],
|
|
'test-string-input-visitor': [testqapi],
|
|
'test-string-output-visitor': [testqapi],
|
|
'test-opts-visitor': [testqapi],
|
|
'test-visitor-serialization': [testqapi],
|
|
'test-bitmap': [],
|
|
# all code tested by test-x86-cpuid is inside topology.h
|
|
'test-x86-cpuid': [],
|
|
'test-cutils': [],
|
|
'test-shift128': [],
|
|
'test-mul64': [],
|
|
# all code tested by test-int128 is inside int128.h
|
|
'test-int128': [],
|
|
'rcutorture': [],
|
|
'test-rcu-list': [],
|
|
'test-rcu-simpleq': [],
|
|
'test-rcu-tailq': [],
|
|
'test-rcu-slist': [],
|
|
'test-qdist': [],
|
|
'test-qht': [],
|
|
'test-bitops': [],
|
|
'test-bitcnt': [],
|
|
'test-qgraph': ['../qtest/libqos/qgraph.c'],
|
|
'check-qom-interface': [qom],
|
|
'check-qom-proplist': [qom],
|
|
'test-qemu-opts': [],
|
|
'test-keyval': [testqapi],
|
|
'test-logging': [],
|
|
'test-uuid': [],
|
|
'ptimer-test': ['ptimer-test-stubs.c', meson.project_source_root() / 'hw/core/ptimer.c'],
|
|
'test-qapi-util': [],
|
|
}
|
|
|
|
if have_system or have_tools
|
|
tests += {
|
|
'test-qmp-event': [testqapi],
|
|
}
|
|
endif
|
|
|
|
if have_block
|
|
tests += {
|
|
'test-coroutine': [testblock],
|
|
'test-aio': [testblock],
|
|
'test-aio-multithread': [testblock],
|
|
'test-throttle': [testblock],
|
|
'test-thread-pool': [testblock],
|
|
'test-hbitmap': [testblock],
|
|
'test-bdrv-drain': [testblock],
|
|
'test-bdrv-graph-mod': [testblock],
|
|
'test-blockjob': [testblock],
|
|
'test-blockjob-txn': [testblock],
|
|
'test-block-backend': [testblock],
|
|
'test-block-iothread': [testblock],
|
|
'test-write-threshold': [testblock],
|
|
'test-crypto-hash': [crypto],
|
|
'test-crypto-hmac': [crypto],
|
|
'test-crypto-cipher': [crypto],
|
|
'test-crypto-secret': [crypto, keyutils],
|
|
'test-authz-simple': [authz],
|
|
'test-authz-list': [authz],
|
|
'test-authz-listfile': [authz],
|
|
'test-io-task': [testblock],
|
|
'test-io-channel-socket': ['socket-helpers.c', 'io-channel-helpers.c', io],
|
|
'test-io-channel-file': ['io-channel-helpers.c', io],
|
|
'test-io-channel-command': ['io-channel-helpers.c', io],
|
|
'test-io-channel-buffer': ['io-channel-helpers.c', io],
|
|
'test-crypto-ivgen': [io],
|
|
'test-crypto-afsplit': [io],
|
|
'test-crypto-block': [io],
|
|
}
|
|
if gnutls.found() and \
|
|
tasn1.found() and \
|
|
'CONFIG_POSIX' in config_host
|
|
tests += {
|
|
'test-crypto-tlscredsx509': ['crypto-tls-x509-helpers.c', 'pkix_asn1_tab.c',
|
|
tasn1, crypto, gnutls],
|
|
'test-crypto-tlssession': ['crypto-tls-x509-helpers.c', 'pkix_asn1_tab.c', 'crypto-tls-psk-helpers.c',
|
|
tasn1, crypto, gnutls],
|
|
'test-io-channel-tls': ['io-channel-helpers.c', 'crypto-tls-x509-helpers.c', 'pkix_asn1_tab.c',
|
|
tasn1, io, crypto, gnutls]}
|
|
endif
|
|
if pam.found()
|
|
tests += {'test-authz-pam': [authz]}
|
|
endif
|
|
if xts == 'private'
|
|
tests += {'test-crypto-xts': [crypto, io]}
|
|
endif
|
|
if 'CONFIG_POSIX' in config_host
|
|
tests += {'test-image-locking': [testblock]}
|
|
endif
|
|
if 'CONFIG_REPLICATION' in config_host
|
|
tests += {'test-replication': [testblock]}
|
|
endif
|
|
if nettle.found() or gcrypt.found()
|
|
tests += {'test-crypto-pbkdf': [io]}
|
|
endif
|
|
if 'CONFIG_EPOLL_CREATE1' in config_host
|
|
tests += {'test-fdmon-epoll': [testblock]}
|
|
endif
|
|
endif
|
|
|
|
if have_system
|
|
tests += {
|
|
'test-iov': [],
|
|
'test-qmp-cmds': [testqapi],
|
|
'test-xbzrle': [migration],
|
|
'test-timed-average': [],
|
|
'test-util-sockets': ['socket-helpers.c'],
|
|
'test-base64': [],
|
|
'test-bufferiszero': [],
|
|
'test-vmstate': [migration, io],
|
|
'test-yank': ['socket-helpers.c', qom, io, chardev]
|
|
}
|
|
if 'CONFIG_INOTIFY1' in config_host
|
|
tests += {'test-util-filemonitor': []}
|
|
endif
|
|
|
|
# Some tests: test-char, test-qdev-global-props, and test-qga,
|
|
# are not runnable under TSan due to a known issue.
|
|
# https://github.com/google/sanitizers/issues/1116
|
|
if 'CONFIG_TSAN' not in config_host
|
|
if 'CONFIG_POSIX' in config_host
|
|
tests += {
|
|
'test-char': ['socket-helpers.c', qom, io, chardev]
|
|
}
|
|
endif
|
|
|
|
tests += {
|
|
'test-qdev-global-props': [qom, hwcore, testqapi]
|
|
}
|
|
endif
|
|
endif
|
|
|
|
if 'CONFIG_TSAN' not in config_host and \
|
|
'CONFIG_GUEST_AGENT' in config_host and \
|
|
'CONFIG_LINUX' in config_host
|
|
tests += {'test-qga': ['../qtest/libqtest.c']}
|
|
test_deps += {'test-qga': qga}
|
|
endif
|
|
|
|
test_env = environment()
|
|
test_env.set('G_TEST_SRCDIR', meson.current_source_dir())
|
|
test_env.set('G_TEST_BUILDDIR', meson.current_build_dir())
|
|
|
|
slow_tests = {
|
|
'test-crypto-tlscredsx509': 45,
|
|
'test-crypto-tlssession': 45
|
|
}
|
|
|
|
foreach test_name, extra: tests
|
|
src = [test_name + '.c']
|
|
deps = [qemuutil]
|
|
if extra.length() > 0
|
|
# use a sourceset to quickly separate sources and deps
|
|
test_ss = ss.source_set()
|
|
test_ss.add(extra)
|
|
src += test_ss.all_sources()
|
|
deps += test_ss.all_dependencies()
|
|
endif
|
|
exe = executable(test_name, src, genh, dependencies: deps)
|
|
|
|
test(test_name, exe,
|
|
depends: test_deps.get(test_name, []),
|
|
env: test_env,
|
|
args: ['--tap', '-k'],
|
|
protocol: 'tap',
|
|
timeout: slow_tests.get(test_name, 30),
|
|
priority: slow_tests.get(test_name, 30),
|
|
suite: ['unit'])
|
|
endforeach
|