From 5c8ff26b2fc59d8bcfa2a8bfb7c9fe6d78cf6678 Mon Sep 17 00:00:00 2001 From: John Newbery Date: Fri, 8 Dec 2017 10:00:33 -0500 Subject: [PATCH] [tests] Add NetworkThread assertions Check that P2PConnections aren't created after the NetworkThread has started and that at any time only one NetworkThread is running. --- test/functional/test_framework/mininode.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/test/functional/test_framework/mininode.py b/test/functional/test_framework/mininode.py index a00fc3d43c..724d418099 100755 --- a/test/functional/test_framework/mininode.py +++ b/test/functional/test_framework/mininode.py @@ -69,6 +69,10 @@ class P2PConnection(asyncore.dispatcher): sub-classed and the on_message() callback overridden.""" def __init__(self): + # All P2PConnections must be created before starting the NetworkThread. + # assert that the network thread is not running. + assert not network_thread_running() + super().__init__(map=mininode_socket_map) def peer_connect(self, dstaddr, dstport, net="regtest"): @@ -418,6 +422,9 @@ class NetworkThread(threading.Thread): def network_thread_start(): """Start the network thread.""" + # Only one network thread may run at a time + assert not network_thread_running() + NetworkThread().start() def network_thread_running():