mirror of
https://github.com/dashpay/dash.git
synced 2024-12-26 12:32:48 +01:00
merge bitcoin#21785: Fix intermittent issue in p2p_addr_relay.py
This commit is contained in:
parent
6d27db58d1
commit
03ab144b8f
@ -78,7 +78,7 @@ class AddrTest(BitcoinTestFramework):
|
|||||||
# pop m_next_addr_send timer
|
# pop m_next_addr_send timer
|
||||||
self.bump_mocktime(5 * 60)
|
self.bump_mocktime(5 * 60)
|
||||||
for peer in receivers:
|
for peer in receivers:
|
||||||
peer.sync_with_ping()
|
peer.sync_send_with_ping()
|
||||||
|
|
||||||
def oversized_addr_test(self):
|
def oversized_addr_test(self):
|
||||||
self.log.info('Send an addr message that is too large')
|
self.log.info('Send an addr message that is too large')
|
||||||
@ -197,9 +197,7 @@ class AddrTest(BitcoinTestFramework):
|
|||||||
self.log.info('Check that we relay address messages')
|
self.log.info('Check that we relay address messages')
|
||||||
addr_source = self.nodes[0].add_p2p_connection(P2PInterface())
|
addr_source = self.nodes[0].add_p2p_connection(P2PInterface())
|
||||||
msg = self.setup_addr_msg(2)
|
msg = self.setup_addr_msg(2)
|
||||||
addr_source.send_and_ping(msg)
|
self.send_addr_msg(addr_source, msg, [full_outbound_peer])
|
||||||
self.bump_mocktime(5 * 60)
|
|
||||||
full_outbound_peer.sync_with_ping()
|
|
||||||
assert_equal(full_outbound_peer.num_ipv4_received, 2)
|
assert_equal(full_outbound_peer.num_ipv4_received, 2)
|
||||||
|
|
||||||
self.nodes[0].disconnect_p2ps()
|
self.nodes[0].disconnect_p2ps()
|
||||||
|
@ -90,11 +90,7 @@ class P2PBlocksOnly(BitcoinTestFramework):
|
|||||||
# Bump time forward to ensure nNextInvSend timer pops
|
# Bump time forward to ensure nNextInvSend timer pops
|
||||||
self.nodes[0].setmocktime(int(time.time()) + 60)
|
self.nodes[0].setmocktime(int(time.time()) + 60)
|
||||||
|
|
||||||
# Calling sync_with_ping twice requires that the node calls
|
conn.sync_send_with_ping()
|
||||||
# `ProcessMessage` twice, and thus ensures `SendMessages` must have
|
|
||||||
# been called at least once
|
|
||||||
conn.sync_with_ping()
|
|
||||||
conn.sync_with_ping()
|
|
||||||
assert(int(txid, 16) not in conn.get_invs())
|
assert(int(txid, 16) not in conn.get_invs())
|
||||||
|
|
||||||
def check_p2p_tx_violation(self, index=1):
|
def check_p2p_tx_violation(self, index=1):
|
||||||
|
@ -168,8 +168,7 @@ class FilterTest(BitcoinTestFramework):
|
|||||||
filter_peer.merkleblock_received = False
|
filter_peer.merkleblock_received = False
|
||||||
filter_peer.tx_received = False
|
filter_peer.tx_received = False
|
||||||
self.nodes[0].sendtoaddress(self.nodes[0].getnewaddress(), 90)
|
self.nodes[0].sendtoaddress(self.nodes[0].getnewaddress(), 90)
|
||||||
filter_peer.sync_with_ping()
|
filter_peer.sync_send_with_ping()
|
||||||
filter_peer.sync_with_ping()
|
|
||||||
assert not filter_peer.merkleblock_received
|
assert not filter_peer.merkleblock_received
|
||||||
assert not filter_peer.tx_received
|
assert not filter_peer.tx_received
|
||||||
|
|
||||||
|
@ -577,8 +577,16 @@ class P2PInterface(P2PConnection):
|
|||||||
self.send_message(message)
|
self.send_message(message)
|
||||||
self.sync_with_ping(timeout=timeout)
|
self.sync_with_ping(timeout=timeout)
|
||||||
|
|
||||||
# Sync up with the node
|
def sync_send_with_ping(self, timeout=60):
|
||||||
|
"""Ensure SendMessages is called on this connection"""
|
||||||
|
# Calling sync_with_ping twice requires that the node calls
|
||||||
|
# `ProcessMessage` twice, and thus ensures `SendMessages` must have
|
||||||
|
# been called at least once
|
||||||
|
self.sync_with_ping()
|
||||||
|
self.sync_with_ping()
|
||||||
|
|
||||||
def sync_with_ping(self, timeout=60):
|
def sync_with_ping(self, timeout=60):
|
||||||
|
"""Ensure ProcessMessages is called on this connection"""
|
||||||
self.send_message(msg_ping(nonce=self.ping_counter))
|
self.send_message(msg_ping(nonce=self.ping_counter))
|
||||||
|
|
||||||
def test_function():
|
def test_function():
|
||||||
|
Loading…
Reference in New Issue
Block a user