| test_runner = static_library( |
| 'test-runner', |
| sources: [ |
| 'test-runner.c', |
| 'test-helpers.c', |
| 'test-compositor.c' |
| ], |
| include_directories: [ root_inc, src_inc ], |
| dependencies: [ |
| cc.find_library('dl', required: false), |
| dependency('threads'), |
| ffi_dep, |
| wayland_util_dep, |
| wayland_private_dep, |
| wayland_client_dep, |
| wayland_server_dep |
| ] |
| ) |
| |
| test_runner_dep = declare_dependency( |
| link_with: test_runner, |
| include_directories: [ src_inc ], |
| dependencies: [ |
| dependency('threads'), |
| cc.find_library('dl', required: false) |
| ] |
| ) |
| |
| tests_protocol_xml = files('../protocol/tests.xml') |
| |
| tests_server_protocol_h = custom_target( |
| 'test server protocol header', |
| command: [ wayland_scanner_for_build, '-s', 'server-header', '@INPUT@', '@OUTPUT@' ], |
| input: tests_protocol_xml, |
| output: 'tests-server-protocol.h' |
| ) |
| |
| tests_client_protocol_c = custom_target( |
| 'test client protocol header', |
| command: [ wayland_scanner_for_build, '-s', 'client-header', '@INPUT@', '@OUTPUT@' ], |
| input: tests_protocol_xml, |
| output: 'tests-client-protocol.h' |
| ) |
| |
| tests_protocol_c = custom_target( |
| 'test protocol source', |
| command: [ wayland_scanner_for_build, '-s', 'public-code', '@INPUT@', '@OUTPUT@' ], |
| input: tests_protocol_xml, |
| output: 'tests-protocol.c' |
| ) |
| |
| benchmark( |
| 'fixed-benchmark', |
| executable( |
| 'fixed-benchmark', |
| 'fixed-benchmark.c', |
| dependencies: test_runner_dep |
| ) |
| ) |
| |
| executable( |
| 'exec-fd-leak-checker', |
| 'exec-fd-leak-checker.c', |
| dependencies: test_runner_dep |
| ) |
| |
| test( |
| 'cpp-compile-test', |
| executable( |
| 'cpp-compile-test', |
| 'cpp-compile-test.cpp', |
| wayland_server_protocol_core_h, |
| include_directories: src_inc |
| ) |
| ) |
| |
| sed_path = find_program('sed').path() |
| |
| test( |
| 'scanner-test', |
| find_program('scanner-test.sh'), |
| env: [ |
| 'TEST_DATA_DIR=@0@/data'.format(meson.current_source_dir()), |
| 'TEST_OUTPUT_DIR=@0@/output'.format(meson.current_build_dir()), |
| 'SED=@0@'.format(sed_path), |
| 'WAYLAND_SCANNER=@0@'.format(wayland_scanner.full_path()), |
| ], |
| ) |
| |
| tests = { |
| 'array-test': [], |
| 'client-test': [ wayland_server_protocol_h ], |
| 'display-test': [ |
| tests_server_protocol_h, |
| tests_client_protocol_c, |
| tests_protocol_c, |
| ], |
| 'connection-test': [ wayland_server_protocol_h ], |
| 'event-loop-test': [ wayland_server_protocol_h ], |
| 'fixed-test': [], |
| 'interface-test': [ wayland_client_protocol_h ], |
| 'list-test': [], |
| 'map-test': [], |
| 'sanity-test' : [ wayland_server_protocol_h ], |
| 'socket-test': [ |
| wayland_client_protocol_h, |
| wayland_server_protocol_h, |
| ], |
| 'queue-test': [ |
| wayland_client_protocol_h, |
| wayland_server_protocol_h, |
| ], |
| 'signal-test': [ wayland_server_protocol_h ], |
| 'newsignal-test': [ |
| # wayland-server.c is needed here to access wl_priv_* functions |
| files('../src/wayland-server.c'), |
| wayland_server_protocol_h, |
| ], |
| 'resources-test': [ wayland_server_protocol_core_h ], |
| 'message-test': [ |
| wayland_client_protocol_h, |
| wayland_server_protocol_h, |
| ], |
| 'compositor-introspection-test': [ |
| wayland_client_protocol_h, |
| wayland_server_protocol_h, |
| ], |
| 'protocol-logger-test': [ |
| wayland_server_protocol_core_h, |
| wayland_client_protocol_core_h, |
| ], |
| 'headers-test': [ |
| 'headers-protocol-test.c', |
| 'headers-protocol-core-test.c', |
| wayland_server_protocol_core_h, |
| wayland_client_protocol_core_h, |
| ], |
| 'os-wrappers-test': [], |
| } |
| |
| foreach test_name, test_extra_sources: tests |
| test_sources = [ test_name + '.c' ] + test_extra_sources |
| test_deps = [test_runner_dep] |
| bin = executable(test_name, test_sources, dependencies: test_deps) |
| test( |
| test_name, |
| bin, |
| env: [ |
| 'TEST_SRC_DIR=@0@'.format(meson.current_source_dir()), |
| 'TEST_BUILD_DIR=@0@'.format(meson.current_build_dir()), |
| ], |
| ) |
| endforeach |