summaryrefslogtreecommitdiffstats
path: root/test cases/wayland
diff options
context:
space:
mode:
Diffstat (limited to 'test cases/wayland')
-rw-r--r--test cases/wayland/1 client/both.c11
-rw-r--r--test cases/wayland/1 client/client.c9
-rw-r--r--test cases/wayland/1 client/local.c9
-rw-r--r--test cases/wayland/1 client/meson.build48
-rw-r--r--test cases/wayland/1 client/server.c9
-rw-r--r--test cases/wayland/1 client/test.xml6
-rw-r--r--test cases/wayland/2 core only/core.c9
-rw-r--r--test cases/wayland/2 core only/meson.build14
8 files changed, 115 insertions, 0 deletions
diff --git a/test cases/wayland/1 client/both.c b/test cases/wayland/1 client/both.c
new file mode 100644
index 0000000..b6e1bab
--- /dev/null
+++ b/test cases/wayland/1 client/both.c
@@ -0,0 +1,11 @@
+#include "viewporter-client-protocol.h"
+#include "viewporter-server-protocol.h"
+
+int main() {
+#if defined(VIEWPORTER_CLIENT_PROTOCOL_H) && \
+ defined(VIEWPORTER_SERVER_PROTOCOL_H)
+ return 0;
+#else
+ return 1;
+#endif
+}
diff --git a/test cases/wayland/1 client/client.c b/test cases/wayland/1 client/client.c
new file mode 100644
index 0000000..4966721
--- /dev/null
+++ b/test cases/wayland/1 client/client.c
@@ -0,0 +1,9 @@
+#include "xdg-shell-client-protocol.h"
+
+int main() {
+#ifdef XDG_SHELL_CLIENT_PROTOCOL_H
+ return 0;
+#else
+ return 1;
+#endif
+}
diff --git a/test cases/wayland/1 client/local.c b/test cases/wayland/1 client/local.c
new file mode 100644
index 0000000..97bfa56
--- /dev/null
+++ b/test cases/wayland/1 client/local.c
@@ -0,0 +1,9 @@
+#include "test-client-protocol.h"
+
+int main() {
+#ifdef TEST_CLIENT_PROTOCOL_H
+ return 0;
+#else
+ return 1;
+#endif
+}
diff --git a/test cases/wayland/1 client/meson.build b/test cases/wayland/1 client/meson.build
new file mode 100644
index 0000000..cb13db2
--- /dev/null
+++ b/test cases/wayland/1 client/meson.build
@@ -0,0 +1,48 @@
+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)
diff --git a/test cases/wayland/1 client/server.c b/test cases/wayland/1 client/server.c
new file mode 100644
index 0000000..e073a7b
--- /dev/null
+++ b/test cases/wayland/1 client/server.c
@@ -0,0 +1,9 @@
+#include "presentation-time-server-protocol.h"
+
+int main() {
+#ifdef PRESENTATION_TIME_SERVER_PROTOCOL_H
+ return 0;
+#else
+ return 1;
+#endif
+}
diff --git a/test cases/wayland/1 client/test.xml b/test cases/wayland/1 client/test.xml
new file mode 100644
index 0000000..f3c6db1
--- /dev/null
+++ b/test cases/wayland/1 client/test.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<protocol name="test">
+ <interface name="ext_test" version="1">
+ <request name="destroy" type="destructor"/>
+ </interface>
+</protocol>
diff --git a/test cases/wayland/2 core only/core.c b/test cases/wayland/2 core only/core.c
new file mode 100644
index 0000000..5bb55e5
--- /dev/null
+++ b/test cases/wayland/2 core only/core.c
@@ -0,0 +1,9 @@
+#include <xdg-shell-client-protocol.h>
+
+int main() {
+#if defined(XDG_SHELL_CLIENT_PROTOCOL_H) && !defined(WAYLAND_CLIENT_H) && !defined(WAYLAND_CLIENT_PROTOCOL_H)
+ return 0;
+#else
+ return 1;
+#endif
+}
diff --git a/test cases/wayland/2 core only/meson.build b/test cases/wayland/2 core only/meson.build
new file mode 100644
index 0000000..a35e981
--- /dev/null
+++ b/test cases/wayland/2 core only/meson.build
@@ -0,0 +1,14 @@
+project('wayland-test-core-only', '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_mod = import('unstable-wayland')
+wl_client_dep = dependency('wayland-client')
+
+xdg_shell_xml = wl_mod.find_protocol('xdg-shell')
+xdg_shell = wl_mod.scan_xml(xdg_shell_xml, include_core_only : true)
+exe = executable('core', 'core.c', xdg_shell, dependencies : wl_client_dep)
+test('core', exe)