2023-01-25 17:35:53 +00:00
|
|
|
#!/usr/bin/env bash
|
2021-08-04 20:59:36 +01:00
|
|
|
|
2022-05-25 12:10:55 +01:00
|
|
|
set -euo pipefail
|
2021-08-04 20:59:36 +01:00
|
|
|
|
2022-02-23 16:49:28 +00:00
|
|
|
echo "Using toolchain +${RUST_FUZZ_TOOLCHAIN:=nightly}. (Override with \$RUST_FUZZ_TOOLCHAIN)"
|
|
|
|
|
|
|
|
# Validate that "+${RUST_FUZZ_TOOLCHAIN}" is installed. This will log a message to stderr
|
|
|
|
# if it itsn't.
|
|
|
|
cargo "+${RUST_FUZZ_TOOLCHAIN}" -h >/dev/null
|
|
|
|
|
2021-08-27 14:53:09 +01:00
|
|
|
for d in ./crates/*/fuzz; do
|
2021-08-04 20:59:36 +01:00
|
|
|
pushd "$(dirname "$d")"
|
2022-02-22 13:36:11 +00:00
|
|
|
for fuzzer in $(cargo fuzz list); do
|
2021-08-04 20:59:36 +01:00
|
|
|
echo "$fuzzer"
|
2022-02-23 16:49:28 +00:00
|
|
|
cargo "+${RUST_FUZZ_TOOLCHAIN}" fuzz build "$fuzzer"
|
2021-08-04 20:59:36 +01:00
|
|
|
done
|
|
|
|
popd
|
|
|
|
done
|
|
|
|
|
|
|
|
|
|
|
|
#JOBS=4
|
2022-02-22 13:36:11 +00:00
|
|
|
#SEED=0
|
|
|
|
DURATION=20
|
2021-08-04 20:59:36 +01:00
|
|
|
|
|
|
|
while true; do
|
2021-08-27 14:53:09 +01:00
|
|
|
for d in ./crates/*/fuzz; do
|
2021-08-04 20:59:36 +01:00
|
|
|
pushd "$(dirname "$d")"
|
2022-02-22 13:36:11 +00:00
|
|
|
for fuzzer in $(cargo fuzz list); do
|
2022-02-23 16:49:28 +00:00
|
|
|
cargo "+${RUST_FUZZ_TOOLCHAIN}" fuzz run "$fuzzer" -- \
|
2022-02-22 19:41:54 +00:00
|
|
|
-jobs="${JOBS:-0}" \
|
|
|
|
-workers="${JOBS:-0}" \
|
2022-02-22 13:36:11 +00:00
|
|
|
-max_total_time=$((DURATION * 60)) \
|
2022-02-22 19:41:54 +00:00
|
|
|
-seed="${SEED:-0}"
|
2021-08-04 20:59:36 +01:00
|
|
|
done
|
|
|
|
popd
|
|
|
|
done
|
|
|
|
done
|