| |
| if valgrind.found() |
| valgrind_common_wrapper = [ |
| valgrind, |
| '--quiet', |
| '--track-origins=yes', |
| '--error-exitcode=1', |
| '--exit-on-first-error=yes', |
| '--leak-check=full', |
| ] |
| |
| valgrind_unit_wrapper = valgrind_common_wrapper + [ |
| '--suppressions=' + ( meson.current_source_dir() / 'valgrind.supp' ), |
| '--show-leak-kinds=all', |
| ] |
| if meson.version().version_compare('<0.57.0') |
| add_test_setup('valgrind', |
| exe_wrapper: valgrind_unit_wrapper) |
| else |
| add_test_setup('valgrind', |
| exclude_suites: ['functional', 'pyunit', 'style'], |
| exe_wrapper: valgrind_unit_wrapper) |
| endif |
| endif |
| |
| unit_tests_sources = [ |
| 'unit-tests.c', |
| 'mocks.c', |
| '../lib/dma.c', |
| '../lib/irq.c', |
| '../lib/libvfio-user.c', |
| '../lib/migration.c', |
| '../lib/pci.c', |
| '../lib/pci_caps.c', |
| '../lib/tran.c', |
| '../lib/tran_pipe.c', |
| '../lib/tran_sock.c', |
| ] |
| |
| unit_tests_deps = [ |
| json_c_dep, |
| cmocka_dep, |
| dl_dep, |
| ] |
| unit_tests_cflags = [ |
| '-DUNIT_TEST', |
| '-DWITH_TRAN_PIPE', |
| ] |
| |
| unit_tests = executable( |
| 'unit_tests', |
| unit_tests_sources, |
| c_args: unit_tests_cflags + common_cflags, |
| dependencies: unit_tests_deps, |
| include_directories: public_include_dir + lib_include_dir, |
| install: false, |
| ) |
| |
| test( |
| 'unit_tests', |
| unit_tests, |
| suite: 'unit', |
| ) |
| |
| test( |
| 'test-lspci', |
| find_program('test-lspci.sh'), |
| suite: 'functional', |
| args: [lspci], |
| ) |
| |
| csenv = [] |
| if opt_sanitizers != 'none' |
| csenv += ['WITH_ASAN=1'] |
| endif |
| |
| test( |
| 'test-client-server', |
| find_program('test-client-server.sh'), |
| env: csenv, |
| suite: 'functional', |
| args: [client, server], |
| timeout: 90, |
| ) |
| |
| if opt_sanitizers == 'none' |
| test( |
| 'test-linkage.sh', |
| find_program('test-linkage.sh'), |
| suite: 'functional', |
| args: [ |
| meson.source_root(), |
| meson.build_root(), |
| ' '.join(cc.cmd_array()), |
| ] |
| ) |
| endif |
| |
| subdir('py') |