foundry icon indicating copy to clipboard operation
foundry copied to clipboard

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

Open mds1 opened this issue 2 years ago • 2 comments

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/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

mds1 avatar Feb 27 '23 15:02 mds1