mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2025-01-24 04:56:14 +01:00
Meson: install gobject tests
This commit is contained in:
parent
9eb483b82d
commit
44228dbc3c
@ -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',
|
||||
|
Loading…
Reference in New Issue
Block a user