foundry
foundry copied to clipboard
feat: fuzz corpus saving and replay in standard format
Component
Forge
Describe the feature you would like
https://github.com/foundry-rs/foundry/issues/991 was closed by https://github.com/foundry-rs/foundry/pull/1658, but as documented by this comment there's some other related work, so pulling that into separate issues.
Follows https://github.com/foundry-rs/foundry/issues/2551 to allow saving and replaying entire fuzz campaigns instead of just failures.
- Capture fuzz campaigns via
ResultCache
(Or some other mechanism TBD). - Persist fuzz campaigns to
/cache/fuzz/corpus-latest.json
. - Re-use
foundry.toml
flag to specify outdir. - Add a
replay
proptest
strategy that is powered by acorpus.json
file. - Extend
--fuzz-input-file
option to additionally take acorpus.json
file &forge test
to triggerreplay
. - Ensure
/cache/fuzz
is removed withforge clean
. - Consider a
--generate-test-cases
flag to autogenerate concrete tests from the fuzz inputs. these can be logged to the console for the user to put anywhere, or inserted directly below the failed fuzz test in the test file
Including the generated dictionary (perhaps as an optional flag if it's too big?) would be useful as well
Additional context
No response