diff --git a/gobject/tests/performance/meson.build b/gobject/tests/performance/meson.build index 064e8cb3d..8ff47cc0b 100644 --- a/gobject/tests/performance/meson.build +++ b/gobject/tests/performance/meson.build @@ -1,13 +1,50 @@ -common_c_args = test_cargs + ['-DGLIB_DISABLE_DEPRECATION_WARNINGS'] -common_deps = [libm, thread_dep, libglib_dep, libgobject_dep] +gobject_tests = { + 'performance' : { 'args' : [ '--seconds', '0' ] }, + 'performance-threaded' : { 'args' : [ '--seconds', '0' ] }, +} -# Don't install these ones, and keep them out of 'meson test' because they take too long... -executable('performance', 'performance.c', - c_args : common_c_args, - dependencies : common_deps, - install : false) +# FIXME: put common bits of test environment() in one location +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') -executable('performance-threaded', 'performance-threaded.c', - c_args : common_c_args, - dependencies : common_deps, - install : false) \ No newline at end of file +test_deps = [libm, thread_dep, libglib_dep, libgobject_dep] +test_cargs = ['-DG_LOG_DOMAIN="GLib-GObject"', '-UG_DISABLE_ASSERT'] + +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) + test_conf.set('env', '') + configure_file( + input: installed_tests_template_tap, + 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', 'performance'] + extra_args.get('suite', []) + timeout = suite.contains('slow') ? test_timeout_slow : test_timeout + args = extra_args.get('args', []) + + test(test_name, exe, + env : test_env, + timeout : timeout, + suite : suite, + args : args, + ) +endforeach