mirror of
https://gitlab.freedesktop.org/wayland/wayland.git
synced 2026-05-03 06:46:33 -04:00
Currently both libwayland-client and libwayland-server contain the core protocol symbols. This disappoints ASAN when both libraries are included in the same binary (such as in our test suite). Compositors also can include both client and server libraries, so this provides some pointless minor space savings in real world usage as well. Let's split the protocol bits off into their own library to avoid this duplication. Signed-off-by: Derek Foreman <derek.foreman@collabora.com>
168 lines
3.8 KiB
Meson
168 lines
3.8 KiB
Meson
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),
|
|
wayland_core_protocols_dep
|
|
]
|
|
)
|
|
|
|
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, rt_dep ]
|
|
)
|
|
)
|
|
|
|
executable(
|
|
'exec-fd-leak-checker',
|
|
'exec-fd-leak-checker.c',
|
|
dependencies: test_runner_dep
|
|
)
|
|
|
|
if add_languages('cpp')
|
|
test(
|
|
'cpp-compile-test',
|
|
executable(
|
|
'cpp-compile-test',
|
|
'cpp-compile-test.cpp',
|
|
wayland_server_protocol_h,
|
|
include_directories: src_inc
|
|
)
|
|
)
|
|
endif
|
|
|
|
sed_path = find_program('sed').path()
|
|
|
|
if get_option('scanner')
|
|
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()),
|
|
],
|
|
)
|
|
endif
|
|
|
|
tests = {
|
|
'array-test': [],
|
|
'client-test': [ wayland_server_protocol_h ],
|
|
'display-test': [
|
|
wayland_client_protocol_h,
|
|
wayland_server_protocol_h,
|
|
tests_server_protocol_h,
|
|
tests_client_protocol_c,
|
|
tests_protocol_c,
|
|
],
|
|
'connection-test': [
|
|
wayland_client_protocol_h,
|
|
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_client_protocol_h,
|
|
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_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_client_protocol_h,
|
|
wayland_server_protocol_h,
|
|
],
|
|
'headers-test': [
|
|
wayland_client_protocol_h,
|
|
wayland_server_protocol_h,
|
|
'headers-protocol-test.c',
|
|
wayland_client_protocol_core_h,
|
|
wayland_server_protocol_core_h,
|
|
'headers-protocol-core-test.c',
|
|
],
|
|
'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
|