Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
57 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
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.

6 changes: 6 additions & 0 deletions crates/config/src/fuzz.rs
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,11 @@ pub struct FuzzConfig {
pub show_logs: bool,
/// Optional timeout (in seconds) for each property test
pub timeout: Option<u32>,
/// Number of threads to use for parallel fuzz runs
///
/// This is set by passing `-j` or `--jobs`
#[serde(skip)]
pub threads: Option<usize>,
}

impl Default for FuzzConfig {
Expand All @@ -49,6 +54,7 @@ impl Default for FuzzConfig {
failure_persist_dir: None,
show_logs: false,
timeout: None,
threads: None,
}
}
}
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