Skip to content

refactor(fuzz): unify fuzz input pipeline#15835

Open
stevencartavia wants to merge 5 commits into
masterfrom
steven/refactor-fuzz-inputs
Open

refactor(fuzz): unify fuzz input pipeline#15835
stevencartavia wants to merge 5 commits into
masterfrom
steven/refactor-fuzz-inputs

Conversation

@stevencartavia

@stevencartavia stevencartavia commented Jul 20, 2026

Copy link
Copy Markdown
Member

Stacked on #15814.

This PR moves transaction and sequence generation into foundry-evm-fuzz behind concrete TxGenerator, FuzzState, SequenceGenerator, and SequencePlan types. Stateless fuzzing uses a fixed depth-one plan, while invariant fuzzing retains isolated worker feedback, lazy target discovery, and lazy sequence continuation.

The existing execution loops remain separate. Corpus persistence and replay stay in the executor crate, while sequence and ABI/CMP mutation move into the fuzz crate. There is no implicit funding behavior or on-disk format change.

This is the second staged PR because the shared input pipeline must exist before execution campaigns can be unified. Commit, check, replay, shrinking, scheduling, and result semantics remain deferred to PR 3.

Part of OSS-252

mattsse
mattsse previously approved these changes Jul 20, 2026

@mattsse mattsse left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm

mablr
mablr previously approved these changes Jul 21, 2026

@mablr mablr left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM.

Persistent CMP dictionary values now correctly survive between runs, maybe it would worth to benchmark.

Base automatically changed from steven/fix-stateless-transactions to master July 23, 2026 15:41
@mablr
mablr dismissed stale reviews from mattsse and themself July 23, 2026 15:41

The base branch was changed.

…z-inputs

Amp-Thread-ID: https://ampcode.com/threads/T-019f8fa9-a3fd-76c8-b6d7-6cfb9696dafc
Co-authored-by: Amp <amp@ampcode.com>

# Conflicts:
#	crates/evm/evm/src/executors/corpus.rs
#	crates/evm/evm/src/executors/fuzz/mod.rs
@stevencartavia
stevencartavia requested review from mablr and mattsse July 23, 2026 16:02
@mablr

mablr commented Jul 23, 2026

Copy link
Copy Markdown
Member

Should we run bench here finally ?

@stevencartavia

Copy link
Copy Markdown
Member Author

derek bench fuzz compare-ref=master timeout=600

@github-actions

github-actions Bot commented Jul 23, 2026

Copy link
Copy Markdown
Contributor

cc @stevencartavia

bench (fuzz) event published. Results will be reported separately. View publisher run

Config: subcommand: fuzz, PR SHA: 4ac3c941df23, compare-ref: master, timeout: 600s, benchmarks: forge_fuzz_test

@mattsse mattsse left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: No status

Development

Successfully merging this pull request may close these issues.

3 participants