Meson: Install glib tests

Fixes: #1444.
This commit is contained in:
Xavier Claessens 2018-07-16 13:39:44 -04:00
parent a84cbf1434
commit 1bba3276bb
4 changed files with 34 additions and 2 deletions

View File

@ -30,11 +30,13 @@ glib_tests = {
}, },
'gwakeup' : { 'gwakeup' : {
'source' : ['gwakeuptest.c', '../gwakeup.c'], 'source' : ['gwakeuptest.c', '../gwakeup.c'],
'install' : false,
}, },
'gwakeup-fallback' : { 'gwakeup-fallback' : {
'skip' : not glib_conf.has('HAVE_EVENTFD'), 'skip' : not glib_conf.has('HAVE_EVENTFD'),
'source' : ['gwakeuptest.c', '../gwakeup.c'], 'source' : ['gwakeuptest.c', '../gwakeup.c'],
'c_args' : ['-DTEST_EVENTFD_FALLBACK'], 'c_args' : ['-DTEST_EVENTFD_FALLBACK'],
'install' : false,
}, },
'hash' : {}, 'hash' : {},
'hmac' : {}, 'hmac' : {},
@ -115,6 +117,7 @@ glib_tests = {
'1bit-emufutex' : { '1bit-emufutex' : {
'source' : '1bit-mutex.c', 'source' : '1bit-mutex.c',
'c_args' : ['-DTEST_EMULATED_FUTEX'], 'c_args' : ['-DTEST_EMULATED_FUTEX'],
'install' : false,
}, },
'642026' : { '642026' : {
'suite' : ['slow'], 'suite' : ['slow'],
@ -145,11 +148,25 @@ foreach test_name, extra_args : glib_tests
# mutable to dictionaries (https://github.com/mesonbuild/meson/pull/3820). # mutable to dictionaries (https://github.com/mesonbuild/meson/pull/3820).
if not extra_args.get('skip', false) if not extra_args.get('skip', false)
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)
if install
test_conf = configuration_data()
test_conf.set('installed_tests_dir', installed_tests_execdir)
test_conf.set('program', test_name)
configure_file(
input: installed_tests_template,
output: test_name + '.test',
install_dir: installed_tests_metadir,
configuration: test_conf
)
endif
exe = executable(test_name, source, exe = executable(test_name, source,
c_args : test_cargs + extra_args.get('c_args', []), c_args : test_cargs + extra_args.get('c_args', []),
dependencies : test_deps + extra_args.get('dependencies', []), dependencies : test_deps + extra_args.get('dependencies', []),
install: false, install_dir: installed_tests_execdir,
install: install,
) )
suite = ['glib'] + extra_args.get('suite', []) suite = ['glib'] + extra_args.get('suite', [])
@ -162,7 +179,8 @@ endforeach
executable('test-spawn-echo', 'test-spawn-echo.c', executable('test-spawn-echo', 'test-spawn-echo.c',
c_args : test_cargs, c_args : test_cargs,
dependencies : test_deps, dependencies : test_deps,
install : false, install_dir: installed_tests_execdir,
install: installed_tests_enabled,
) )
# some testing of gtester functionality # some testing of gtester functionality

View File

@ -56,6 +56,7 @@ gioinc = include_directories('gio')
glib_prefix = get_option('prefix') glib_prefix = get_option('prefix')
glib_bindir = join_paths(glib_prefix, get_option('bindir')) glib_bindir = join_paths(glib_prefix, get_option('bindir'))
glib_libdir = join_paths(glib_prefix, get_option('libdir')) glib_libdir = join_paths(glib_prefix, get_option('libdir'))
glib_libexecdir = join_paths(glib_prefix, get_option('libexecdir'))
glib_datadir = join_paths(glib_prefix, get_option('datadir')) glib_datadir = join_paths(glib_prefix, get_option('datadir'))
glib_pkgdatadir = join_paths(glib_datadir, 'glib-2.0') glib_pkgdatadir = join_paths(glib_datadir, 'glib-2.0')
glib_includedir = join_paths(glib_prefix, get_option('includedir')) glib_includedir = join_paths(glib_prefix, get_option('includedir'))
@ -66,6 +67,11 @@ endif
glib_pkgconfigreldir = join_paths(glib_libdir, 'pkgconfig') glib_pkgconfigreldir = join_paths(glib_libdir, 'pkgconfig')
installed_tests_metadir = join_paths(glib_datadir, 'installed-tests', meson.project_name())
installed_tests_execdir = join_paths(glib_libexecdir, 'installed-tests', meson.project_name())
installed_tests_enabled = get_option('installed_tests')
installed_tests_template = files('template.test.in')
add_project_arguments('-D_GNU_SOURCE', language: 'c') add_project_arguments('-D_GNU_SOURCE', language: 'c')
# Disable strict aliasing; # Disable strict aliasing;

View File

@ -78,3 +78,8 @@ option('fam',
type : 'boolean', type : 'boolean',
value : false, value : false,
description : 'Use fam for file system monitoring') description : 'Use fam for file system monitoring')
option('installed_tests',
type : 'boolean',
value : false,
description : 'enable installed tests')

3
template.test.in Normal file
View File

@ -0,0 +1,3 @@
[Test]
Type=session
Exec=@installed_tests_dir@/@program@