-
Notifications
You must be signed in to change notification settings - Fork 271
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge bitcoin/bitcoin#30906: refactor: prohibit direct flags access i…
…n CCoinsCacheEntry and remove invalid tests 50cce20 test, refactor: Compact ccoins_access and ccoins_spend (Lőrinc) 0a159f0 test, refactor: Remove remaining unbounded flags from coins_tests (Lőrinc) c0b4b2c test: Validate error messages on fail (Lőrinc) d5f8d60 test: Group values and states in tests into CoinEntry wrappers (Lőrinc) ca74aa7 test, refactor: Migrate GetCoinsMapEntry to return MaybeCoin (Lőrinc) 15aaa81 coins, refactor: Remove direct GetFlags access (Lőrinc) 6b73369 coins, refactor: Assume state after SetClean in AddFlags to prevent dangling pointers (Lőrinc) fc8c282 coins, refactor: Make AddFlags, SetDirty, SetFresh static (Lőrinc) cd0498e coins, refactor: Split up AddFlags to remove invalid states (Lőrinc) Pull request description: Similarly to bitcoin/bitcoin#30849, this cleanup is intended to de-risk bitcoin/bitcoin#30673 (comment) by simplifying the coin cache public interface. `CCoinsCacheEntry` provided general access to its internal flags state, even though, in reality, it could only be `clean`, `fresh`, `dirty`, or `fresh|dirty` (in the follow-up, we will remove `fresh` without `dirty`). Once it was marked as `dirty`, we couldn’t set the state back to clean with `AddFlags(0)`—tests explicitly checked against that. This PR refines the public interface to make this distinction clearer and to make invalid behavior impossible, rather than just checked by tests. We don't need extensive access to the internals of `CCoinsCacheEntry`, as many tests were simply validating invalid combinations in this way. The last few commits contain significant test refactorings to make `coins_tests` easier to change in follow-ups. ACKs for top commit: andrewtoth: Code Review ACK 50cce20 laanwj: Code review ACK 50cce20 ryanofsky: Code review ACK 50cce20. Looks good! Thanks for the followups. Tree-SHA512: c0d65f1c7680b4bb9cd368422b218f2473c2ec75a32c7350a6e11e8a1601c81d3c0ae651b9f1dae08400fb4e5d43431d9e4ccca305a718183f9a936fe47c1a6c
- Loading branch information
Showing
5 changed files
with
300 additions
and
366 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.