blob: e135adac1487ab4dfd163844c124c242e98fe20b [file] [log] [blame]
set(libqemu-test_src
tests/libqtest.c
${ANDROID_AUTOGEN}/tests/test-qapi-visit.c
${ANDROID_AUTOGEN}/tests/test-qapi-types.c
${ANDROID_AUTOGEN}/tests/test-qapi-events.c
${ANDROID_AUTOGEN}/tests/test-qapi-introspect.c)
android_add_library(libqemu-test)
target_link_libraries(libqemu-test PUBLIC android-qemu-deps android-emu-base)
set(libqemu-test-crypto_src
tests/libqtest.c
${ANDROID_AUTOGEN}/tests/test-qapi-visit.c
${ANDROID_AUTOGEN}/tests/test-qapi-types.c
${ANDROID_AUTOGEN}/tests/test-qapi-events.c
${ANDROID_AUTOGEN}/tests/test-qapi-introspect.c)
android_add_library(libqemu-test-crypto)
target_link_libraries(libqemu-test-crypto PRIVATE libqemu-test crypto)
# Adds a qemu test, note that these test should never bring in an android dependency
function(add_qtest NAME DEPENDENCY)
set(${NAME}_src tests/${NAME}.c)
android_add_test(${NAME})
android_target_dependency(${NAME} linux-x86_64 TCMALLOC_OS_DEPENDENCIES)
target_compile_definitions(${NAME} PRIVATE -DCONFIG_ANDROID)
target_include_directories(${NAME} PUBLIC ${ANDROID_AUTOGEN}/tests)
target_link_libraries(${NAME} PRIVATE ${DEPENDENCY} qemu2-common libqemu2-util android-qemu-deps)
endfunction()
# These tests rely on interaction with the qemu binary. These require a non- trivial test runner as they interact with a
# running emulator. It is not yet clear how we can run these.
set(TEST_NEED_QEMU
test-arm-mptimer
test-crypto-block
test-bdrv-drain
test-block-backend
test-blockjob
test-blockjob-txn
test-char
test-filter-mirror
test-filter-redirector
test-hbitmap
test-hmp
test-io-channel-buffer
test-io-channel-command
test-io-channel-file
test-io-channel-socket
test-io-task
test-netfilter
test-qdev-global-props
test-qga
test-replication
test-thread-pool
test-throttle
test-vmstate
test-write-threshold
test-x86-cpuid-compat
test-xbzrle
test-crypto-tlscredsx509
test-crypto-tlssession
test-crypto-secret)
# These require different set of linkers.
set(CRYPTO_TESTS
test-crypto-afsplit
test-crypto-cipher
test-crypto-hash
test-crypto-hmac
test-crypto-ivgen
test-crypto-pbkdf
test-crypto-xts)
# These tests are currently failing.
set(SIMPLE_TEST_FAILURES test-qht-par
# test-rcu-list # This is a concurrency test and requires a set of parameters
)
set(SIMPLE_TESTS
test-aio
test-base64
test-bitcnt
test-bitops
test-bufferiszero
test-clone-visitor
test-coroutine
test-cutils
test-int128
test-iov
test-keyval
# test-logging
test-mul64
test-opts-visitor
test-qapi-util
test-qdist
test-qemu-opts
test-qht
test-qmp-event
test-qobject-input-visitor
test-qobject-output-visitor
test-shift128
test-string-input-visitor
test-string-output-visitor
test-timed-average
test-uuid
test-visitor-serialization
test-x86-cpuid)
# Add basic tests
foreach(test ${SIMPLE_TESTS})
add_qtest(${test} libqemu-test)
endforeach()
# Add crypto tests
foreach(test ${CRYPTO_TESTS})
add_qtest(${test} libqemu-test-crypto)
endforeach()
# Socket test is split in two, so we special case it
set(test-util-sockets-qtest_src tests/test-util-sockets.c tests/socket-helpers.c)
android_add_test(test-util-sockets-qtest)
target_include_directories(test-util-sockets-qtest PUBLIC ${ANDROID_AUTOGEN}/tests)
target_link_libraries(test-util-sockets-qtest PRIVATE libqemu2-util qemu2-common android-qemu-deps)