From c90f6b990b64049b9feb68c0eb34ec3acd15cee8 Mon Sep 17 00:00:00 2001 From: Edward Hervey Date: Fri, 14 Aug 2015 12:25:19 +0200 Subject: [PATCH] checks: Ensure thread-safe libX11/GL when running tests --- tests/check/elements/glimagesink.c | 10 +++++++++- tests/check/generic/states.c | 23 ++++++++++++++++++++++- 2 files changed, 31 insertions(+), 2 deletions(-) diff --git a/tests/check/elements/glimagesink.c b/tests/check/elements/glimagesink.c index 702cb0a611..07f6899d32 100644 --- a/tests/check/elements/glimagesink.c +++ b/tests/check/elements/glimagesink.c @@ -233,4 +233,12 @@ glimagesink_suite (void) return s; } -GST_CHECK_MAIN (glimagesink) +int +main (int argc, char **argv) +{ + Suite *s; + g_setenv ("GST_GL_XINITTHREADS", "1", TRUE); + gst_check_init (&argc, &argv); + s = glimagesink_suite (); + return gst_check_run_suite (s, "glimagesink", __FILE__); +} diff --git a/tests/check/generic/states.c b/tests/check/generic/states.c index e4a41cdaf1..5df302445b 100644 --- a/tests/check/generic/states.c +++ b/tests/check/generic/states.c @@ -26,6 +26,9 @@ #include +#include +#include +#include #include static GList *elements = NULL; @@ -235,4 +238,22 @@ states_suite (void) return s; } -GST_CHECK_MAIN (states); +int +main (int argc, char **argv) +{ + Suite *s; + GModule *libx11; + + libx11 = + g_module_open ("libX11.so.6", G_MODULE_BIND_LOCAL | G_MODULE_BIND_LAZY); + if (libx11) { + void (*xinitthreads) (void); + if (g_module_symbol (libx11, "XInitThreads", (gpointer *) & xinitthreads)) { + xinitthreads (); + } + g_module_close (libx11); + } + gst_check_init (&argc, &argv); + s = states_suite (); + return gst_check_run_suite (s, "states_bad", __FILE__); +}