| # SPDX-License-Identifier: LGPL-2.1+ |
| |
| # The 'optimization' option was introduced in meson 0.48.0, so let's keep |
| # the code compatible with older versions as well |
| if meson.version().version_compare('>=0.48.0') |
| optimization = '--optimization=@0@'.format(get_option('optimization')) |
| else |
| optimization = '' |
| endif |
| |
| sanitize_address_undefined = custom_target( |
| 'sanitize-address-undefined-fuzzers', |
| output : 'sanitize-address-undefined-fuzzers', |
| command : [meson_build_sh, |
| project_source_root, |
| '@OUTPUT@', |
| 'fuzzers', |
| '-Db_lundef=false -Db_sanitize=address,undefined @0@'.format(optimization), |
| ' '.join(cc.cmd_array()), |
| cxx_cmd]) |
| |
| sanitizers = [['address,undefined', sanitize_address_undefined]] |
| |
| if git.found() |
| out = run_command( |
| git, |
| '--git-dir=@0@/.git'.format(project_source_root), |
| 'ls-files', ':/test/fuzz/*/*') |
| else |
| out = run_command( |
| 'sh', '-c', 'ls @0@/test/fuzz/*/*'.format(project_source_root)) |
| 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 |