gthread_tests = { 'init' : {}, } test_env = environment() test_env.set('G_TEST_SRCDIR', meson.current_source_dir()) test_env.set('G_TEST_BUILDDIR', meson.current_build_dir()) test_deps = [thread_dep, libglib_dep, libgthread_dep] test_cargs = ['-DG_LOG_DOMAIN="GLib-GThread"', '-UG_DISABLE_ASSERT'] test_cpp_args = test_cargs foreach test_name, extra_args : gthread_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, install_tag: 'tests', configuration: test_conf ) endif exe = executable(test_name, source, c_args : test_cargs + extra_args.get('c_args', []), cpp_args : test_cpp_args + extra_args.get('cpp_args', []), dependencies : test_deps + extra_args.get('dependencies', []), install_dir: installed_tests_execdir, install_tag: 'tests', install: install, ) suite = ['gthread'] + extra_args.get('suite', []) timeout = suite.contains('slow') ? test_timeout_slow : test_timeout if extra_args.get('can_fail', false) suite += 'failing' endif test(test_name, exe, protocol : extra_args.get('protocol', test_protocol), env : test_env, timeout : timeout, suite : suite, ) endforeach if have_bash and have_pkg_config test('gthread-2.0-pkg-config', bash, args: [ '-xe', '-c', '\n'.join([ 'pkg-config --validate gthread-2.0', 'test "$(pkg-config --modversion gthread-2.0)" = "@0@"'.format(glib_version), 'test "$(pkg-config --variable=prefix gthread-2.0)" = "@0@"'.format( get_option('prefix')), ]), ], suite: ['gthread', 'no-valgrind', 'pkg-config'], env: { 'PKG_CONFIG_PATH': meson.project_build_root() / 'meson-private', }, ) endif