foundry-rs / foundry-rs/foundry
meta(invariants): tracking issue for improvements to invariant testing
- Dominant language
- Rust
- Stars
- 10.6k
- Forks
- 2.6k
- Avg merge
- 18h 20m
- Merged PRs (30d)
- 510
Description
### Component
Forge
### Describe the feature you would like
This issue tracks invariant-testing specific improvements. General fuzzer improvements are in #4433.
Items are roughly ordered by my opinion of priority, both at the header-level and the bullet-level. I say "roughly ordered" because some items are much bigger scope than others so having a strict ordering doesn't make much sense.
## High Priority
These would all give a big improvement to invariant testing UX and performance, and should not be too hard to implement
### UX/Features
- https://github.com/foundry-rs/foundry/issues/9727
- https://github.com/foundry-rs/foundry/issues/3005
- https://github.com/foundry-rs/foundry/issues/4718
- https://github.com/foundry-rs/foundry/issues/2985
- https://github.com/foundry-rs/foundry/issues/2986
- https://github.com/foundry-rs/foundry/issues/4352
### Bugs
- https://github.com/foundry-rs/foundry/issues/2962
- https://github.com/foundry-rs/foundry/issues/4178
- https://github.com/foundry-rs/foundry/issues/4287
- https://github.com/foundry-rs/foundry/issues/4163
- https://github.com/foundry-rs/foundry/issues/4381
- https://github.com/foundry-rs/foundry/issues/4245
### Misc
- https://github.com/foundry-rs/foundry/issues/4162 — The terms we use are misleading so this worth clarifying / maybe renaming things a bit
## Medium Priority
- https://github.com/foundry-rs/foundry/issues/4951
- https://github.com/foundry-rs/foundry/issues/585
- https://github.com/foundry-rs/foundry/issues/4190
- https://github.com/foundry-rs/foundry/issues/1578 — More thought is needed around how to detect reentrancy issues, so this one is likely more work than all of the above, but it could be very useful. Related is https://github.com/foundry-rs/foundry/issues/4245
## Low Priority
- https://github.com/foundry-rs/foundry/issues/4834
- https://github.com/foundry-rs/foundry/issues/4300 — Listed as low because you can replicate this by calling functions at the end of each test
- https://github.com/foundry-rs/foundry/issues/3452 — Needs more thought, but could be powerful
- https://github.com/foundry-rs/foundry/issues/3607 — An `invariantCallSummary` test and similar approaches are decent workarounds, though this still would be valuable
### Additional context
_No response_
Contributor guide
Assessment
This issue has not been assessed yet.