foundry-rs / foundry-rs/foundry

meta(invariants): tracking issue for improvements to invariant testing

Open
#4,438 2 comments 0 reactions 0 assignees View on GitHub
A-testing C-forge Cmd-forge-test T-meta
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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.