[glib: 1/3] Meson: install gobject tests



commit 44228dbc3c804863a1c23da9ccc26462a5da26b6
Author: Xavier Claessens <xavier claessens collabora com>
Date:   Wed Aug 15 09:45:06 2018 -0400

    Meson: install gobject tests

 gobject/tests/meson.build | 115 ++++++++++++++++++++++++++--------------------
 1 file changed, 65 insertions(+), 50 deletions(-)
---
diff --git a/gobject/tests/meson.build b/gobject/tests/meson.build
index 88515006c..cc83c5f46 100644
--- a/gobject/tests/meson.build
+++ b/gobject/tests/meson.build
@@ -1,47 +1,3 @@
-gobject_tests = [
-  'qdata',
-  'boxed',
-  'enums',
-  'param',
-  'threadtests',
-  'dynamictests',
-  'binding',
-  'properties',
-  'reference',
-  'value',
-  'type',
-  'private',
-  'closure',
-  'object',
-  'signal-handler',
-  'ifaceproperties',
-]
-
-# FIXME: put common bits of test environment() in one location
-# Not entirely random of course, but at least it changes over time
-random_number = minor_version + meson.version().split('.').get(1).to_int()
-
-test_env = environment()
-test_env.set('G_TEST_SRCDIR', meson.current_source_dir())
-test_env.set('G_TEST_BUILDDIR', meson.current_build_dir())
-test_env.set('G_DEBUG', 'gc-friendly')
-test_env.set('MALLOC_CHECK_', '2')
-test_env.set('MALLOC_PERTURB_', '@0@'.format(random_number % 256))
-
-foreach test_name : gobject_tests
-  deps = [libm, thread_dep, libglib_dep, libgobject_dep]
-  test_src = '@0@.c'.format(test_name)
-  # private is an existing or reserved target it seems
-  if test_name == 'private'
-    test_name = 'gobject-private'
-  endif
-  exe = executable(test_name, test_src,
-      c_args : ['-DG_LOG_DOMAIN="GLib-GObject"'],
-      dependencies : deps,
-  )
-  test(test_name, exe, env : test_env, suite : ['gobject'])
-endforeach
-
 marshalers_h = custom_target('marshalers_h',
   output : 'marshalers.h',
   input : 'marshalers.list',
@@ -70,12 +26,71 @@ marshalers_c = custom_target('marshalers_c',
   ],
 )
 
-exe = executable('signals',
-    'signals.c', marshalers_h, marshalers_c,
-    c_args : ['-DG_LOG_DOMAIN="GLib-GObject"'],
-    dependencies : deps,
-)
-test('signals', exe, env : test_env, suite : ['gobject'])
+gobject_tests = {
+  'qdata' : {},
+  'boxed' : {},
+  'enums' : {},
+  'param' : {},
+  'threadtests' : {},
+  'dynamictests' : {},
+  'binding' : {},
+  'properties' : {},
+  'reference' : {},
+  'value' : {},
+  'type' : {},
+  'gobject-private' : {
+    'source' : 'private.c',
+  },
+  'closure' : {},
+  'object' : {},
+  'signal-handler' : {},
+  'ifaceproperties' : {},
+  'signals' : {
+    'source' : ['signals.c', marshalers_h, marshalers_c],
+  },
+}
+
+# FIXME: put common bits of test environment() in one location
+# Not entirely random of course, but at least it changes over time
+random_number = minor_version + meson.version().split('.').get(1).to_int()
+
+test_env = environment()
+test_env.set('G_TEST_SRCDIR', meson.current_source_dir())
+test_env.set('G_TEST_BUILDDIR', meson.current_build_dir())
+test_env.set('G_DEBUG', 'gc-friendly')
+test_env.set('MALLOC_CHECK_', '2')
+test_env.set('MALLOC_PERTURB_', '@0@'.format(random_number % 256))
+
+test_deps = [libm, thread_dep, libglib_dep, libgobject_dep]
+test_cargs = ['-DG_LOG_DOMAIN="GLib-GObject"']
+
+foreach test_name, extra_args : gobject_tests
+  source = extra_args.get('source', test_name + '.c')
+  install = installed_tests_enabled and extra_args.get('install', true)
+
+  if install
+    test_conf = configuration_data()
+    test_conf.set('installed_tests_dir', installed_tests_execdir)
+    test_conf.set('program', test_name)
+    configure_file(
+      input: installed_tests_template,
+      output: test_name + '.test',
+      install_dir: installed_tests_metadir,
+      configuration: test_conf
+    )
+  endif
+
+  exe = executable(test_name, source,
+    c_args : test_cargs + extra_args.get('c_args', []),
+    dependencies : test_deps + extra_args.get('dependencies', []),
+    install_dir: installed_tests_execdir,
+    install: install,
+  )
+
+  suite = ['gobject'] + extra_args.get('suite', [])
+  timeout = suite.contains('slow') ? 120 : 30
+  test(test_name, exe, env : test_env, timeout : timeout, suite : suite)
+endforeach
 
 test(
   'mkenums.py',


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