mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-03-05 14:06:27 -05:00
Merge bitcoin/bitcoin#31811: test: test_inv_block, use mocktime instead of waiting
2706c5b7c8
test: test_inv_block, use mocktime instead of waiting (Greg Sanders) Pull request description: Performance issue reported in https://github.com/bitcoin/bitcoin/pull/31437#issuecomment-2640221382 It seems that code as-is waits for wall-clock time to pass to synchronize mempools. Locally, sometimes the subtest takes a couple seconds, sometimes it takes an additional minute. Just use mocktime? ACKs for top commit: sr-gi: tACK [2706c5b
](2706c5b7c8
) rishkwal: tACK2706c5b
Prabhat1308: tACK [2706c5b
](2706c5b7c8
) Tree-SHA512: 561fe3d67282c67e1ed7dd5eeb137964c083d498534ea5f749f3d782e73a3f47d23faee6cca39866eaba770fda7b7d60a9f740f16bdb451d6a5e9105417cb158
This commit is contained in:
commit
fb0ada982a
1 changed files with 6 additions and 1 deletions
|
@ -105,6 +105,8 @@ class TxDownloadTest(BitcoinTestFramework):
|
|||
tx = self.wallet.create_self_transfer()
|
||||
wtxid = int(tx['wtxid'], 16)
|
||||
|
||||
self.nodes[0].setmocktime(int(time.time()))
|
||||
|
||||
self.log.info(
|
||||
"Announce the transaction to all nodes from all {} incoming peers, but never send it".format(NUM_INBOUND))
|
||||
msg = msg_inv([CInv(t=MSG_WTX, h=wtxid)])
|
||||
|
@ -125,7 +127,10 @@ class TxDownloadTest(BitcoinTestFramework):
|
|||
assert self.nodes[1].getpeerinfo()[0]['inbound'] == False
|
||||
timeout = 2 + INBOUND_PEER_TX_DELAY + GETDATA_TX_INTERVAL
|
||||
self.log.info("Tx should be received at node 1 after {} seconds".format(timeout))
|
||||
self.sync_mempools(timeout=timeout)
|
||||
self.nodes[0].bumpmocktime(timeout)
|
||||
self.sync_mempools()
|
||||
|
||||
self.nodes[0].setmocktime(0)
|
||||
|
||||
def test_in_flight_max(self):
|
||||
self.log.info("Test that we don't load peers with more than {} transaction requests immediately".format(MAX_GETDATA_IN_FLIGHT))
|
||||
|
|
Loading…
Add table
Reference in a new issue