[mutter] main: Add test initialization function



commit dc9c5417bc20fe98686204e01fab60537765d1f4
Author: Florian Müllner <fmuellner gnome org>
Date:   Sun Aug 25 17:20:51 2019 +0300

    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

 src/core/main.c                | 20 ++++++++++++++++++++
 src/meta/main.h                |  4 ++++
 src/tests/clutter-test-utils.h | 10 +---------
 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 (); \
 }
 


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]