mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2024-11-14 05:16:18 +01:00
glib/tests/meson: Compile tests extra programs using same strategy as gio
This allows also to keep track of targets and to make possible for a test to depend on a particular test program
This commit is contained in:
parent
c490e3c522
commit
495017e2db
@ -268,6 +268,23 @@ if installed_tests_enabled
|
|||||||
)
|
)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
test_extra_programs = {
|
||||||
|
'assert-msg-test' : {},
|
||||||
|
'spawn-path-search-helper' : {},
|
||||||
|
'spawn-test-helper' : {},
|
||||||
|
'testing-helper' : {},
|
||||||
|
# test-spawn-echo helper binary required by the spawn tests above
|
||||||
|
'test-spawn-echo' : {},
|
||||||
|
}
|
||||||
|
|
||||||
|
if host_machine.system() == 'windows'
|
||||||
|
# test-spawn-sleep helper binary required by the spawn tests above
|
||||||
|
test_extra_programs += {
|
||||||
|
'test-spawn-sleep' : {},
|
||||||
|
'spawn-test-win32-gui' : { 'win_subsystem': 'windows' },
|
||||||
|
}
|
||||||
|
endif
|
||||||
|
|
||||||
test_env = environment()
|
test_env = environment()
|
||||||
test_env.set('G_TEST_SRCDIR', meson.current_source_dir())
|
test_env.set('G_TEST_SRCDIR', meson.current_source_dir())
|
||||||
test_env.set('G_TEST_BUILDDIR', meson.current_build_dir())
|
test_env.set('G_TEST_BUILDDIR', meson.current_build_dir())
|
||||||
@ -276,6 +293,27 @@ test_deps = [libm, thread_dep, libglib_dep]
|
|||||||
test_cargs = ['-DG_LOG_DOMAIN="GLib"', '-UG_DISABLE_ASSERT']
|
test_cargs = ['-DG_LOG_DOMAIN="GLib"', '-UG_DISABLE_ASSERT']
|
||||||
test_cpp_args = test_cargs
|
test_cpp_args = test_cargs
|
||||||
|
|
||||||
|
test_extra_programs_targets = {}
|
||||||
|
foreach program_name, extra_args : test_extra_programs
|
||||||
|
source = extra_args.get('source', program_name + '.c')
|
||||||
|
extra_sources = extra_args.get('extra_sources', [])
|
||||||
|
install = installed_tests_enabled and extra_args.get('install', true)
|
||||||
|
test_extra_programs_targets += {
|
||||||
|
program_name : executable(program_name,
|
||||||
|
sources: [source, extra_sources],
|
||||||
|
c_args : test_cargs,
|
||||||
|
cpp_args: test_cpp_args,
|
||||||
|
dependencies : test_deps + extra_args.get('dependencies', []),
|
||||||
|
install_dir : installed_tests_execdir,
|
||||||
|
install_tag : 'tests',
|
||||||
|
install : install,
|
||||||
|
win_subsystem : extra_args.get('win_subsystem', 'console'),
|
||||||
|
)
|
||||||
|
}
|
||||||
|
endforeach
|
||||||
|
|
||||||
|
subdir('path-test-subdir')
|
||||||
|
|
||||||
foreach test_name, extra_args : glib_tests
|
foreach test_name, extra_args : glib_tests
|
||||||
source = extra_args.get('source', test_name + '.c')
|
source = extra_args.get('source', test_name + '.c')
|
||||||
install = installed_tests_enabled and extra_args.get('install', true)
|
install = installed_tests_enabled and extra_args.get('install', true)
|
||||||
@ -304,6 +342,7 @@ foreach test_name, extra_args : glib_tests
|
|||||||
install: install,
|
install: install,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
depends = [extra_args.get('depends', [])]
|
||||||
suite = ['glib'] + extra_args.get('suite', [])
|
suite = ['glib'] + extra_args.get('suite', [])
|
||||||
timeout = suite.contains('slow') ? test_timeout_slow : test_timeout
|
timeout = suite.contains('slow') ? test_timeout_slow : test_timeout
|
||||||
|
|
||||||
@ -311,7 +350,12 @@ foreach test_name, extra_args : glib_tests
|
|||||||
suite += 'failing'
|
suite += 'failing'
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
foreach program : extra_args.get('extra_programs', [])
|
||||||
|
depends += test_extra_programs_targets[program]
|
||||||
|
endforeach
|
||||||
|
|
||||||
test(test_name, exe,
|
test(test_name, exe,
|
||||||
|
depends : depends,
|
||||||
env : test_env,
|
env : test_env,
|
||||||
timeout : timeout,
|
timeout : timeout,
|
||||||
suite : suite,
|
suite : suite,
|
||||||
@ -333,25 +377,22 @@ python_tests = {
|
|||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
executable('assert-msg-test', ['assert-msg-test.c'],
|
|
||||||
c_args : test_cargs,
|
|
||||||
dependencies : test_deps,
|
|
||||||
install_dir : installed_tests_execdir,
|
|
||||||
install_tag : 'tests',
|
|
||||||
install : installed_tests_enabled,
|
|
||||||
win_subsystem : extra_args.get('win_subsystem', 'console'),
|
|
||||||
)
|
|
||||||
|
|
||||||
foreach test_name, extra_args : python_tests
|
foreach test_name, extra_args : python_tests
|
||||||
|
depends = [extra_args.get('depends', [])]
|
||||||
suite = ['glib', 'no-valgrind']
|
suite = ['glib', 'no-valgrind']
|
||||||
|
|
||||||
if extra_args.get('can_fail', false)
|
if extra_args.get('can_fail', false)
|
||||||
suite += 'failing'
|
suite += 'failing'
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
foreach program : extra_args.get('extra_programs', [])
|
||||||
|
depends += test_extra_programs_targets[program]
|
||||||
|
endforeach
|
||||||
|
|
||||||
test(
|
test(
|
||||||
test_name,
|
test_name,
|
||||||
python,
|
python,
|
||||||
|
depends: depends,
|
||||||
args: ['-B', files(test_name)],
|
args: ['-B', files(test_name)],
|
||||||
env: test_env,
|
env: test_env,
|
||||||
suite: suite,
|
suite: suite,
|
||||||
@ -379,58 +420,6 @@ foreach test_name, extra_args : python_tests
|
|||||||
endif
|
endif
|
||||||
endforeach
|
endforeach
|
||||||
|
|
||||||
executable('spawn-path-search-helper', 'spawn-path-search-helper.c',
|
|
||||||
c_args : test_cargs,
|
|
||||||
dependencies : test_deps,
|
|
||||||
install_dir: installed_tests_execdir,
|
|
||||||
install_tag: 'tests',
|
|
||||||
install: installed_tests_enabled,
|
|
||||||
)
|
|
||||||
|
|
||||||
executable('spawn-test-helper', 'spawn-test-helper.c',
|
|
||||||
c_args : test_cargs,
|
|
||||||
dependencies : test_deps,
|
|
||||||
install_dir: installed_tests_execdir,
|
|
||||||
install_tag: 'tests',
|
|
||||||
install: installed_tests_enabled,
|
|
||||||
)
|
|
||||||
|
|
||||||
# test-spawn-echo helper binary required by the spawn tests above
|
|
||||||
executable('test-spawn-echo', 'test-spawn-echo.c',
|
|
||||||
c_args : test_cargs,
|
|
||||||
dependencies : test_deps,
|
|
||||||
install_dir: installed_tests_execdir,
|
|
||||||
install_tag: 'tests',
|
|
||||||
install: installed_tests_enabled,
|
|
||||||
)
|
|
||||||
|
|
||||||
if host_machine.system() == 'windows'
|
|
||||||
# test-spawn-sleep helper binary required by the spawn tests above
|
|
||||||
executable('test-spawn-sleep', 'test-spawn-sleep.c',
|
|
||||||
c_args : test_cargs,
|
|
||||||
dependencies : test_deps,
|
|
||||||
install_dir: installed_tests_execdir,
|
|
||||||
install_tag: 'tests',
|
|
||||||
install: installed_tests_enabled,
|
|
||||||
)
|
|
||||||
executable('spawn-test-win32-gui', 'spawn-test-win32-gui.c',
|
|
||||||
c_args : test_cargs,
|
|
||||||
dependencies : test_deps,
|
|
||||||
install_dir: installed_tests_execdir,
|
|
||||||
install_tag: 'tests',
|
|
||||||
install: installed_tests_enabled,
|
|
||||||
win_subsystem: 'windows',
|
|
||||||
)
|
|
||||||
endif
|
|
||||||
|
|
||||||
executable('testing-helper', 'testing-helper.c',
|
|
||||||
c_args : test_cargs,
|
|
||||||
dependencies : test_deps,
|
|
||||||
install_dir: installed_tests_execdir,
|
|
||||||
install_tag: 'tests',
|
|
||||||
install: installed_tests_enabled,
|
|
||||||
)
|
|
||||||
|
|
||||||
# some testing of gtester functionality
|
# some testing of gtester functionality
|
||||||
if meson.can_run_host_binaries() and host_system != 'windows'
|
if meson.can_run_host_binaries() and host_system != 'windows'
|
||||||
xmllint = find_program('xmllint', required: false)
|
xmllint = find_program('xmllint', required: false)
|
||||||
@ -448,4 +437,3 @@ if meson.can_run_host_binaries() and host_system != 'windows'
|
|||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
subdir('path-test-subdir')
|
|
||||||
|
@ -1,7 +1,10 @@
|
|||||||
executable('spawn-test-helper', 'spawn-test-helper.c',
|
test_extra_programs_targets += {
|
||||||
|
'spawn-test-helper-subdir' : executable('spawn-test-helper',
|
||||||
|
sources: 'spawn-test-helper.c',
|
||||||
c_args : test_cargs,
|
c_args : test_cargs,
|
||||||
dependencies : test_deps,
|
dependencies : test_deps,
|
||||||
install_dir: join_paths(installed_tests_execdir, 'path-test-subdir'),
|
install_dir: installed_tests_execdir / 'path-test-subdir',
|
||||||
install_tag: 'tests',
|
install_tag: 'tests',
|
||||||
install: installed_tests_enabled,
|
install: installed_tests_enabled,
|
||||||
)
|
),
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user