Message ID | 20230626215926.2522656-10-alex.bennee@linaro.org |
---|---|
State | New |
Headers | show |
Series | maintainer omnibus: testing, fuzz, plugins, documentation | expand |
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.bennee@linaro.org> Reviewed-by: Alexander Bulekov <alxndr@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.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 > -- > 2.39.2 >
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.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
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.bennee@linaro.org> --- tests/docker/test-fuzz | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100755 tests/docker/test-fuzz