Skip to content

Commit bf29ed2

Browse files
committed
[temp] fuzz: add timestamps, minimize on all branches
Add timestamp logging to each phase for profiling. Run corpus minimization on all branches (not just main) for testing purposes. AI tools were used in preparing this commit.
1 parent 46ed908 commit bf29ed2

1 file changed

Lines changed: 19 additions & 10 deletions

File tree

fuzz/ci-fuzz.sh

Lines changed: 19 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,11 @@
22
set -e
33
set -x
44

5+
log_time() {
6+
echo ":::: $(date '+%Y-%m-%d %H:%M:%S') $1"
7+
}
8+
9+
log_time "Verifying generated targets"
510
pushd src/msg_targets
611
rm msg_*.rs
712
./gen_target.sh
@@ -15,12 +20,14 @@ popd
1520

1621
export RUSTFLAGS="--cfg=secp256k1_fuzz --cfg=hashes_fuzz"
1722

23+
log_time "Generating write-seeds"
1824
mkdir -p hfuzz_workspace/full_stack_target/input
1925
pushd write-seeds
2026
RUSTFLAGS="$RUSTFLAGS --cfg=fuzzing" cargo run ../hfuzz_workspace/full_stack_target/input
2127
cargo clean
2228
popd
2329

30+
log_time "Installing honggfuzz"
2431
cargo install --color always --force honggfuzz --no-default-features
2532

2633
# Because we're fuzzing relatively few iterations, the maximum possible
@@ -29,13 +36,17 @@ sed -i 's/lto = true//' Cargo.toml
2936

3037
export HFUZZ_BUILD_ARGS="--features honggfuzz_fuzz"
3138

39+
log_time "Building fuzz targets"
3240
cargo --color always hfuzz build -j8
41+
42+
log_time "Starting fuzz runs"
3343
for TARGET in src/bin/*.rs; do
3444
FILENAME=$(basename $TARGET)
3545
FILE="${FILENAME%.*}"
3646
CORPUS_DIR="hfuzz_workspace/$FILE/input"
3747
CORPUS_COUNT=$(find "$CORPUS_DIR" -type f 2>/dev/null | wc -l)
3848
ITERATIONS=$((CORPUS_COUNT * 8 + 1000))
49+
log_time "Fuzzing $FILE (corpus: $CORPUS_COUNT, iterations: $ITERATIONS)"
3950
HFUZZ_RUN_ARGS="--exit_upon_crash -q -n8 -N $ITERATIONS --run_time 600"
4051
if [ "$FILE" = "chanmon_consistency_target" ]; then
4152
HFUZZ_RUN_ARGS="$HFUZZ_RUN_ARGS -F 64 -t 3"
@@ -53,14 +64,12 @@ for TARGET in src/bin/*.rs; do
5364
done
5465
exit 1
5566
fi
56-
if [ "$GITHUB_REF" = "refs/heads/main" ]; then
57-
HFUZZ_RUN_ARGS="-M -q -n8 -t 3"
58-
export HFUZZ_RUN_ARGS
59-
cargo --color always hfuzz run $FILE
60-
MIN_CORPUS_COUNT=$(find "$CORPUS_DIR" -type f 2>/dev/null | wc -l)
61-
MIN_DELTA=$((MIN_CORPUS_COUNT - FUZZ_CORPUS_COUNT))
62-
echo "$FILE: original=$CORPUS_COUNT, after fuzz=$FUZZ_CORPUS_COUNT [+$FUZZ_DELTA], after minimize=$MIN_CORPUS_COUNT [$MIN_DELTA]"
63-
else
64-
echo "$FILE: original=$CORPUS_COUNT, after fuzz=$FUZZ_CORPUS_COUNT [+$FUZZ_DELTA]"
65-
fi
67+
HFUZZ_RUN_ARGS="-M -q -n8 -t 3"
68+
export HFUZZ_RUN_ARGS
69+
cargo --color always hfuzz run $FILE
70+
MIN_CORPUS_COUNT=$(find "$CORPUS_DIR" -type f 2>/dev/null | wc -l)
71+
MIN_DELTA=$((MIN_CORPUS_COUNT - FUZZ_CORPUS_COUNT))
72+
log_time "Finished $FILE (original: $CORPUS_COUNT, after fuzz: $FUZZ_CORPUS_COUNT [+$FUZZ_DELTA], after minimize: $MIN_CORPUS_COUNT [$MIN_DELTA])"
6673
done
74+
75+
log_time "Done"

0 commit comments

Comments
 (0)