summaryrefslogtreecommitdiff
path: root/src/tests/wayland-test-clients/wayland-test-client-utils.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/tests/wayland-test-clients/wayland-test-client-utils.c')
-rw-r--r--src/tests/wayland-test-clients/wayland-test-client-utils.c24
1 files changed, 24 insertions, 0 deletions
diff --git a/src/tests/wayland-test-clients/wayland-test-client-utils.c b/src/tests/wayland-test-clients/wayland-test-client-utils.c
index d00a2fb5b..6021ad5be 100644
--- a/src/tests/wayland-test-clients/wayland-test-client-utils.c
+++ b/src/tests/wayland-test-clients/wayland-test-client-utils.c
@@ -446,3 +446,27 @@ wait_for_view_verified (WaylandDisplay *display,
g_error ("%s: Failed to dispatch Wayland display", __func__);
}
}
+
+static void
+on_sync_event (WaylandDisplay *display,
+ uint32_t serial,
+ uint32_t *expected_serial)
+{
+ g_assert_cmpuint (serial, ==, *expected_serial);
+ *expected_serial = serial + 1;
+}
+
+void
+wait_for_sync_event (WaylandDisplay *display,
+ uint32_t serial)
+{
+ uint32_t expected_serial = serial;
+
+ g_signal_connect (display, "sync-event", G_CALLBACK (on_sync_event),
+ &expected_serial);
+ while (expected_serial != serial + 1)
+ {
+ if (wl_display_dispatch (display->display) == -1)
+ g_error ("%s: Failed to dispatch Wayland display", __func__);
+ }
+}