Closed alyssaoc closed 5 years ago
In a fork , we must first identify the difference between the old chain and the new chain. For each test listed below, we should make sure that all the difference in the hard fork is thoroughly covered (i.e. if we are testing normalization hard fork, we must make claims that triggers normalization after the hard fork)
For Regtest : -Increment past the fork height -Increment past the fork height and decrement it back to before the fork height -Increment past the fork height , and restart it , making sure that it doesn't crash and can keep incrementing blocks
For Testnet / Mainnet: -Check that a fresh node (no blockchain data) can sync up to the hard fork height and after -Check that a node with block chain data before the hard fork height can sync up to the hard fork height and after -Check that a node that has synced past the hard fork height can decrement to back before the hard fork height (by using invalidateblock command)
For the string normalization, I've attached a document with the names that would change (as of 26 Sep 2018). It has about 53k items. The document shows a number of claims of this pattern: ak-WVyroHDWyCk. It's obviously generated data; do we really want to lowercase those? withCaps.txt
I don't think we are actually changing anything to be lowercase, but instead, they will be treated as if all the characters were lowercase in the claimtrie. So it there was another claim (unlikely) at ak-wvyrohdwyck, the one with the highest bid would resolve at ak-wvyrohdwyck or ak-WVyroHDWyCk or AK-WVYROHDWYCK.
Btw @BrannonKing, claims with that pattern are from the YouTube program
The Issue
With the blockchain upstream and normalization changes in the upcoming hard fork, as blockchain developer, I want to identify as many automated and manual tests as possible so that the hard fork does not break anything.
DOD/Acceptance Criteria
Identify all interactions with the blockchain and document Identify and document possible testing scenarios for those interactions
As a goal, we should build a test environment for repeatable testing of future changes