0
0
Fork 0
mirror of https://github.com/bitcoin/bitcoin.git synced 2025-03-06 14:19:59 -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:
    tACK 2706c5b
  Prabhat1308:
    tACK [2706c5b](2706c5b7c8)

Tree-SHA512: 561fe3d67282c67e1ed7dd5eeb137964c083d498534ea5f749f3d782e73a3f47d23faee6cca39866eaba770fda7b7d60a9f740f16bdb451d6a5e9105417cb158
This commit is contained in:
glozow 2025-02-07 11:28:16 -05:00
commit fb0ada982a
No known key found for this signature in database
GPG key ID: BA03F4DBE0C63FB4

View file

@ -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))