Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
90 commits
Select commit Hold shift + click to select a range
0f2c0ae
feat(evm): SharedCorpus for multiple worker threads
yash-atreya Sep 23, 2025
c7d9e60
use SharedCorpus + CorpusWorker in InvariantExecutor
yash-atreya Sep 23, 2025
0aceb16
remove CorpusManager
yash-atreya Sep 23, 2025
41944cd
feat: Master-Worker corpus basic setup
yash-atreya Sep 24, 2025
2bb34c4
worker_dir + last_sync_timestamp fields. Write corpus to worker/corpus
yash-atreya Sep 25, 2025
089f30b
feat: export worker corpus to master and import from sync dir
yash-atreya Sep 25, 2025
5cdff64
fix: deser as tx_seq in import
yash-atreya Sep 25, 2025
488d09d
feat: calibrate - update the in_memory_corpus + history_map for entri…
yash-atreya Sep 25, 2025
cdfb4fc
docs
yash-atreya Sep 25, 2025
d4200e4
feat: distribute corpus from master to workers
yash-atreya Sep 25, 2025
e9d8d3c
sync
yash-atreya Sep 25, 2025
312225b
cleanup: remove MasterCorpus
yash-atreya Sep 25, 2025
8a477d3
integrate WorkerCorpus in existing sequential impls of fuzz and invar…
yash-atreya Sep 25, 2025
5ddc908
cleanup: remove SharedCorpus and CorpusWorker
yash-atreya Sep 25, 2025
35f46b0
feat(types): SharedFuzzState and FuzzWorker
yash-atreya Sep 26, 2025
431cc06
basic run_worker in FuzzExecutor
yash-atreya Sep 26, 2025
e4c6060
rename found_counterexample to found_failure in SharedFuzzState and s…
yash-atreya Sep 26, 2025
40263fd
feat: track total_rejects in SharedFuzzState
yash-atreya Sep 26, 2025
d1990ec
shared_state.increment_runs + only worker0 replays persisted failure …
yash-atreya Sep 29, 2025
ed234d8
feat: basic staggered corpus sync in run_worker
yash-atreya Sep 29, 2025
67c96a7
feat: parallelize fuzz runs + aggregate results
yash-atreya Sep 29, 2025
0cdccd9
fix: derive seeds per worker
yash-atreya Sep 30, 2025
f7310d0
fix: only increment runs for success cases + try_increment_runs atomi…
yash-atreya Sep 30, 2025
e5b00bc
fix: run only 1 worker if replaying persisted failure
yash-atreya Sep 30, 2025
1d6363b
fix: timed campaigns - introduce per worker timer
yash-atreya Sep 30, 2025
dde52cc
fix: flaky try_increment_runs
yash-atreya Oct 1, 2025
63ca2bf
fix: expect_emit_test_should_fail - identify events only using cache …
yash-atreya Oct 1, 2025
1aa39ed
fix: expect_emit_tests_should_fail
yash-atreya Oct 1, 2025
349b5ee
fix: timer should be global to fit as many runs as possible
yash-atreya Oct 1, 2025
33a294c
fix: worker_runs = config.runs/ num_workers
yash-atreya Oct 1, 2025
e8fde6f
fix: should_not_shrink_fuzz_failure
yash-atreya Oct 1, 2025
e991826
feat: propagate --jobs / threads to FuzzConfig to determine number of…
yash-atreya Oct 1, 2025
47bd12d
optimize aggregate results
yash-atreya Oct 1, 2025
e77fe5b
nit
yash-atreya Oct 1, 2025
0cca8e1
fix
yash-atreya Oct 1, 2025
aed7ee0
skip fuzzConfig.threads serialization + use placeholder for should_no…
yash-atreya Oct 2, 2025
7df4e05
fix tests
yash-atreya Oct 2, 2025
d973b79
feat: sync corpus metrics
yash-atreya Oct 2, 2025
af55f71
nit
yash-atreya Oct 2, 2025
6e190be
feat: surface failed_corpus_replays from master worker
yash-atreya Oct 2, 2025
8543ab4
feat: log worker fuzz stats
yash-atreya Oct 2, 2025
f30b3bf
Merge branch 'master' into yash/shared-corpus
yash-atreya Oct 2, 2025
e5bd557
Merge branch 'yash/shared-corpus' into yash/parallel-fuzz
yash-atreya Oct 2, 2025
23910e8
fix corpus tests
yash-atreya Oct 2, 2025
21257dd
fix: worker corpus dir
yash-atreya Oct 3, 2025
fced74c
fix tests
yash-atreya Oct 3, 2025
1e529a0
Merge branch 'yash/shared-corpus' into yash/parallel-fuzz
yash-atreya Oct 3, 2025
62a4b57
tracing span
yash-atreya Oct 6, 2025
ab01570
Merge branch 'master' into yash/shared-corpus
DaniPopes Oct 22, 2025
0b3d211
Merge branch 'master' into yash/shared-corpus
DaniPopes Oct 28, 2025
d6e5aaa
Merge branch 'master' into yash/shared-corpus
DaniPopes Dec 2, 2025
a241186
update
DaniPopes Dec 2, 2025
607237f
Merge branch 'yash/shared-corpus' into yash/parallel-fuzz
DaniPopes Dec 2, 2025
b0e6f0f
Merge branch 'yash/shared-corpus' into dani/parallel-fuzz
DaniPopes Dec 2, 2025
5d35f41
Merge branch 'yash/parallel-fuzz' into dani/parallel-fuzz
DaniPopes Dec 2, 2025
1954df0
chore: remove identify_event_sync
DaniPopes Dec 2, 2025
8cdd710
perf: don't rebuild dictionary a million times
DaniPopes Dec 2, 2025
8811004
Merge branch 'master' into dani/parallel-fuzz
DaniPopes Dec 3, 2025
edcc7d1
chore: clippy
DaniPopes Dec 3, 2025
e803c4a
Merge branch 'master' into dani/parallel-fuzz
DaniPopes Dec 4, 2025
d7a766f
cleanup
DaniPopes Dec 4, 2025
bca649d
chore: common constructor
DaniPopes Dec 4, 2025
3df9d00
refactor(evm): clean up corpus.rs
DaniPopes Dec 5, 2025
ef407f1
fix: cleanups, make syncing actually work
DaniPopes Dec 5, 2025
506e1e9
docs: comments
DaniPopes Dec 5, 2025
2420137
chore: clearer names, doc comments, logs
DaniPopes Dec 6, 2025
2cc4574
cleanup
DaniPopes Dec 9, 2025
0c36637
Merge branch 'master' into dani/parallel-fuzz
DaniPopes Dec 9, 2025
aa3b992
rm tmp
DaniPopes Dec 9, 2025
f04ab1a
fix: rejects
DaniPopes Dec 9, 2025
268f195
chore: usize ID, don't emit metadata
DaniPopes Dec 9, 2025
da7b44e
fix
DaniPopes Dec 10, 2025
9b6c1c2
fix: some race conditions, logs, aggregation; move away from public t…
DaniPopes Dec 10, 2025
43ab247
fix: incrementing runs is infallible
DaniPopes Dec 10, 2025
8a0fe80
another j1 test
DaniPopes Dec 10, 2025
2c87292
fix remaining tests
DaniPopes Dec 10, 2025
335529d
chore: re-enable multiple workers on persisted_failure
DaniPopes Dec 10, 2025
4275f3f
rm fuzz threads config
DaniPopes Dec 10, 2025
073cf85
chore: distribute remainder runs evenly
DaniPopes Dec 10, 2025
9f4f2f6
fix: logs, j1
DaniPopes Dec 10, 2025
8c295db
Merge branch 'master' into dani/parallel-fuzz
DaniPopes Dec 11, 2025
7caf85b
chore: rm metadata, add another early-exit for the fuzz test alone
DaniPopes Dec 11, 2025
d313f42
perf: don't compress small files, improve json
DaniPopes Dec 11, 2025
ee83c57
test: assert corpus inputs is not empty
DaniPopes Dec 11, 2025
8da89a3
chore: rm corpus that give no new coverage
DaniPopes Dec 11, 2025
0a1cb2c
mv
DaniPopes Dec 11, 2025
cf1a976
chore: always sync as first thing
DaniPopes Dec 11, 2025
1815366
chore: add timing to worker
DaniPopes Dec 11, 2025
bae756d
clean up runs_since_sync
DaniPopes Dec 11, 2025
f90ee86
fix: zero runs, min runs per worker
DaniPopes Dec 11, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

7 changes: 2 additions & 5 deletions crates/config/src/fuzz.rs
Original file line number Diff line number Diff line change
Expand Up @@ -12,11 +12,8 @@ pub struct FuzzConfig {
pub runs: u32,
/// Fails the fuzzed test if a revert occurs.
pub fail_on_revert: bool,
/// The maximum number of test case rejections allowed by proptest, to be
/// encountered during usage of `vm.assume` cheatcode. This will be used
/// to set the `max_global_rejects` value in proptest test runner config.
/// `max_local_rejects` option isn't exposed here since we're not using
/// `prop_filter`.
/// The maximum number of test case rejections allowed,
/// encountered during usage of `vm.assume` cheatcode.
pub max_test_rejects: u32,
/// Optional seed for the fuzzing RNG algorithm
pub seed: Option<U256>,
Expand Down
2 changes: 2 additions & 0 deletions crates/evm/evm/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -56,3 +56,5 @@ indicatif.workspace = true
serde_json.workspace = true
serde.workspace = true
uuid.workspace = true
rayon.workspace = true
tokio.workspace = true
Loading
Loading