| #!/usr/bin/env bash | |
| set -e | |
| export CC=${CC:-cc} | |
| BROTLI="$( cd "$( dirname "${BASH_SOURCE[0]}" )/../.." && pwd )" | |
| SRC=$BROTLI/c | |
| cd $BROTLI | |
| rm -rf bin | |
| mkdir bin | |
| cd bin | |
| cmake $BROTLI -DCMAKE_C_COMPILER="$CC" \ | |
| -DBUILD_TESTING=OFF -DBUILD_SHARED_LIBS=OFF -DENABLE_SANITIZER=address | |
| make -j$(nproc) brotlidec | |
| ${CC} -o run_decode_fuzzer -std=c99 -fsanitize=address -I$SRC/include \ | |
| $SRC/fuzz/decode_fuzzer.c $SRC/fuzz/run_decode_fuzzer.c \ | |
| ./libbrotlidec.a ./libbrotlicommon.a | |
| mkdir decode_corpora | |
| unzip $BROTLI/java/org/brotli/integration/fuzz_data.zip -d decode_corpora | |
| for f in `ls decode_corpora` | |
| do | |
| echo "Testing $f" | |
| ./run_decode_fuzzer decode_corpora/$f | |
| done | |
| cd $BROTLI | |
| rm -rf bin |