Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Foundry Mutation Testing #6588

Draft
wants to merge 74 commits into
base: master
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
74 commits
Select commit Hold shift + click to select a range
30d5bd2
feat: add gambit crate
samparsky Dec 4, 2023
6777cc9
chore: add dependencies for gambit
samparsky Dec 4, 2023
8ce0351
chore: add MutatorConfigBuilder, Mutator
samparsky Dec 4, 2023
afac7c0
chore: add FunctionFilter trait to common crate
samparsky Dec 4, 2023
e0ef02d
chore: remove rayon unused dependency
samparsky Dec 4, 2023
1f6e1f3
chore: rename gambit crate to mutator
samparsky Dec 4, 2023
7ea5449
chore: fix clippy comments
samparsky Dec 4, 2023
762ed6c
chore: remove comments
samparsky Dec 4, 2023
129fd9f
chore: add mutator artifact filter
samparsky Dec 4, 2023
fcff7e9
chore: add artifact filter get_artifact_functions
samparsky Dec 4, 2023
c32fd34
chore: update mutator config builder, add src_root
samparsky Dec 5, 2023
556b0ba
chore: apply rustfmt
samparsky Dec 5, 2023
c0c3011
chore: add mutate folder to forge/bin/cmd
samparsky Dec 5, 2023
9144d35
chore: add filter.rs to mutate bin
samparsky Dec 5, 2023
1e6ce77
chore: add mutate commad filter args
samparsky Dec 5, 2023
89b4e9e
chore: add mutate filter args implementation
samparsky Dec 5, 2023
a3392bb
chore: add mutate config to config crate
samparsky Dec 5, 2023
55036c8
chore: add mutate to config struct
samparsky Dec 5, 2023
443e5e2
test: fix cli/config mutate property
samparsky Dec 5, 2023
bf7d9cc
chore: add mutate test args struct
samparsky Dec 5, 2023
9e43b70
chore: add foundry_evm_mutator dep
samparsky Dec 5, 2023
a2b491e
chore: add mutate test args implementation
samparsky Dec 5, 2023
1093c64
chore: make test(..) public; fix test
samparsky Dec 5, 2023
d59c2bb
chore: add mutate test summary struct and definitions
samparsky Dec 5, 2023
0d34b69
chore: fix run_mutate
samparsky Dec 5, 2023
c9c9117
chore: add export flag to config
samparsky Dec 5, 2023
bdaa5cf
chore: unecessary println
samparsky Dec 5, 2023
fb61e15
chore: add mutate spinner reporter, test mode flag
samparsky Dec 7, 2023
78830e2
chore: add test filter params to mutate config
samparsky Dec 7, 2023
532965a
chore: add test filter params to mutate filter; add ContractFilter trait
samparsky Dec 7, 2023
8bd2039
chore: fix testFilter
samparsky Dec 7, 2023
a2b8ee2
chore: separate mutation filter from test filter
samparsky Dec 7, 2023
dc12976
chore: add merge_with_mutate_config to test filter
samparsky Dec 7, 2023
f02c395
chore: add ContractFilter to mutator crate
samparsky Dec 7, 2023
4c8b07d
chore: fix ContractFilter
samparsky Dec 7, 2023
dbef1f4
chore: fix mutate filter args clap args
samparsky Dec 7, 2023
ade1db2
chore: fix test_mutant file
samparsky Dec 7, 2023
972e1b5
chore: cut runtime by 99% by sparse_compile mutant file
samparsky Dec 7, 2023
1f81101
chore: add json output to forge mutate
samparsky Dec 8, 2023
5387d01
chore: add fail fast and compile, test functions
samparsky Dec 8, 2023
15f438d
chore: apply rustfmt
samparsky Dec 8, 2023
bb55b72
chore: add mutation score to summary table
samparsky Dec 8, 2023
749f258
chore: fix compile log
samparsky Dec 8, 2023
29d70e8
chore: update filter args debug struct
samparsky Dec 8, 2023
32134a9
chore: MutatorspinnerReporter
samparsky Dec 9, 2023
5477504
chore: fix terminal output
samparsky Dec 9, 2023
d81f0d6
chore: comment send_msg
samparsky Dec 9, 2023
942a6f7
chore: update summary output
samparsky Dec 9, 2023
30034fa
fixes
samparsky Dec 9, 2023
f513b4a
chore: chunk and parallized compile stage
samparsky Dec 12, 2023
05bb1f6
chore: ignore test file paths
samparsky Dec 12, 2023
bf0edb4
chore: fix comments
samparsky Dec 12, 2023
9c40a8f
chore: fix cargo comments
samparsky Dec 12, 2023
94b78ec
chore: add solc jobs
samparsky Dec 15, 2023
0a84183
fix(git): merge conflicts
samparsky Dec 24, 2023
1089c52
fix: merge conflicts, update traits
samparsky Dec 26, 2023
cb74a7e
fix: test checks; filters
samparsky Dec 26, 2023
f179e94
chore: fix mutatefilterargs debug struct name
samparsky Dec 26, 2023
0bbcfb4
chore: add invariant runs check if > 0
samparsky Dec 26, 2023
3980d42
chore: add fuzz runs check if > 0
samparsky Dec 26, 2023
366898a
chore: make default_out_dir var
samparsky Dec 27, 2023
e323d01
chore: add timeout mutation test result; html exporter
samparsky Dec 27, 2023
b6720c1
chore: add progressreporter and rewrite tests
samparsky Dec 27, 2023
d450b0b
chore: change try_join_all to join_all
samparsky Jan 3, 2024
ecba4c7
mend
samparsky Jan 3, 2024
452f20e
chore: add timeout, parallel, max_timeout_test config params
samparsky Jan 4, 2024
3d3444a
chore: a couple of changes
samparsky Jan 4, 2024
45bc838
chore: refactor parallel, filter
samparsky Jan 5, 2024
dd4117e
chore: remove filter.rs
samparsky Jan 5, 2024
eae28bf
chore: add fuzz runs and seed to config
samparsky Jan 18, 2024
4eb1aa5
chore: add fuzz runs and seed to config for mutant test
samparsky Jan 18, 2024
d34745c
chore: add mutant fuzz config
samparsky Jan 18, 2024
d74ef9e
chore: add get_contract_name to mutator crate
samparsky Jan 25, 2024
eb9f26a
Merge branch 'master' into master
samparsky Aug 17, 2024
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
133 changes: 121 additions & 12 deletions Cargo.lock

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

3 changes: 3 additions & 0 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ members = [
"crates/forge/",
"crates/macros/",
"crates/test-utils/",
"crates/evm/mutator/"
]
resolver = "2"

Expand Down Expand Up @@ -153,6 +154,8 @@ foundry-evm-fuzz = { path = "crates/evm/fuzz" }
foundry-evm-traces = { path = "crates/evm/traces" }
foundry-macros = { path = "crates/macros" }
foundry-test-utils = { path = "crates/test-utils" }

foundry-evm-mutator = { path = "crates/evm/mutator" }
foundry-wallets = { path = "crates/wallets" }
foundry-linking = { path = "crates/linking" }

Expand Down
1 change: 1 addition & 0 deletions crates/common/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,7 @@ tracing.workspace = true
url.workspace = true
walkdir.workspace = true
yansi.workspace = true
indicatif = "0.17"

[dev-dependencies]
foundry-macros.workspace = true
Expand Down
Loading