[glib: 11/16] tests: Run GObject performance tests under meson test




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]