Paul Berg
Paul Berg
You might also want to refactor your tests to use @mds1's [test naming convention](https://twitter.com/paulrberg/status/1616068157088714765?s=46&t=ENkNXVHfiFNrK4yJomEHgg) so that you can use filtering regexes.
No worries. The benefit of using a community-wide naming standard is that linting tools can be built on top of, e.g. [ScopeLint](https://github.com/ScopeLift/scopelint).
Can confirm that this is a big pain when testing invariants. What is the fix until this issue gets fixed? Exclude all known contracts with [`excludeSender`](https://github.com/foundry-rs/forge-std/blob/0aa99eb8456693c015350c5e6c4f442ebe912f77/src/InvariantTest.sol#L30)? **Update**: the solution is...
Looks like #4181 has been merged. Should this issue be closed now? **Update**: no, we shouldn't close this issue just yet. I updated Forge via `foundryup` and removed my `targetSender`...
@mattsse looks like this is fixed now. I updated via `foundryup` recently, removed my `targetSender` call, and my invariant tests passed.
One downside to @emilianobonassi's solution is that it fudges the gas reports. Extra gas has to be spent on pushing the entries in the storage array. Unfortunately I can't think...
Deleting the array doesn't reduce the gas cost significantly (due to EIP-3529). Transient storage will be great when it is finally available. Interesting idea with the smoketest but it wouldn't...
Big brain idea.
Just bumped into another limitation of the `parametrizedTest` modifier solution proposed above - it doesn't work for tests that expect reverts! ```solidity function testTableSums() public parametrizedTest { vm.expectRevert(); callSomeFunction(c.a, c.b);...