mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-02-02 09:46:52 -05:00
test: Speed up wallet_resendwallettransactions test with mockscheduler RPC
This commit is contained in:
parent
ec0453cd57
commit
fa299ac273
1 changed files with 9 additions and 7 deletions
|
@ -11,6 +11,7 @@ from test_framework.p2p import P2PTxInvStore
|
|||
from test_framework.test_framework import BitcoinTestFramework
|
||||
from test_framework.util import assert_equal
|
||||
|
||||
|
||||
class ResendWalletTransactionsTest(BitcoinTestFramework):
|
||||
def set_test_params(self):
|
||||
self.num_nodes = 1
|
||||
|
@ -27,10 +28,10 @@ class ResendWalletTransactionsTest(BitcoinTestFramework):
|
|||
txid = node.sendtoaddress(node.getnewaddress(), 1)
|
||||
|
||||
# Wallet rebroadcast is first scheduled 1 sec after startup (see
|
||||
# nNextResend in ResendWalletTransactions()). Sleep for just over a
|
||||
# second to be certain that it has been called before the first
|
||||
# nNextResend in ResendWalletTransactions()). Tell scheduler to call
|
||||
# MaybeResendWalletTxn now to initialize nNextResend before the first
|
||||
# setmocktime call below.
|
||||
time.sleep(1.1)
|
||||
node.mockscheduler(1)
|
||||
|
||||
# Can take a few seconds due to transaction trickling
|
||||
peer_first.wait_for_broadcast([txid])
|
||||
|
@ -57,15 +58,16 @@ class ResendWalletTransactionsTest(BitcoinTestFramework):
|
|||
twelve_hrs = 12 * 60 * 60
|
||||
two_min = 2 * 60
|
||||
node.setmocktime(now + twelve_hrs - two_min)
|
||||
time.sleep(2) # ensure enough time has passed for rebroadcast attempt to occur
|
||||
node.mockscheduler(1) # Tell scheduler to call MaybeResendWalletTxn now
|
||||
assert_equal(int(txid, 16) in peer_second.get_invs(), False)
|
||||
|
||||
self.log.info("Bump time & check that transaction is rebroadcast")
|
||||
# Transaction should be rebroadcast approximately 24 hours in the future,
|
||||
# but can range from 12-36. So bump 36 hours to be sure.
|
||||
node.setmocktime(now + 36 * 60 * 60)
|
||||
# Tell scheduler to call MaybeResendWalletTxn now.
|
||||
node.mockscheduler(1)
|
||||
with node.assert_debug_log(['ResendWalletTransactions: resubmit 1 unconfirmed transactions']):
|
||||
node.setmocktime(now + 36 * 60 * 60)
|
||||
# Tell scheduler to call MaybeResendWalletTxn now.
|
||||
node.mockscheduler(1)
|
||||
# Give some time for trickle to occur
|
||||
node.setmocktime(now + 36 * 60 * 60 + 600)
|
||||
peer_second.wait_for_broadcast([txid])
|
||||
|
|
Loading…
Add table
Reference in a new issue