Skip to content

Commit d3b5eac

Browse files
author
Antoine Riard
committed
Add mutation for functional test test_preferred_inv
Add a booelan arg to test_preferred_inv to cover NONPREF_PEER_TX_DELAY as applied as a TxRequestTracker parameter in AddTxAnnouncement.
1 parent 06efb31 commit d3b5eac

File tree

1 file changed

+18
-6
lines changed

1 file changed

+18
-6
lines changed

test/functional/p2p_tx_download.py

Lines changed: 18 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@ def on_getdata(self, message):
4747
OVERLOADED_PEER_DELAY = 2 # seconds
4848
MAX_GETDATA_IN_FLIGHT = 100
4949
MAX_PEER_TX_ANNOUNCEMENTS = 5000
50+
NONPREF_PEER_TX_DELAY = 2
5051

5152
# Python test constants
5253
NUM_INBOUND = 10
@@ -207,14 +208,24 @@ def test_notfound_fallback(self):
207208
with p2p_lock:
208209
assert_equal(peer_fallback.tx_getdata_count, 1)
209210

210-
def test_preferred_inv(self):
211-
self.log.info('Check that invs from preferred peers are downloaded immediately')
212-
self.restart_node(0, extra_args=['[email protected]'])
211+
def test_preferred_inv(self, preferred=False):
212+
if preferred:
213+
self.log.info('Check invs from preferred peers are downloaded immediately')
214+
self.restart_node(0, extra_args=['[email protected]'])
215+
else:
216+
self.log.info('Check invs from non-preferred peers are downloaded after {} s'.format(NONPREF_PEER_TX_DELAY))
217+
mock_time = int(time.time() + 1)
218+
self.nodes[0].setmocktime(mock_time)
213219
peer = self.nodes[0].add_p2p_connection(TestP2PConn())
214220
peer.send_message(msg_inv([CInv(t=MSG_WTX, h=0xff00ff00)]))
215-
peer.wait_until(lambda: peer.tx_getdata_count >= 1, timeout=1)
216-
with p2p_lock:
217-
assert_equal(peer.tx_getdata_count, 1)
221+
peer.sync_with_ping()
222+
if preferred:
223+
peer.wait_until(lambda: peer.tx_getdata_count >= 1, timeout=1)
224+
else:
225+
with p2p_lock:
226+
assert_equal(peer.tx_getdata_count, 0)
227+
self.nodes[0].setmocktime(mock_time + NONPREF_PEER_TX_DELAY)
228+
peer.wait_until(lambda: peer.tx_getdata_count >= 1, timeout=1)
218229

219230
def test_txid_inv_delay(self, glob_wtxid=False):
220231
self.log.info('Check that inv from a txid-relay peers are delayed by {} s, with a wtxid peer {}'.format(TXID_RELAY_DELAY, glob_wtxid))
@@ -261,6 +272,7 @@ def run_test(self):
261272
self.test_disconnect_fallback()
262273
self.test_notfound_fallback()
263274
self.test_preferred_inv()
275+
self.test_preferred_inv(True)
264276
self.test_txid_inv_delay()
265277
self.test_txid_inv_delay(True)
266278
self.test_large_inv_batch()

0 commit comments

Comments
 (0)