On 230626 2259, Alex Bennée wrote: > 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. > > Signed-off-by: Alex Bennée <alex.ben...@linaro.org>
Reviewed-by: Alexander Bulekov <alx...@bu.edu> Thanks > --- > tests/docker/test-fuzz | 28 ++++++++++++++++++++++++++++ > 1 file changed, 28 insertions(+) > create mode 100755 tests/docker/test-fuzz > > diff --git a/tests/docker/test-fuzz b/tests/docker/test-fuzz > new file mode 100755 > index 0000000000..7e506ae1f6 > --- /dev/null > +++ b/tests/docker/test-fuzz > @@ -0,0 +1,28 @@ > +#!/bin/bash -e > +# > +# Compile and check with oss-fuzz. > +# > +# Copyright (c) 2023 Linaro Ltd. > +# > +# Authors: > +# Alex Bennée <alex.ben...@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 > -- > 2.39.2 >