summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDDoSolitary <ddosolitary@gmail.com>2019-07-15 11:01:04 +0000
committerPhilip Withnall <philip@tecnocode.co.uk>2019-07-15 11:01:04 +0000
commit2718245dc28b11c71cb74be2aeb5c90f2f4a4f7b (patch)
tree97ebd7e0eb756e195d904c5423d894bde33a3bc4
parent618d3e4a0af81b95cbbac1dfea95aea0293acb25 (diff)
downloadglib-2718245dc28b11c71cb74be2aeb5c90f2f4a4f7b.tar.gz
Fix test failures for static builds
The plugin modules in these tests get statically linked with a separate copy of GLib so they end up calling vfuncs in their own copy of GLib. Fixes #1648
-rw-r--r--gio/tests/giomodule.c14
-rw-r--r--gio/tests/resources.c8
-rw-r--r--meson.build2
3 files changed, 23 insertions, 1 deletions
diff --git a/gio/tests/giomodule.c b/gio/tests/giomodule.c
index 61746d3d1..b4923eeef 100644
--- a/gio/tests/giomodule.c
+++ b/gio/tests/giomodule.c
@@ -21,6 +21,7 @@
*/
#include <gio/gio.h>
+#include <glibconfig.h>
#ifdef _MSC_VER
# define MODULE_FILENAME_PREFIX ""
@@ -82,6 +83,13 @@ test_extension_point (void)
static void
test_module_scan_all (void)
{
+#ifdef GLIB_STATIC_COMPILATION
+ /* The plugin module is statically linked with a separate copy
+ * of GLib so g_io_extension_point_implement won't work. */
+ g_test_skip ("GIOExtensionPoint with dynamic modules isn't supported in static builds.");
+ return;
+#endif
+
if (g_test_subprocess ())
{
GIOExtensionPoint *ep;
@@ -104,6 +112,12 @@ test_module_scan_all (void)
static void
test_module_scan_all_with_scope (void)
{
+#ifdef GLIB_STATIC_COMPILATION
+ /* Disabled for the same reason as test_module_scan_all. */
+ g_test_skip ("GIOExtensionPoint with dynamic modules isn't supported in static builds.");
+ return;
+#endif
+
if (g_test_subprocess ())
{
GIOExtensionPoint *ep;
diff --git a/gio/tests/resources.c b/gio/tests/resources.c
index 5cacda16a..c44d21485 100644
--- a/gio/tests/resources.c
+++ b/gio/tests/resources.c
@@ -18,6 +18,7 @@
#include <string.h>
#include <gio/gio.h>
+#include <glibconfig.h>
#include "gconstructor.h"
#include "test_resources2.h"
#include "digit_test_resources.h"
@@ -644,6 +645,13 @@ test_resource_module (void)
GBytes *data;
GError *error;
+#ifdef GLIB_STATIC_COMPILATION
+ /* The resource module is statically linked with a separate copy
+ * of a GLib so g_static_resource_init won't work as expected. */
+ g_test_skip ("Resource modules aren't supported in static builds.");
+ return;
+#endif
+
if (g_module_supported ())
{
module = g_io_module_new (g_test_get_filename (G_TEST_BUILT,
diff --git a/meson.build b/meson.build
index 232cd6c87..416c927cc 100644
--- a/meson.build
+++ b/meson.build
@@ -183,7 +183,7 @@ if get_option('default_library') != 'static'
endif
endif
-if host_system == 'windows' and get_option('default_library') == 'static'
+if get_option('default_library') == 'static'
glibconfig_conf.set('GLIB_STATIC_COMPILATION', '1')
glibconfig_conf.set('GOBJECT_STATIC_COMPILATION', '1')
endif