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