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