|
|
|
project('wayland-test-client', 'c')
|
|
|
|
|
|
|
|
wl_protocols_dep = dependency('wayland-protocols', required : false)
|
|
|
|
if not wl_protocols_dep.found()
|
|
|
|
error('MESON_SKIP_TEST: wayland-protocols not installed')
|
|
|
|
endif
|
|
|
|
|
|
|
|
wl_client_dep = dependency('wayland-client')
|
|
|
|
wl_server_dep = dependency('wayland-server')
|
|
|
|
wl_mod = import('unstable-wayland')
|
|
|
|
fs = import('fs')
|
|
|
|
|
|
|
|
# Client side only
|
|
|
|
xdg_shell_xml = wl_mod.find_protocol('xdg-shell')
|
|
|
|
xdg_shell = wl_mod.scan_xml(xdg_shell_xml)
|
|
|
|
assert(xdg_shell.length() == 2)
|
|
|
|
assert(fs.name(xdg_shell[0].full_path()) == 'xdg-shell-protocol.c')
|
|
|
|
assert(fs.name(xdg_shell[1].full_path()) == 'xdg-shell-client-protocol.h')
|
|
|
|
exe = executable('client', 'client.c', xdg_shell, dependencies : wl_client_dep)
|
|
|
|
test('client', exe)
|
|
|
|
|
|
|
|
# Server side only
|
|
|
|
presentation_time_xml = wl_mod.find_protocol('presentation-time')
|
|
|
|
presentation_time = wl_mod.scan_xml(presentation_time_xml, client : false, server : true)
|
|
|
|
assert(presentation_time.length() == 2)
|
|
|
|
assert(fs.name(presentation_time[0].full_path()) == 'presentation-time-protocol.c')
|
|
|
|
assert(fs.name(presentation_time[1].full_path()) == 'presentation-time-server-protocol.h')
|
|
|
|
exe = executable('server', 'server.c', presentation_time, dependencies : wl_server_dep)
|
|
|
|
test('server', exe)
|
|
|
|
|
|
|
|
# Both sides
|
|
|
|
viewporter_xml = wl_mod.find_protocol('viewporter')
|
|
|
|
viewporter = wl_mod.scan_xml(viewporter_xml, client : true, server : true)
|
|
|
|
assert(viewporter.length() == 3)
|
|
|
|
assert(fs.name(viewporter[0].full_path()) == 'viewporter-protocol.c')
|
|
|
|
assert(fs.name(viewporter[1].full_path()) == 'viewporter-client-protocol.h')
|
|
|
|
assert(fs.name(viewporter[2].full_path()) == 'viewporter-server-protocol.h')
|
|
|
|
exe = executable('both', 'both.c', viewporter, dependencies : [wl_client_dep, wl_server_dep])
|
|
|
|
test('both', exe)
|
|
|
|
|
|
|
|
# Local xml
|
|
|
|
xmls = files('test.xml')
|
|
|
|
gen = wl_mod.scan_xml(xmls)
|
|
|
|
assert(gen.length() == 2)
|
|
|
|
assert(fs.name(gen[0].full_path()) == 'test-protocol.c')
|
|
|
|
assert(fs.name(gen[1].full_path()) == 'test-client-protocol.h')
|
|
|
|
exe = executable('local', 'local.c', gen, dependencies : wl_client_dep)
|
|
|
|
test('local', exe)
|