144 lines
3.1 KiB
Meson
144 lines
3.1 KiB
Meson
|
buildinfo_cfg = {
|
||
|
'build_backend' : meson.backend(),
|
||
|
'build_cpu' : build_machine.cpu(),
|
||
|
'build_system' : build_machine.system(),
|
||
|
'compiler_id' : cc.get_id(),
|
||
|
'compiler_version': cc.version(),
|
||
|
'host_cpu' : host_machine.cpu(),
|
||
|
'host_system' : host_machine.system(),
|
||
|
'meson_version' : meson.version(),
|
||
|
}
|
||
|
if meson.version().version_compare('>=1.1.0')
|
||
|
buildinfo_cfg += {'build_options': meson.build_options()}
|
||
|
endif
|
||
|
configure_file(
|
||
|
configuration: buildinfo_cfg,
|
||
|
input: '../meson/buildinfo.txt.meson',
|
||
|
output: 'buildinfo.txt',
|
||
|
)
|
||
|
|
||
|
libtest_targets = []
|
||
|
server_targets = []
|
||
|
unit_targets = []
|
||
|
|
||
|
subdir('log')
|
||
|
|
||
|
# Extract test targets info.
|
||
|
makefile_extractions = (
|
||
|
{
|
||
|
'libtest': '',
|
||
|
'server': '',
|
||
|
} + (
|
||
|
build_unittests.found() ? {
|
||
|
'unit': '',
|
||
|
} : {}
|
||
|
)
|
||
|
)
|
||
|
foreach _subdir : makefile_extractions.keys()
|
||
|
makefile_extractions += {
|
||
|
_subdir: run_command(
|
||
|
[
|
||
|
make_exe,
|
||
|
'--silent',
|
||
|
'-C', meson.project_source_root(),
|
||
|
'-f', files('../meson/extract.mk'),
|
||
|
'tests' / _subdir,
|
||
|
],
|
||
|
check: true,
|
||
|
env: 'MAKEFLAGS=',
|
||
|
).stdout().strip().split('\n'),
|
||
|
}
|
||
|
subdir(_subdir)
|
||
|
endforeach
|
||
|
|
||
|
_builddir = meson.current_build_dir()
|
||
|
_srcdir = meson.current_source_dir()
|
||
|
|
||
|
_env = environment()
|
||
|
_env.set('srcdir', fs.as_posix(_srcdir))
|
||
|
if host_machine.system() == 'windows'
|
||
|
foreach _component : [
|
||
|
'TOOL',
|
||
|
'SRV',
|
||
|
]
|
||
|
_env.set('CURL_TEST_EXE_EXT_' + _component, '.exe')
|
||
|
endforeach
|
||
|
_libcurl_dir = meson.project_build_root() / 'lib'
|
||
|
_env.prepend('PATH', _libcurl_dir.replace('/', '\\'))
|
||
|
endif
|
||
|
|
||
|
_disabled_tests = []
|
||
|
# Do not run flaky tests.
|
||
|
_disabled_tests += '!flaky'
|
||
|
# We don't build the doc.
|
||
|
_disabled_tests += '!1177'
|
||
|
# We don't build man pages either.
|
||
|
_disabled_tests += ['!1139', '!1140', '!1173']
|
||
|
if not fs.exists('errorcodes.pl')
|
||
|
# Missing in git checkout.
|
||
|
_disabled_tests += '!1477'
|
||
|
endif
|
||
|
if host_machine.system() == 'darwin'
|
||
|
# Some preprocessor issue prevent those 2
|
||
|
# source analysis tests from succeeding.
|
||
|
_disabled_tests += ['!1119', '!1167']
|
||
|
endif
|
||
|
if not get_option('curldebug')
|
||
|
_disabled_tests += [
|
||
|
'!356',
|
||
|
'!358',
|
||
|
'!359',
|
||
|
'!412',
|
||
|
'!413',
|
||
|
'!437',
|
||
|
'!446',
|
||
|
'!823',
|
||
|
'!869',
|
||
|
'!907',
|
||
|
'!1908',
|
||
|
'!1972',
|
||
|
'!2100',
|
||
|
'!2300',
|
||
|
'!2301',
|
||
|
'!2302',
|
||
|
'!2303',
|
||
|
'!2304',
|
||
|
'!2307',
|
||
|
]
|
||
|
endif
|
||
|
if ipv6_opt.disabled()
|
||
|
_disabled_tests += '!1614'
|
||
|
endif
|
||
|
|
||
|
_kwargs = {
|
||
|
'args': [
|
||
|
'-c',
|
||
|
'exec perl "$@"',
|
||
|
'--',
|
||
|
'-I' + fs.as_posix(_srcdir),
|
||
|
fs.as_posix(_srcdir / 'runtests.pl'),
|
||
|
# Continue even if a test fails.
|
||
|
'-a',
|
||
|
# Use this curl executable.
|
||
|
'-c',
|
||
|
fs.as_posix(curl_exe.full_path()),
|
||
|
# No valgrind.
|
||
|
'-n',
|
||
|
# Print log file contents on failure.
|
||
|
'-p',
|
||
|
# Verbose.
|
||
|
# '-v',
|
||
|
_disabled_tests,
|
||
|
],
|
||
|
'depends': [curl_exe, libtest_targets, server_targets, unit_targets],
|
||
|
'env': _env,
|
||
|
'is_parallel': false,
|
||
|
'timeout': 0,
|
||
|
'workdir': _builddir,
|
||
|
}
|
||
|
if meson.version().version_compare('>=0.62.0')
|
||
|
test('runtests', bash_exe, kwargs: _kwargs + {'verbose': true})
|
||
|
else
|
||
|
test('runtests', bash_exe, kwargs: _kwargs)
|
||
|
endif
|