Browse Source

[tests] Make p2p-leaktests.py more robust

Github-Pull: #11078
Rebased-From: 0063d2c3dc
0.15
John Newbery 7 years ago committed by MarcoFalke
parent
commit
f1ced0d776
  1. 9
      test/functional/p2p-leaktests.py
  2. 1
      test/functional/test_framework/mininode.py

9
test/functional/p2p-leaktests.py

@ -139,6 +139,9 @@ class P2PLeakTest(BitcoinTestFramework):
[conn.disconnect_node() for conn in connections] [conn.disconnect_node() for conn in connections]
# Wait until all connections are closed
wait_until(lambda: len(self.nodes[0].getpeerinfo()) == 0)
# Make sure no unexpected messages came in # Make sure no unexpected messages came in
assert(no_version_bannode.unexpected_msg == False) assert(no_version_bannode.unexpected_msg == False)
assert(no_version_idlenode.unexpected_msg == False) assert(no_version_idlenode.unexpected_msg == False)
@ -157,8 +160,10 @@ class P2PLeakTest(BitcoinTestFramework):
allowed_service_bit5_node.add_connection(connections[5]) allowed_service_bit5_node.add_connection(connections[5])
allowed_service_bit7_node.add_connection(connections[6]) allowed_service_bit7_node.add_connection(connections[6])
wait_until(lambda: allowed_service_bit5_node.message_count["verack"], timeout=10, lock=mininode_lock) NetworkThread().start() # Network thread stopped when all previous NodeConnCBs disconnected. Restart it
wait_until(lambda: allowed_service_bit7_node.message_count["verack"], timeout=10, lock=mininode_lock)
wait_until(lambda: allowed_service_bit5_node.message_count["verack"], lock=mininode_lock)
wait_until(lambda: allowed_service_bit7_node.message_count["verack"], lock=mininode_lock)
if __name__ == '__main__': if __name__ == '__main__':
P2PLeakTest().main() P2PLeakTest().main()

1
test/functional/test_framework/mininode.py

@ -1837,6 +1837,7 @@ class NetworkThread(Thread):
disconnected.append(obj) disconnected.append(obj)
[ obj.handle_close() for obj in disconnected ] [ obj.handle_close() for obj in disconnected ]
asyncore.loop(0.1, use_poll=True, map=mininode_socket_map, count=1) asyncore.loop(0.1, use_poll=True, map=mininode_socket_map, count=1)
logger.debug("Network thread closing")
# An exception we can raise if we detect a potential disconnect # An exception we can raise if we detect a potential disconnect

Loading…
Cancel
Save