summaryrefslogtreecommitdiffhomepage
path: root/fuzzing/build-fuzz.sh
diff options
context:
space:
mode:
authorArjun <pkillarjun@protonmail.com>2024-05-25 17:52:02 +0530
committerAndrew Clayton <a.clayton@nginx.com>2024-06-14 15:11:38 +0100
commit965fc94e4910da14d13a2f10d997cc720b3f6127 (patch)
tree6b730222901649e2e2b996b7219ce12fe1f15fe3 /fuzzing/build-fuzz.sh
parent04a24f61e069926a6546917ee049dc17fbaf1d03 (diff)
downloadunit-965fc94e4910da14d13a2f10d997cc720b3f6127.tar.gz
unit-965fc94e4910da14d13a2f10d997cc720b3f6127.tar.bz2
fuzzing: add fuzzing infrastructure in build system
Signed-off-by: Arjun <pkillarjun@protonmail.com> Reviewed-by: Andrew Clayton <a.clayton@nginx.com> Signed-off-by: Andrew Clayton <a.clayton@nginx.com>
Diffstat (limited to 'fuzzing/build-fuzz.sh')
-rw-r--r--fuzzing/build-fuzz.sh20
1 files changed, 20 insertions, 0 deletions
diff --git a/fuzzing/build-fuzz.sh b/fuzzing/build-fuzz.sh
new file mode 100644
index 00000000..04f080d9
--- /dev/null
+++ b/fuzzing/build-fuzz.sh
@@ -0,0 +1,20 @@
+#!/usr/bin/env bash
+
+export CC=clang
+export CXX=clang++
+export CFLAGS="-g -DFUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION -fsanitize=address,undefined -fsanitize=fuzzer-no-link"
+export CXXFLAGS="-g -DFUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION -fsanitize=address,undefined -fsanitize=fuzzer-no-link"
+export LIB_FUZZING_ENGINE="-fsanitize=fuzzer"
+
+./configure --no-regex --no-pcre2 --fuzz=$LIB_FUZZING_ENGINE
+make fuzz -j$(nproc)
+
+mkdir -p build/fuzz_basic_seed
+mkdir -p build/fuzz_http_controller_seed
+mkdir -p build/fuzz_http_h1p_seed
+mkdir -p build/fuzz_http_h1p_peer_seed
+mkdir -p build/fuzz_json_seed
+
+echo ""
+echo "Run: ./build/\${fuzzer} build/\${fuzzer}_seed src/fuzz/\${fuzzer}_seed_corpus"
+echo ""