mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2025-01-24 13:06:14 +01:00
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>
This commit is contained in:
parent
6747702d77
commit
6f435e40cd
@ -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)
|
||||
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
|
||||
|
Loading…
Reference in New Issue
Block a user