test(dursto): add long-running Registry test#1121
Draft
victor-dumitrescu wants to merge 9 commits into
Draft
Conversation
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## vdum/tzx-178 #1121 +/- ##
===============================================
Coverage ? 89.85%
===============================================
Files ? 143
Lines ? 30146
Branches ? 30146
===============================================
Hits ? 27087
Misses ? 2181
Partials ? 878 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
124ae77 to
768b7ab
Compare
195afda to
737aad6
Compare
768b7ab to
1d80c95
Compare
737aad6 to
a20db0b
Compare
1d80c95 to
31e6453
Compare
a20db0b to
3da33a3
Compare
This file contains hidden or 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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Closes TZX-180.
What
The Registry long test is structured similarly to the Database long test: it is based on running a number of independent "test epochs" (property-based test cases) on top of a base, which is advanced after each epoch. When a test case fails, the failure artifact can be persisted so that only the failing epoch needs to be replayed to reproduce it.
Specifically in the case of the Registry long tests:
--keep-stable-sizemode adjusts the probabilities of sampling registry grow and shrink operations so that the size of the registry tends towards2 * permanent(as opposed to equal probabilities which yield an ever growing registry). This resembles more closely the way in which Etherlink/Tezos X is expected to use the NDS.--keep-epochsoption requires a slightly more complicated snapshot pruning approach compared to the Database tests.For now, a 10-minute run of the Registry long test is added to PR CI. Next:
Why
To gain a higher degree of confidence in the correctness and consistency of the durable storage.
How
Most of the large diff of this PR comes from the first 2 commits (notably from moves in the first commit):
long_test/harness.rsand database-specific ones tolong_test/database/*BasebecomesBase<LongTestModel>to enable sharingpooled_key_strategy) for claritylong_test/registry/*databaseandregistrysubcommands to the long test binaryThe other 4 commits should hopefully be more self-explanatory.
Manually Testing
Tasks for the Author