fuzz.sh 739 B

12345678910111213141516171819202122
  1. #!/bin/bash -eux
  2. ROOT_DIR=$(dirname $0)/../../
  3. FUZZING_DIR=${ROOT_DIR}/extras/fuzzing/
  4. export CC="clang-${CLANG}"
  5. export CXX="clang++-${CLANG}"
  6. cmake -DCMAKE_BUILD_TYPE=Debug .
  7. FUZZER_TARGET="${FUZZER}_fuzzer"
  8. FUZZER_PATH="extras/fuzzing/${FUZZER_TARGET}"
  9. CORPUS_DIR="${FUZZING_DIR}/${FUZZER}_corpus"
  10. SEED_CORPUS_DIR="${FUZZING_DIR}/${FUZZER}_seed_corpus"
  11. cmake --build . --target $FUZZER_TARGET
  12. export ASAN_OPTIONS="detect_leaks=0"
  13. export LLVM_PROFILE_FILE="${FUZZER_TARGET}.profraw"
  14. ${FUZZER_PATH} "$CORPUS_DIR" "$SEED_CORPUS_DIR" -max_total_time=60 -timeout=1
  15. llvm-profdata-${CLANG} merge -sparse ${LLVM_PROFILE_FILE} -o ${FUZZER_TARGET}.profdata
  16. llvm-cov-${CLANG} report ./${FUZZER_PATH} -instr-profile=${FUZZER_TARGET}.profdata