@@ -22,23 +22,24 @@ def set_test_params(self):
2222 self .setup_clean_chain = True
2323 self .num_nodes = 2
2424
25- def test_maxtipage (self , maxtipage , set_parameter = True ):
25+ def test_maxtipage (self , maxtipage , set_parameter = True , test_deltas = True ):
2626 node_miner = self .nodes [0 ]
2727 node_ibd = self .nodes [1 ]
2828
2929 self .restart_node (1 , [f'-maxtipage={ maxtipage } ' ] if set_parameter else None )
3030 self .connect_nodes (0 , 1 )
31-
32- # tips older than maximum age -> stay in IBD
3331 cur_time = int (time .time ())
34- node_ibd .setmocktime (cur_time )
35- for delta in [5 , 4 , 3 , 2 , 1 ]:
36- node_miner .setmocktime (cur_time - maxtipage - delta )
37- self .generate (node_miner , 1 )
38- assert_equal (node_ibd .getblockchaininfo ()['initialblockdownload' ], True )
32+
33+ if test_deltas :
34+ # tips older than maximum age -> stay in IBD
35+ node_ibd .setmocktime (cur_time )
36+ for delta in [5 , 4 , 3 , 2 , 1 ]:
37+ node_miner .setmocktime (cur_time - maxtipage - delta )
38+ self .generate (node_miner , 1 )
39+ assert_equal (node_ibd .getblockchaininfo ()['initialblockdownload' ], True )
3940
4041 # tip within maximum age -> leave IBD
41- node_miner .setmocktime (cur_time - maxtipage )
42+ node_miner .setmocktime (max ( cur_time - maxtipage , 0 ) )
4243 self .generate (node_miner , 1 )
4344 assert_equal (node_ibd .getblockchaininfo ()['initialblockdownload' ], False )
4445
@@ -51,6 +52,10 @@ def run_test(self):
5152 self .log .info (f"Test IBD with maximum tip age of { hours } hours (-maxtipage={ maxtipage } )." )
5253 self .test_maxtipage (maxtipage )
5354
55+ max_long_val = 9223372036854775807
56+ self .log .info (f"Test IBD with highest allowable maximum tip age ({ max_long_val } )." )
57+ self .test_maxtipage (max_long_val , test_deltas = False )
58+
5459
5560if __name__ == '__main__' :
5661 MaxTipAgeTest ().main ()
0 commit comments