glib/gobject/tests/meson.build
Philip Withnall e8d755eb8e tests: Add initial test framework for glib-mkenums
This allows running glib-mkenums with different C headers and checking
its output.

Signed-off-by: Philip Withnall <withnall@endlessm.com>

https://gitlab.gnome.org/GNOME/glib/issues/1360
2018-06-25 13:39:13 +01:00

91 lines
2.0 KiB
Meson

py3_mod = import('python3')
py3 = py3_mod.find_python()
gobject_tests = [
'qdata',
'boxed',
'enums',
'param',
'threadtests',
'dynamictests',
'binding',
'properties',
'reference',
'value',
'type',
'private',
'closure',
'object',
'signal-handler',
'ifaceproperties',
]
# FIXME: use new environment() object
# 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 = [
'G_TEST_SRCDIR=' + meson.current_source_dir(),
'G_TEST_BUILDDIR=' + meson.current_build_dir(),
'G_DEBUG=gc-friendly',
'MALLOC_CHECK_=2',
'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',
command : [
python, glib_genmarshal,
'--prefix=test',
'--valist-marshallers',
'--output=@OUTPUT@',
'--quiet',
'--header',
'@INPUT@',
],
)
marshalers_c = custom_target('marshalers_c',
output : 'marshalers.c',
input : 'marshalers.list',
command : [
python, glib_genmarshal,
'--prefix=test',
'--valist-marshallers',
'--include-header=marshalers.h',
'--output=@OUTPUT@',
'--quiet',
'--body',
'@INPUT@',
],
)
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'])
test(
'mkenums.py',
py3,
args: files('mkenums.py'),
env: test_env,
suite: ['gobject'],
)