From fafc96aaf4c92feec50074e34a3fc1edc13cab4c Mon Sep 17 00:00:00 2001 From: MacroFake Date: Wed, 5 Oct 2022 16:58:18 +0200 Subject: [PATCH] test: Test year 2106 block timestamps * Use maximum timestamp in getblocktemplate test * Mine block with maximum timestamp and MTP in blockchain test --- test/functional/mining_basic.py | 2 +- test/functional/rpc_blockchain.py | 9 +++++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/test/functional/mining_basic.py b/test/functional/mining_basic.py index 9c64bb1945..ac7eb96ac1 100755 --- a/test/functional/mining_basic.py +++ b/test/functional/mining_basic.py @@ -200,7 +200,7 @@ class MiningTest(BitcoinTestFramework): self.log.info("getblocktemplate: Test bad timestamps") bad_block = copy.deepcopy(block) - bad_block.nTime = 2**31 - 1 + bad_block.nTime = 2**32 - 1 assert_template(node, bad_block, 'time-too-new') assert_submitblock(bad_block, 'time-too-new', 'time-too-new') bad_block.nTime = 0 diff --git a/test/functional/rpc_blockchain.py b/test/functional/rpc_blockchain.py index d07d28879e..80e8fe55a3 100755 --- a/test/functional/rpc_blockchain.py +++ b/test/functional/rpc_blockchain.py @@ -89,6 +89,7 @@ class BlockchainTest(BitcoinTestFramework): self._test_waitforblockheight() self._test_getblock() self._test_getdeploymentinfo() + self._test_y2106() assert self.nodes[0].verifychain(4, 0) def mine_chain(self): @@ -255,6 +256,14 @@ class BlockchainTest(BitcoinTestFramework): # calling with an explicit hash works self.check_signalling_deploymentinfo_result(self.nodes[0].getdeploymentinfo(gbci207["bestblockhash"]), gbci207["blocks"], gbci207["bestblockhash"], "started") + def _test_y2106(self): + self.log.info("Check that block timestamps work until year 2106") + self.generate(self.nodes[0], 8)[-1] + time_2106 = 2**32 - 1 + self.nodes[0].setmocktime(time_2106) + last = self.generate(self.nodes[0], 6)[-1] + assert_equal(self.nodes[0].getblockheader(last)["mediantime"], time_2106) + def _test_getchaintxstats(self): self.log.info("Test getchaintxstats")