summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFlorian Müllner <fmuellner@gnome.org>2019-08-25 17:20:51 +0300
committerJonas Ådahl <jadahl@gmail.com>2019-08-27 16:34:01 +0000
commitdc9c5417bc20fe98686204e01fab60537765d1f4 (patch)
treefb67e6d6a4b7e4241a9edd0fac1d7ce8993d810f
parent556e7694de0144ee940f4d7144dfaca5141ed6d5 (diff)
downloadmutter-dc9c5417bc20fe98686204e01fab60537765d1f4.tar.gz
main: Add test initialization function
Since Clutter's backend relies on MetaBackend now, initialzation has to go through meta_init(), both in mutter and in gnome-shell. However the compositor enum and backend gtype used to enforce the environment used for tests are private, so instead expose a test initialization function that can be used from both mutter and gnome-shell. https://gitlab.gnome.org/GNOME/mutter/merge_requests/750
-rw-r--r--src/core/main.c20
-rw-r--r--src/meta/main.h4
-rw-r--r--src/tests/clutter-test-utils.h10
3 files changed, 25 insertions, 9 deletions
diff --git a/src/core/main.c b/src/core/main.c
index b0d50d47b..2724cf076 100644
--- a/src/core/main.c
+++ b/src/core/main.c
@@ -87,6 +87,7 @@
#ifdef HAVE_WAYLAND
#include "backends/x11/nested/meta-backend-x11-nested.h"
#include "wayland/meta-wayland.h"
+#include "wayland/meta-xwayland.h"
#endif
#ifdef HAVE_NATIVE_BACKEND
@@ -741,3 +742,22 @@ meta_get_x11_display_policy (void)
return META_DISPLAY_POLICY_MANDATORY;
}
+
+void
+meta_test_init (void)
+{
+#if defined(HAVE_WAYLAND)
+ g_autofree char *display_name = g_strdup ("mutter-test-display-XXXXXX");
+ int fd = g_mkstemp (display_name);
+
+ meta_override_compositor_configuration (META_COMPOSITOR_TYPE_WAYLAND,
+ META_TYPE_BACKEND_X11_NESTED);
+ meta_wayland_override_display_name (display_name);
+ meta_xwayland_override_display_number (512 + rand() % 512);
+ meta_init ();
+
+ close (fd);
+#else
+ g_error ("Tests require wayland support");
+#endif
+}
diff --git a/src/meta/main.h b/src/meta/main.h
index b5e3d9dd5..6115b7220 100644
--- a/src/meta/main.h
+++ b/src/meta/main.h
@@ -75,4 +75,8 @@ void meta_exit (MetaExitCode code) G_GNUC_NORETURN;
META_EXPORT
void meta_quit (MetaExitCode code);
+META_EXPORT
+void meta_test_init (void);
+
+
#endif
diff --git a/src/tests/clutter-test-utils.h b/src/tests/clutter-test-utils.h
index 1c4be6495..f666d8773 100644
--- a/src/tests/clutter-test-utils.h
+++ b/src/tests/clutter-test-utils.h
@@ -86,13 +86,7 @@ G_BEGIN_DECLS
int \
main (int argc, char *argv[]) \
{ \
- char *display_name = g_strdup ("mutter-test-display-XXXXXX");\
- int fd = g_mkstemp (display_name);\
- meta_wayland_override_display_name (display_name);\
- meta_override_compositor_configuration (META_COMPOSITOR_TYPE_WAYLAND,\
- META_TYPE_BACKEND_X11_NESTED);\
-\
- meta_init ();\
+ meta_test_init ();\
\
clutter_test_init (&argc, &argv); \
\
@@ -100,8 +94,6 @@ main (int argc, char *argv[]) \
units \
} \
\
- close (fd);\
- g_free (display_name);\
return clutter_test_run (); \
}