2018-06-06 11:19:36 +02:00
|
|
|
#!/bin/bash -eux
|
|
|
|
|
|
|
|
ROOT_DIR=$(dirname $0)/../../
|
2019-09-03 15:11:05 +02:00
|
|
|
FUZZING_DIR=${ROOT_DIR}/extras/fuzzing/
|
2018-06-06 11:19:36 +02:00
|
|
|
|
2020-07-15 11:05:36 +02:00
|
|
|
export CC="clang-${CLANG}"
|
|
|
|
export CXX="clang++-${CLANG}"
|
|
|
|
cmake -DCMAKE_BUILD_TYPE=Debug .
|
2018-06-07 10:36:57 +02:00
|
|
|
|
2020-07-15 11:05:36 +02:00
|
|
|
FUZZER_TARGET="${FUZZER}_fuzzer"
|
|
|
|
FUZZER_PATH="extras/fuzzing/${FUZZER_TARGET}"
|
|
|
|
CORPUS_DIR="${FUZZING_DIR}/${FUZZER}_corpus"
|
|
|
|
SEED_CORPUS_DIR="${FUZZING_DIR}/${FUZZER}_seed_corpus"
|
2018-06-06 11:19:36 +02:00
|
|
|
|
2020-07-15 11:05:36 +02:00
|
|
|
cmake --build . --target $FUZZER_TARGET
|
2018-06-06 11:19:36 +02:00
|
|
|
|
2020-07-15 11:05:36 +02:00
|
|
|
export ASAN_OPTIONS="detect_leaks=0"
|
|
|
|
export LLVM_PROFILE_FILE="${FUZZER_TARGET}.profraw"
|
|
|
|
${FUZZER_PATH} "$CORPUS_DIR" "$SEED_CORPUS_DIR" -max_total_time=60 -timeout=1
|
2018-06-06 11:19:36 +02:00
|
|
|
|
2020-07-15 11:05:36 +02:00
|
|
|
llvm-profdata-${CLANG} merge -sparse ${LLVM_PROFILE_FILE} -o ${FUZZER_TARGET}.profdata
|
|
|
|
llvm-cov-${CLANG} report ./${FUZZER_PATH} -instr-profile=${FUZZER_TARGET}.profdata
|