xref: /openbmc/qemu/tests/docker/test-fuzz (revision 4ab20b51)
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