mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-12-05 02:05:10 +01:00
test: Fix intermittent failure in rpc_net.py
The wait in disconnect_p2ps checked for subver, which is unavailable for the peer that didn't send a version msg.
This commit is contained in:
@@ -112,7 +112,7 @@ class NetTest(BitcoinTestFramework):
|
|||||||
no_version_peer_conntime = int(time.time())
|
no_version_peer_conntime = int(time.time())
|
||||||
self.nodes[0].setmocktime(no_version_peer_conntime)
|
self.nodes[0].setmocktime(no_version_peer_conntime)
|
||||||
with self.nodes[0].assert_debug_log([f"Added connection peer={no_version_peer_id}"]):
|
with self.nodes[0].assert_debug_log([f"Added connection peer={no_version_peer_id}"]):
|
||||||
self.nodes[0].add_p2p_connection(P2PInterface(), send_version=False, wait_for_verack=False)
|
no_version_peer = self.nodes[0].add_p2p_connection(P2PInterface(), send_version=False, wait_for_verack=False)
|
||||||
self.nodes[0].setmocktime(0)
|
self.nodes[0].setmocktime(0)
|
||||||
peer_info = self.nodes[0].getpeerinfo()[no_version_peer_id]
|
peer_info = self.nodes[0].getpeerinfo()[no_version_peer_id]
|
||||||
peer_info.pop("addr")
|
peer_info.pop("addr")
|
||||||
@@ -153,7 +153,8 @@ class NetTest(BitcoinTestFramework):
|
|||||||
"version": 0,
|
"version": 0,
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
self.nodes[0].disconnect_p2ps()
|
no_version_peer.peer_disconnect()
|
||||||
|
self.wait_until(lambda: len(self.nodes[0].getpeerinfo()) == 2)
|
||||||
|
|
||||||
def test_getnettotals(self):
|
def test_getnettotals(self):
|
||||||
self.log.info("Test getnettotals")
|
self.log.info("Test getnettotals")
|
||||||
|
|||||||
@@ -656,7 +656,8 @@ class TestNode():
|
|||||||
return len([peer for peer in self.getpeerinfo() if peer['subver'] == P2P_SUBVERSION])
|
return len([peer for peer in self.getpeerinfo() if peer['subver'] == P2P_SUBVERSION])
|
||||||
|
|
||||||
def disconnect_p2ps(self):
|
def disconnect_p2ps(self):
|
||||||
"""Close all p2p connections to the node."""
|
"""Close all p2p connections to the node.
|
||||||
|
Use only after each p2p has sent a version message to ensure the wait works."""
|
||||||
for p in self.p2ps:
|
for p in self.p2ps:
|
||||||
p.peer_disconnect()
|
p.peer_disconnect()
|
||||||
del self.p2ps[:]
|
del self.p2ps[:]
|
||||||
|
|||||||
Reference in New Issue
Block a user