Skip to content

Commit 1973a9e

Browse files
committed
test: fixes p2p_ibd_txrelay wait time
p2p_ibd_txrelay expects no GETDATA to have been received by a peer after announcing a transaction. The reason is that the node is doing IBD, so transaction requests are not replied to. However, the way this is checked is wrong, and the check will pass even if the node **was not** in IBD. This is due to the mocktime not being properly initialized, so the check is always performed earlier than it should, making it impossible for the request to be there
1 parent b432e36 commit 1973a9e

File tree

1 file changed

+3
-1
lines changed

1 file changed

+3
-1
lines changed

test/functional/p2p_ibd_txrelay.py

+3-1
Original file line numberDiff line numberDiff line change
@@ -47,12 +47,14 @@ def run_test(self):
4747
assert node.getblockchaininfo()['initialblockdownload']
4848
self.wait_until(lambda: all(peer['minfeefilter'] == MAX_FEE_FILTER for peer in node.getpeerinfo()))
4949

50+
self.nodes[0].setmocktime(int(time.time()))
51+
5052
self.log.info("Check that nodes don't send getdatas for transactions while still in IBD")
5153
peer_inver = self.nodes[0].add_p2p_connection(P2PDataStore())
5254
txid = 0xdeadbeef
5355
peer_inver.send_and_ping(msg_inv([CInv(t=MSG_WTX, h=txid)]))
5456
# The node should not send a getdata, but if it did, it would first delay 2 seconds
55-
self.nodes[0].setmocktime(int(time.time() + NONPREF_PEER_TX_DELAY))
57+
self.nodes[0].bumpmocktime(NONPREF_PEER_TX_DELAY)
5658
peer_inver.sync_with_ping()
5759
with p2p_lock:
5860
assert txid not in peer_inver.getdata_requests

0 commit comments

Comments
 (0)