testing: fix consensus version inconsistency in newTestLedger #5342
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
While updating a test that uses
newTestLedger
(formerly known as OpenLedger; a previous version returned a real*Ledger
until #2983 changed it to return a mock type*evalTestLedger
), I noticed some inconsistency in the consensus version used bynewTestLedger
where MakeGenesisBlock() is called to use vFuture but later sets evalTestLedger.genesisProto = vCurrent. So this means the evaluator and the blocks it generates after genesis will all use vFuture, but calls to Ledger.GenesisProto() will return vCurrent.Test Plan
Existing tests should pass; I didn't see any tests fail when I changed this, which is good because it means no tests were relying on this inconsistent mock ledger behavior.
Future work
Future work might include support for passing a custom consensus version to
newTestLedger
, or replacing its usage everywhere with a real*Ledger
-based replacement.