summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Schoonjans <Tom.Schoonjans@diamond.ac.uk>2019-09-06 19:03:31 +0100
committerTom Schoonjans <Tom.Schoonjans@diamond.ac.uk>2019-09-06 19:03:31 +0100
commit036f6ca7e3ef810498f2fd2ce9c9c1c2a3278f3c (patch)
treebac2417e958915b9a12ce58628d678b3e4c5078d
parente2409e5e180f1fa369d0e87e38e4d646d9f68791 (diff)
downloadglib-036f6ca7e3ef810498f2fd2ce9c9c1c2a3278f3c.tar.gz
gmodule: write test for shared libraries
-rw-r--r--tests/meson.build28
-rw-r--r--tests/module-test.c4
2 files changed, 27 insertions, 5 deletions
diff --git a/tests/meson.build b/tests/meson.build
index ce3044258..e4ea22692 100644
--- a/tests/meson.build
+++ b/tests/meson.build
@@ -44,9 +44,17 @@ tests = {
'type-test' : {},
'unicode-caseconv' : {},
'unicode-encoding' : {},
- 'module-test' : {
+ 'module-test-library' : {
'dependencies' : [libgmodule_dep],
'export_dynamic' : true,
+ 'source': 'module-test.c',
+ 'c_args': ['-DMODULE_TYPE="library"'],
+ },
+ 'module-test-plugin' : {
+ 'dependencies' : [libgmodule_dep],
+ 'export_dynamic' : true,
+ 'source': 'module-test.c',
+ 'c_args': ['-DMODULE_TYPE="plugin"'],
},
'cxx-test' : {
'source' : 'cxx-test.cpp',
@@ -87,11 +95,25 @@ if installed_tests_enabled
)
endif
+module_suffix = []
+# Keep the autotools convention for shared module suffix because GModule
+# depends on it: https://gitlab.gnome.org/GNOME/glib/issues/520
+if ['darwin', 'ios'].contains(host_machine.system())
+ module_suffix = 'so'
+endif
+
foreach module : ['moduletestplugin_a', 'moduletestplugin_b']
- shared_module(module, 'lib@0@.c'.format(module),
+ shared_module(module + '_plugin', 'lib@0@.c'.format(module),
+ dependencies : [libglib_dep, libgmodule_dep],
+ install_dir : installed_tests_execdir,
+ install : installed_tests_enabled,
+ name_suffix : module_suffix
+ )
+ shared_library(module + '_library', 'lib@0@.c'.format(module),
dependencies : [libglib_dep, libgmodule_dep],
install_dir : installed_tests_execdir,
- install : installed_tests_enabled
+ install : installed_tests_enabled,
+ name_suffix : module_suffix
)
endforeach
diff --git a/tests/module-test.c b/tests/module-test.c
index 8047b74ec..e0e6423f6 100644
--- a/tests/module-test.c
+++ b/tests/module-test.c
@@ -90,8 +90,8 @@ main (int argc,
if (!g_module_supported ())
g_error ("dynamic modules not supported");
- plugin_a = g_test_build_filename (G_TEST_BUILT, MODULE_FILENAME_PREFIX "moduletestplugin_a", NULL);
- plugin_b = g_test_build_filename (G_TEST_BUILT, MODULE_FILENAME_PREFIX "moduletestplugin_b", NULL);
+ plugin_a = g_test_build_filename (G_TEST_BUILT, MODULE_FILENAME_PREFIX "moduletestplugin_a_" MODULE_TYPE, NULL);
+ plugin_b = g_test_build_filename (G_TEST_BUILT, MODULE_FILENAME_PREFIX "moduletestplugin_b_" MODULE_TYPE, NULL);
/* module handles */