| #!/bin/bash -e | |
| # | |
| # Compile and check with oss-fuzz. | |
| # | |
| # Copyright (c) 2023 Linaro Ltd. | |
| # | |
| # Authors: | |
| # Alex Bennée <alex.bennee@linaro.org> | |
| # | |
| # SPDX-License-Identifier: GPL-2.0-or-later | |
| . common.rc | |
| requires_binary clang | |
| # the build script runs out of $src so we need to copy across | |
| cd "$BUILD_DIR" | |
| cp -a $QEMU_SRC . | |
| cd src | |
| mkdir build-oss-fuzz | |
| export LSAN_OPTIONS=suppressions=scripts/lsan_suppressions.txt | |
| env CC="clang" CXX="clang++" CFLAGS="-fsanitize=address" ./scripts/oss-fuzz/build.sh | |
| export ASAN_OPTIONS="fast_unwind_on_malloc=0" | |
| for fuzzer in $(find ./build-oss-fuzz/DEST_DIR/ -executable -type f | grep -v slirp); do | |
| grep "LLVMFuzzerTestOneInput" ${fuzzer} > /dev/null 2>&1 || continue ; | |
| echo Testing ${fuzzer} ... ; | |
| "${fuzzer}" -runs=1 -seed=1 || exit 1 ; | |
| done |