X-Git-Url: http://git.bitcoin.ninja/index.cgi?a=blobdiff_plain;f=fuzz%2Fci-fuzz.sh;fp=fuzz%2Fci-fuzz.sh;h=57e326472886e654af93503c88b5611f7a9e2e2a;hb=86a2607b008ed9bf95e89562a1822bcbfcfdcdb0;hp=0000000000000000000000000000000000000000;hpb=5b24d3e3275b8ca7f0ea064cc1626c8e1def2ccb;p=rust-lightning diff --git a/fuzz/ci-fuzz.sh b/fuzz/ci-fuzz.sh new file mode 100755 index 00000000..57e32647 --- /dev/null +++ b/fuzz/ci-fuzz.sh @@ -0,0 +1,36 @@ +#!/bin/bash +set -e + +pushd src/msg_targets +rm msg_*.rs +./gen_target.sh +[ "$(git diff)" != "" ] && exit 1 +popd +pushd src/bin +rm *_target.rs +./gen_target.sh +[ "$(git diff)" != "" ] && exit 1 +popd + +cargo install --force honggfuzz +sed -i 's/lto = true//' Cargo.toml +HFUZZ_BUILD_ARGS="--features honggfuzz_fuzz" cargo hfuzz build +for TARGET in src/bin/*.rs; do + FILENAME=$(basename $TARGET) + FILE="${FILENAME%.*}" + HFUZZ_RUN_ARGS="--exit_upon_crash -v -n2" + if [ "$FILE" = "chanmon_consistency_target" ]; then + HFUZZ_RUN_ARGS="$HFUZZ_RUN_ARGS -F 64 -N100000" + else + HFUZZ_RUN_ARGS="$HFUZZ_RUN_ARGS -N1000000" + fi + export HFUZZ_RUN_ARGS + HFUZZ_BUILD_ARGS="--features honggfuzz_fuzz" cargo hfuzz run $FILE + if [ -f hfuzz_workspace/$FILE/HONGGFUZZ.REPORT.TXT ]; then + cat hfuzz_workspace/$FILE/HONGGFUZZ.REPORT.TXT + for CASE in hfuzz_workspace/$FILE/SIG*; do + cat $CASE | xxd -p + done + exit 1 + fi +done