[glib: 11/16] tests: Run GObject performance tests under meson test
- From: Marco Trevisan <marcotrevi src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [glib: 11/16] tests: Run GObject performance tests under meson test
- Date: Wed, 22 Jun 2022 18:49:08 +0000 (UTC)
commit 6f435e40cd72d919ebe9effaaf34cc399e5c3529
Author: Philip Withnall <pwithnall endlessos org>
Date: Tue Jun 14 15:28:15 2022 +0100
tests: Run GObject performance tests under meson test
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 <pwithnall endlessos org>
gobject/tests/performance/meson.build | 63 +++++++++++++++++++++++++++--------
1 file changed, 50 insertions(+), 13 deletions(-)
---
diff --git a/gobject/tests/performance/meson.build b/gobject/tests/performance/meson.build
index 064e8cb3d2..8ff47cc0b5 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]
-
-# 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)
-
-executable('performance-threaded', 'performance-threaded.c',
- c_args : common_c_args,
- dependencies : common_deps,
- install : false)
\ No newline at end of file
+gobject_tests = {
+ 'performance' : { 'args' : [ '--seconds', '0' ] },
+ 'performance-threaded' : { 'args' : [ '--seconds', '0' ] },
+}
+
+# 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')
+
+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
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]