From 44228dbc3c804863a1c23da9ccc26462a5da26b6 Mon Sep 17 00:00:00 2001 From: Xavier Claessens Date: Wed, 15 Aug 2018 09:45:06 -0400 Subject: [PATCH] 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',