wayland/tests/meson.build
Jan Beich 0fc00fff30 meson/tests: add missing dependencies on protocol headers
In file included from ../tests/connection-test.c:43:
In file included from ../tests/test-compositor.h:30:
../src/wayland-client.h:40:10: fatal error: 'wayland-client-protocol.h' file not found
 #include "wayland-client-protocol.h"
          ^~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../tests/display-test.c:45:
In file included from ../src/wayland-server.h:104:
src/wayland-server-protocol.h:4454:2: error: unterminated /* comment
        /**
        ^
In file included from ../tests/cpp-compile-test.cpp:2:
In file included from src/wayland-server-protocol.h:8:
In file included from ../src/wayland-server.h:104:
src/wayland-server-protocol.h:3:2: error: unterminated conditional directive
 #ifndef WAYLAND_SERVER_PROTOCOL_H
  ^
../tests/headers-protocol-test.c:33:2: error: including wayland-server-protocol.h did not include wayland-server.h!
 #error including wayland-server-protocol.h did not include wayland-server.h!
  ^
In file included from ../tests/headers-protocol-test.c:26:
In file included from src/wayland-client-protocol.h:8:
In file included from ../src/wayland-client.h:40:
src/wayland-client-protocol.h:1358:2: error: unterminated conditional directive
 #ifndef WL_SHM_FORMAT_ENUM
  ^
In file included from ../tests/protocol-logger-test.c:34:
In file included from ../src/wayland-client.h:40:
src/wayland-client-protocol.h:2613:1: error: unterminated /* comment
/**
^
../tests/resources-test.c:49:36: error: use of undeclared identifier 'wl_seat_interface'
        res = wl_resource_create(client, &wl_seat_interface, 4, 0);
                                          ^
2020-02-15 02:55:00 +00:00

163 lines
3.7 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)
]
)
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_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': [
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