From a546caffc92da33dea067c0d063ea88c83a6501b Mon Sep 17 00:00:00 2001 From: Kris Nuttycombe Date: Thu, 7 May 2020 16:34:44 -0600 Subject: [PATCH] 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("