Skip to content

Conversation

@daejunpark
Copy link
Collaborator

@daejunpark daejunpark commented Jul 29, 2025

Fixes #13

Changes:

  • Introduced _skipRoundTripShares flag: Skip shares inequality assertions in round trip tests when set to true
  • Added asset balance check via checkNoFreeProfit modifier

Why?
Some vault implementations have specific behaviors that cause shares comparison assertions to fail, even though the vault is otherwise correct. This flag allows testing such vaults while still preventing free profit extraction.

@daejunpark daejunpark marked this pull request as ready for review July 29, 2025 00:56
@daejunpark daejunpark changed the title feat: round-trip properties to assert on assets, not shares feat: optional shares validation for round trip properties Jul 29, 2025
@daejunpark
Copy link
Collaborator Author

daejunpark commented Jul 29, 2025

@aviggiano what do you think?

also, if this works with your tests, we can add them to ci so that future changes don't break them.

@aviggiano
Copy link

Good! Thanks

@daejunpark daejunpark merged commit ac48546 into main Jul 29, 2025
5 checks passed
@daejunpark daejunpark deleted the fix/issue-13 branch July 29, 2025 21:02
pcaversaccio added a commit to pcaversaccio/snekmate that referenced this pull request Aug 4, 2025
### 🕓 Changelog

The test library
[`erc4626-tests`](https://github.com/a16z/erc4626-tests) introduced the
`_skipRoundTripShares` flag in PR
[a16z/erc4626-tests#15](a16z/erc4626-tests#15).
When set to `true`, it skips the shares inequality assertions in
round‑trip tests. The default value is `false`, but since we favour
explicitness, we explicitly set `_skipRoundTripShares = false` in the
`ERC4626VaultTest` test `setUp` function. Furthermore, this commit pins
[`forge-std`](https://github.com/foundry-rs/forge-std) to commit
[`369dd01c808c255765b074c12aa420da33947a65`](foundry-rs/forge-std@369dd01)
to temporarily prevent CI test failures in the nightly
[`halmos`](https://github.com/a16z/halmos)-based tests (see
[foundry-rs/forge-std#705](foundry-rs/forge-std#705)).

---------

Signed-off-by: Pascal Marco Caversaccio <pascal.caversaccio@hotmail.ch>
willbrown84 added a commit to willbrown84/snekmate that referenced this pull request Sep 23, 2025
### 🕓 Changelog

The test library
[`erc4626-tests`](https://github.com/a16z/erc4626-tests) introduced the
`_skipRoundTripShares` flag in PR
[a16z/erc4626-tests#15](a16z/erc4626-tests#15).
When set to `true`, it skips the shares inequality assertions in
round‑trip tests. The default value is `false`, but since we favour
explicitness, we explicitly set `_skipRoundTripShares = false` in the
`ERC4626VaultTest` test `setUp` function. Furthermore, this commit pins
[`forge-std`](https://github.com/foundry-rs/forge-std) to commit
[`369dd01c808c255765b074c12aa420da33947a65`](foundry-rs/forge-std@369dd01)
to temporarily prevent CI test failures in the nightly
[`halmos`](https://github.com/a16z/halmos)-based tests (see
[foundry-rs/forge-std#705](foundry-rs/forge-std#705)).

---------

Signed-off-by: Pascal Marco Caversaccio <pascal.caversaccio@hotmail.ch>
void-rider5560p added a commit to void-rider5560p/snekmate that referenced this pull request Sep 28, 2025
### 🕓 Changelog

The test library
[`erc4626-tests`](https://github.com/a16z/erc4626-tests) introduced the
`_skipRoundTripShares` flag in PR
[a16z/erc4626-tests#15](a16z/erc4626-tests#15).
When set to `true`, it skips the shares inequality assertions in
round‑trip tests. The default value is `false`, but since we favour
explicitness, we explicitly set `_skipRoundTripShares = false` in the
`ERC4626VaultTest` test `setUp` function. Furthermore, this commit pins
[`forge-std`](https://github.com/foundry-rs/forge-std) to commit
[`369dd01c808c255765b074c12aa420da33947a65`](foundry-rs/forge-std@369dd01)
to temporarily prevent CI test failures in the nightly
[`halmos`](https://github.com/a16z/halmos)-based tests (see
[foundry-rs/forge-std#705](foundry-rs/forge-std#705)).

---------

Signed-off-by: Pascal Marco Caversaccio <pascal.caversaccio@hotmail.ch>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Questioning "shares roundtrip" properties

3 participants