[mutter/gnome-40] tests/wayland-test-driver: Add generic "sync point" request
- From: Jonas Ådahl <jadahl src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [mutter/gnome-40] tests/wayland-test-driver: Add generic "sync point" request
- Date: Sat, 31 Jul 2021 17:20:42 +0000 (UTC)
commit 5b6dd2aec2fa62b50aabb19348a09c57ba9cde78
Author: Jonas Ådahl <jadahl gmail com>
Date: Fri Jun 18 23:15:05 2021 +0100
tests/wayland-test-driver: Add generic "sync point" request
This can be used by test cases to make sure the compositor tries
something after a known client state.
Fixes: https://gitlab.gnome.org/GNOME/mutter/-/issues/1716
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1795>
(cherry picked from commit 8c5b7ddc48700569196cdf2df01404dc54c818cd)
src/tests/meta-wayland-test-driver.c | 32 ++++++++++++++++++++++++++
src/tests/wayland-test-clients/test-driver.xml | 4 ++++
2 files changed, 36 insertions(+)
---
diff --git a/src/tests/meta-wayland-test-driver.c b/src/tests/meta-wayland-test-driver.c
index 9913e779fa..0eecf8d450 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 dd5f521455..2433cf111a 100644
--- a/src/tests/wayland-test-clients/test-driver.xml
+++ b/src/tests/wayland-test-clients/test-driver.xml
@@ -5,5 +5,9 @@
<arg name="callback" type="new_id" interface="wl_callback"/>
<arg name="surface" type="object" interface="wl_surface"/>
</request>
+
+ <request name="sync_point">
+ <arg name="sequence" type="uint"/>
+ </request>
</interface>
</protocol>
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]