From 6f435e40cd72d919ebe9effaaf34cc399e5c3529 Mon Sep 17 00:00:00 2001 From: Philip Withnall Date: Tue, 14 Jun 2022 15:28:15 +0100 Subject: [PATCH] tests: Run GObject performance tests under meson test MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Pass arguments to them so that they take minimal time. This will not produce useful performance profiling results, but will smoketest that the tests still run, don’t crash, and therefore probably aren’t bitrotting too badly. This is useful because a fair amount of work has gone into these performance tests, and they’re useful every few years to analyse and compare GObject performance. We don’t want them to bitrot between uses. Signed-off-by: Philip Withnall --- gobject/tests/performance/meson.build | 59 ++++++++++++++++++++++----- 1 file changed, 48 insertions(+), 11 deletions(-) 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