Skip to content

Commit 0063d2c

Browse files
committed
[tests] Make p2p-leaktests.py more robust
1 parent 4ae6d0f commit 0063d2c

File tree

2 files changed

+8
-2
lines changed

2 files changed

+8
-2
lines changed

test/functional/p2p-leaktests.py

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -140,6 +140,9 @@ def run_test(self):
140140

141141
[conn.disconnect_node() for conn in connections]
142142

143+
# Wait until all connections are closed
144+
wait_until(lambda: len(self.nodes[0].getpeerinfo()) == 0)
145+
143146
# Make sure no unexpected messages came in
144147
assert(no_version_bannode.unexpected_msg == False)
145148
assert(no_version_idlenode.unexpected_msg == False)
@@ -158,8 +161,10 @@ def run_test(self):
158161
allowed_service_bit5_node.add_connection(connections[5])
159162
allowed_service_bit7_node.add_connection(connections[6])
160163

161-
wait_until(lambda: allowed_service_bit5_node.message_count["verack"], timeout=10, lock=mininode_lock)
162-
wait_until(lambda: allowed_service_bit7_node.message_count["verack"], timeout=10, lock=mininode_lock)
164+
NetworkThread().start() # Network thread stopped when all previous NodeConnCBs disconnected. Restart it
165+
166+
wait_until(lambda: allowed_service_bit5_node.message_count["verack"], lock=mininode_lock)
167+
wait_until(lambda: allowed_service_bit7_node.message_count["verack"], lock=mininode_lock)
163168

164169
if __name__ == '__main__':
165170
P2PLeakTest().main()

test/functional/test_framework/mininode.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1837,6 +1837,7 @@ def run(self):
18371837
disconnected.append(obj)
18381838
[ obj.handle_close() for obj in disconnected ]
18391839
asyncore.loop(0.1, use_poll=True, map=mininode_socket_map, count=1)
1840+
logger.debug("Network thread closing")
18401841

18411842

18421843
# An exception we can raise if we detect a potential disconnect

0 commit comments

Comments
 (0)