You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
DateKeys/scripts/fuzz.sh

31 lines
1.1 KiB

#!/usr/bin/env bash
# Runs every parser fuzz target for the given duration each (default 20s).
# FUZZ_PARALLEL limits the number of fuzzing workers; each one keeps a
# 100 MB shared-memory file in the temporary directory.
# FUZZ_MINIMIZE is the time spent minimising each new input (default 0):
# minimisation stalls FuzzInspect for minutes, so short runs skip it; a
# failing input is still saved under testdata/fuzz as found.
set -euo pipefail
duration="${1:-20s}"
parallel=(-fuzzminimizetime="${FUZZ_MINIMIZE:-0}")
if [[ -n "${FUZZ_PARALLEL:-}" ]]; then
parallel+=(-parallel "$FUZZ_PARALLEL")
fi
targets=(
"./codec FuzzUnmarshal"
"./profile FuzzDecode"
"./datekey FuzzParse"
"./agewrap FuzzStanzas"
"./accesskey FuzzDecode"
"./capsule FuzzParsePrelude"
"./capsule FuzzDecodeHeader"
"./capsule FuzzDecodeControl"
"./capsule FuzzInspect"
"./capsule FuzzEncodeImpliesDecode"
)
for t in "${targets[@]}"; do
read -r pkg name <<<"$t"
echo "== $pkg $name ($duration)"
go test -run='^$' -fuzz="^${name}\$" -fuzztime="$duration" "${parallel[@]}" "$pkg"
done

Powered by TurnKey Linux.