mirror of
https://github.com/morgan9e/systemd
synced 2026-04-14 00:14:32 +09:00
they should be tested without optional dependecines as well. CIFuzz kind of covers that but let's just make sure local builds are fine as well.
40 lines
1.6 KiB
Meson
40 lines
1.6 KiB
Meson
# SPDX-License-Identifier: LGPL-2.1-or-later
|
|
|
|
sanitize_address_undefined = custom_target(
|
|
'sanitize-address-undefined-fuzzers',
|
|
output : 'sanitize-address-undefined-fuzzers',
|
|
command : [meson_build_sh,
|
|
project_source_root,
|
|
'@OUTPUT@',
|
|
'fuzzers',
|
|
'-Dfuzz-tests=true -Db_lundef=false -Db_sanitize=address,undefined --optimization=@0@ @1@ -Dc_args=@2@ -Dcpp_args=@2@ -Dskip-deps=@3@'.format(
|
|
get_option('optimization'),
|
|
get_option('werror') ? '--werror' : '',
|
|
'-DFUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION',
|
|
get_option('skip-deps')
|
|
),
|
|
' '.join(cc.cmd_array()),
|
|
cxx_cmd])
|
|
|
|
sanitizers = [['address,undefined', sanitize_address_undefined]]
|
|
|
|
if git.found() and fs.exists(project_source_root / '.git')
|
|
out = run_command(env, '-u', 'GIT_WORK_TREE',
|
|
git, '--git-dir=@0@/.git'.format(project_source_root),
|
|
'ls-files', ':/test/fuzz/*/*',
|
|
check: true)
|
|
else
|
|
out = run_command(sh, '-c', 'cd "@0@"; echo test/fuzz/*/*'.format(project_source_root), check: true)
|
|
endif
|
|
|
|
fuzz_regression_tests = []
|
|
foreach p : out.stdout().split()
|
|
# Remove the last entry which is ''.
|
|
#
|
|
# Also, backslashes get mangled, so skip test. See
|
|
# https://github.com/mesonbuild/meson/issues/1564.
|
|
if not p.contains('\\')
|
|
fuzz_regression_tests += p
|
|
endif
|
|
endforeach
|