mirror of
https://gitlab.com/qemu-project/qemu
synced 2024-11-05 20:35:44 +00:00
tests/docker: add test-fuzz
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>
This commit is contained in:
parent
3176990fb0
commit
4ab20b513e
2 changed files with 29 additions and 0 deletions
|
@ -3106,6 +3106,7 @@ R: Qiuhao Li <Qiuhao.Li@outlook.com>
|
|||
S: Maintained
|
||||
F: tests/qtest/fuzz/
|
||||
F: tests/qtest/fuzz-*test.c
|
||||
F: tests/docker/test-fuzz
|
||||
F: scripts/oss-fuzz/
|
||||
F: hw/mem/sparse-mem.c
|
||||
F: docs/devel/fuzzing.rst
|
||||
|
|
28
tests/docker/test-fuzz
Executable file
28
tests/docker/test-fuzz
Executable file
|
@ -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
|
Loading…
Reference in a new issue