Support assert cheatcodes for forge-std 1.8.0 #256
Labels
enhancement
New feature or request
good first issue
Good for newcomers
help wanted
Extra attention is needed
Problem
The behavior of assertions in StdAssertions.sol in forge-std v1.8.0 is changing.
The old behavior is a "soft assert" in solidity, it logs a message and calls
fail()
to mark the test failed, but it otherwise continues.The new behavior is to invoke "native" cheats like
vm.assertTrue(cond)
,vm.assertEqual(left, right)
, etc. These new cheats cause the tests to exit early, which should make traces in failed tests easier to read. Eventually this should result in a nice performance boost too for tests with many asserts, but halmos doesn't support these cheats at the moment.Solution
Implement these cheatcodes:
https://github.com/foundry-rs/forge-std/blob/master/src/Vm.sol#L781-L1209
In halmos:
https://github.com/a16z/halmos/blob/main/src/halmos/cheatcodes.py
We also need to adopt the reverting behavior to benefit from the early exits.
The text was updated successfully, but these errors were encountered: