From a546caffc92da33dea067c0d063ea88c83a6501b Mon Sep 17 00:00:00 2001 From: Kris Nuttycombe Date: Thu, 7 May 2020 16:34:44 -0600 Subject: [PATCH 1/2] Add baseline for golden testing across network upgrade boundaries. --- qa/pull-tester/rpc-tests.sh | 1 + qa/rpc-tests/golden/blossom.tar.gz | Bin 0 -> 47555 bytes qa/rpc-tests/test_framework/mininode.py | 3 +- qa/rpc-tests/test_framework/test_framework.py | 2 +- qa/rpc-tests/upgrade_golden.py | 79 ++++++++++++++++++ 5 files changed, 83 insertions(+), 2 deletions(-) create mode 100644 qa/rpc-tests/golden/blossom.tar.gz create mode 100755 qa/rpc-tests/upgrade_golden.py diff --git a/qa/pull-tester/rpc-tests.sh b/qa/pull-tester/rpc-tests.sh index d4f628428..33cd7aa59 100755 --- a/qa/pull-tester/rpc-tests.sh +++ b/qa/pull-tester/rpc-tests.sh @@ -81,6 +81,7 @@ testScripts=( 'shorter_block_times.py' 'sprout_sapling_migration.py' 'turnstile.py' + 'upgrade_golden.py' ); testScriptsExt=( 'getblocktemplate_longpoll.py' diff --git a/qa/rpc-tests/golden/blossom.tar.gz b/qa/rpc-tests/golden/blossom.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..feaad9438cd12bcb7c1ab0651d6f7278b5bf89c3 GIT binary patch literal 47555 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 M0gLbI!vMe$0ra#A+yDRo literal 0 HcmV?d00001 diff --git a/qa/rpc-tests/test_framework/mininode.py b/qa/rpc-tests/test_framework/mininode.py index ee323c580..ab4db43ad 100755 --- a/qa/rpc-tests/test_framework/mininode.py +++ b/qa/rpc-tests/test_framework/mininode.py @@ -79,10 +79,11 @@ mininode_lock = RLock() def sha256(s): return hashlib.new('sha256', s).digest() - def hash256(s): return sha256(sha256(s)) +def nuparams(branch_id, height): + return '-nuparams=%x:%d' % (branch_id, height) def deser_string(f): nit = struct.unpack(" Date: Thu, 7 May 2020 19:12:24 -0600 Subject: [PATCH 2/2] Update golden test for heartwood network upgrade. --- qa/rpc-tests/golden/heartwood.tar.gz | Bin 0 -> 55861 bytes qa/rpc-tests/upgrade_golden.py | 15 +++++++++++---- 2 files changed, 11 insertions(+), 4 deletions(-) create mode 100644 qa/rpc-tests/golden/heartwood.tar.gz diff --git a/qa/rpc-tests/golden/heartwood.tar.gz b/qa/rpc-tests/golden/heartwood.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..56173ae826b0eec15799434750009beef5c76c9b GIT binary patch literal 55861 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 P!u_IjZuk=0jm!T7=YQ^} literal 0 HcmV?d00001 diff --git a/qa/rpc-tests/upgrade_golden.py b/qa/rpc-tests/upgrade_golden.py index 6bc8382f4..3da4109df 100755 --- a/qa/rpc-tests/upgrade_golden.py +++ b/qa/rpc-tests/upgrade_golden.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # # Copyright (c) 2020 The Zcash developers # Distributed under the MIT software license, see the accompanying @@ -10,7 +10,7 @@ from test_framework.util import (assert_equal, assert_true, bitcoind_processes) from test_framework.mininode import ( nuparams, - OVERWINTER_BRANCH_ID, SAPLING_BRANCH_ID, BLOSSOM_BRANCH_ID) #, HEARTWOOD_BRANCH_ID) + OVERWINTER_BRANCH_ID, SAPLING_BRANCH_ID, BLOSSOM_BRANCH_ID, HEARTWOOD_BRANCH_ID) import re import logging @@ -19,7 +19,7 @@ import os.path HAS_SAPLING = [nuparams(OVERWINTER_BRANCH_ID, 10), nuparams(SAPLING_BRANCH_ID, 20)] HAS_BLOSSOM = HAS_SAPLING + [nuparams(BLOSSOM_BRANCH_ID, 30)] -#HAS_HEARTWOOD = HAS_BLOSSOM + [nuparams(HEARTWOOD_BRANCH_ID, 40)] +HAS_HEARTWOOD = HAS_BLOSSOM + [nuparams(HEARTWOOD_BRANCH_ID, 40)] class Upgrade(): def __init__(self, h, p, a): @@ -30,6 +30,7 @@ class Upgrade(): class UpgradeGoldenTest(BitcoinTestFramework): def setup_chain(self): self.upgrades = [ Upgrade(35, os.path.dirname(os.path.realpath(__file__))+"/golden/blossom.tar.gz", HAS_BLOSSOM) + , Upgrade(45, os.path.dirname(os.path.realpath(__file__))+"/golden/heartwood.tar.gz", HAS_HEARTWOOD) ] logging.info("Initializing test directory "+self.options.tmpdir) @@ -72,7 +73,13 @@ class UpgradeGoldenTest(BitcoinTestFramework): # Upgrade each node to the latest network version. If any fails to # start, this will fail the test. - self.nodes[i] = start_node(i, self.options.tmpdir, extra_args=last_upgrade.extra_args) + try: + self.nodes[i] = start_node(i, self.options.tmpdir, extra_args=last_upgrade.extra_args) + except: + logging.error("An error occurred attempting to start node "+str(i)) + raise + + if __name__ == '__main__': UpgradeGoldenTest().main()