diff --git a/src/tests/meta-wayland-test-driver.c b/src/tests/meta-wayland-test-driver.c
index 9913e779f..0eecf8d45 100644
--- a/src/tests/meta-wayland-test-driver.c
+++ b/src/tests/meta-wayland-test-driver.c
@@ -26,6 +26,15 @@
#include "test-driver-server-protocol.h"
+enum
+{
+ SYNC_POINT,
+
+ N_SIGNALS
+};
+
+static int signals[N_SIGNALS];
+
struct _MetaWaylandTestDriver
{
GObject parent;
@@ -69,8 +78,21 @@ sync_actor_destroy (struct wl_client *client,
callback);
}
+static void
+sync_point (struct wl_client *client,
+ struct wl_resource *resource,
+ uint32_t sequence)
+{
+ MetaWaylandTestDriver *test_driver = wl_resource_get_user_data (resource);
+
+ g_signal_emit (test_driver, signals[SYNC_POINT], 0,
+ sequence,
+ client);
+}
+
static const struct test_driver_interface meta_test_driver_interface = {
sync_actor_destroy,
+ sync_point,
};
static void
@@ -104,6 +126,16 @@ meta_wayland_test_driver_class_init (MetaWaylandTestDriverClass *klass)
GObjectClass *object_class = G_OBJECT_CLASS (klass);
object_class->finalize = meta_wayland_test_driver_finalize;
+
+ signals[SYNC_POINT] =
+ g_signal_new ("sync-point",
+ G_TYPE_FROM_CLASS (klass),
+ G_SIGNAL_RUN_LAST,
+ 0,
+ NULL, NULL, NULL,
+ G_TYPE_NONE, 2,
+ G_TYPE_UINT,
+ G_TYPE_POINTER);
}
static void
diff --git a/src/tests/wayland-test-clients/test-driver.xml b/src/tests/wayland-test-clients/test-driver.xml
index dd5f52145..2433cf111 100644
--- a/src/tests/wayland-test-clients/test-driver.xml
+++ b/src/tests/wayland-test-clients/test-driver.xml
@@ -5,5 +5,9 @@
+
+
+
+