|
@@ -0,0 +1,28 @@
|
|
|
+#!/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/oss-fuzz/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
|