-
Notifications
You must be signed in to change notification settings - Fork 5.3k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Running the fuzzer requires some hoop jumping and some problems only show up in containers. This basically replicates the build-oss-fuzz job from our CI so we can run in the same containers we use in CI. Reviewed-by: Alexander Bulekov <alxndr@bu.edu> Signed-off-by: Alex Bennée <alex.bennee@linaro.org> Message-Id: <20230630180423.558337-10-alex.bennee@linaro.org>
- Loading branch information
Showing
2 changed files
with
29 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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 |