1111from test_framework .test_framework import BitcoinTestFramework
1212from test_framework .util import assert_equal
1313
14+
1415class ResendWalletTransactionsTest (BitcoinTestFramework ):
1516 def set_test_params (self ):
1617 self .num_nodes = 1
@@ -27,10 +28,10 @@ def run_test(self):
2728 txid = node .sendtoaddress (node .getnewaddress (), 1 )
2829
2930 # Wallet rebroadcast is first scheduled 1 sec after startup (see
30- # nNextResend in ResendWalletTransactions()). Sleep for just over a
31- # second to be certain that it has been called before the first
31+ # nNextResend in ResendWalletTransactions()). Tell scheduler to call
32+ # MaybeResendWalletTxn now to initialize nNextResend before the first
3233 # setmocktime call below.
33- time . sleep ( 1. 1 )
34+ node . mockscheduler ( 1 )
3435
3536 # Can take a few seconds due to transaction trickling
3637 peer_first .wait_for_broadcast ([txid ])
@@ -57,15 +58,16 @@ def run_test(self):
5758 twelve_hrs = 12 * 60 * 60
5859 two_min = 2 * 60
5960 node .setmocktime (now + twelve_hrs - two_min )
60- time . sleep ( 2 ) # ensure enough time has passed for rebroadcast attempt to occur
61+ node . mockscheduler ( 1 ) # Tell scheduler to call MaybeResendWalletTxn now
6162 assert_equal (int (txid , 16 ) in peer_second .get_invs (), False )
6263
6364 self .log .info ("Bump time & check that transaction is rebroadcast" )
6465 # Transaction should be rebroadcast approximately 24 hours in the future,
6566 # but can range from 12-36. So bump 36 hours to be sure.
66- node .setmocktime (now + 36 * 60 * 60 )
67- # Tell scheduler to call MaybeResendWalletTxn now.
68- node .mockscheduler (1 )
67+ with node .assert_debug_log (['ResendWalletTransactions: resubmit 1 unconfirmed transactions' ]):
68+ node .setmocktime (now + 36 * 60 * 60 )
69+ # Tell scheduler to call MaybeResendWalletTxn now.
70+ node .mockscheduler (1 )
6971 # Give some time for trickle to occur
7072 node .setmocktime (now + 36 * 60 * 60 + 600 )
7173 peer_second .wait_for_broadcast ([txid ])
0 commit comments