aboutsummaryrefslogtreecommitdiff
path: root/test/functional
diff options
context:
space:
mode:
authorWladimir J. van der Laan <laanwj@gmail.com>2017-11-14 08:56:04 +0100
committerWladimir J. van der Laan <laanwj@gmail.com>2017-11-14 08:56:37 +0100
commit7adeea3b0fc26025c06590125a48ce2651c66373 (patch)
treee05cb13e84c54ec6ab71d2ffb754feeb2e5c585a /test/functional
parentcbb54e77a120a69fc6faaecbdc4cf93915afb89c (diff)
parentfaaa7db25e94cf02818865e3d27707d6acaa1e25 (diff)
downloadbitcoin-7adeea3b0fc26025c06590125a48ce2651c66373.tar.xz
Merge #11641: qa: Only allow disconnecting all NodeConns
faaa7db qa: Only allow disconnecting all NodeConns (MarcoFalke) Pull request description: Disconnecting the connection with `index=0` makes no sense when there are more than one connections, as the list "rotates around" and populates index 0 after `del`. Just disconnect all NodeConns in any case. Tree-SHA512: e5cf540823fccb31634b5a11501f54222be89862e80ccafc28bc06726480f8d2153b8c1b6f859fa6a6d087876251d48a6c6035bccdaaf16831e300bc17ff613d
Diffstat (limited to 'test/functional')
-rwxr-xr-xtest/functional/maxuploadtarget.py5
-rwxr-xr-xtest/functional/p2p-acceptblock.py4
-rwxr-xr-xtest/functional/p2p-leaktests.py3
-rwxr-xr-xtest/functional/test_framework/test_node.py15
4 files changed, 13 insertions, 14 deletions
diff --git a/test/functional/maxuploadtarget.py b/test/functional/maxuploadtarget.py
index 9c92aa1dc0..88e2ff2e16 100755
--- a/test/functional/maxuploadtarget.py
+++ b/test/functional/maxuploadtarget.py
@@ -54,7 +54,7 @@ class MaxUploadTest(BitcoinTestFramework):
# p2p_conns[2] will test resetting the counters
p2p_conns = []
- for i in range(3):
+ for _ in range(3):
p2p_conns.append(self.nodes[0].add_p2p_connection(TestNode()))
NetworkThread().start() # Start up network handling in another thread
@@ -139,8 +139,7 @@ class MaxUploadTest(BitcoinTestFramework):
self.log.info("Peer 2 able to download old block")
- for i in range(3):
- self.nodes[0].disconnect_p2p()
+ self.nodes[0].disconnect_p2ps()
#stop and start node 0 with 1MB maxuploadtarget, whitelist 127.0.0.1
self.log.info("Restarting nodes with -whitelist=127.0.0.1")
diff --git a/test/functional/p2p-acceptblock.py b/test/functional/p2p-acceptblock.py
index fbe5a78029..ca0e0080a1 100755
--- a/test/functional/p2p-acceptblock.py
+++ b/test/functional/p2p-acceptblock.py
@@ -206,7 +206,7 @@ class AcceptBlockTest(BitcoinTestFramework):
# The node should have requested the blocks at some point, so
# disconnect/reconnect first
- self.nodes[0].disconnect_p2p()
+ self.nodes[0].disconnect_p2ps()
test_node = self.nodes[0].add_p2p_connection(NodeConnCB())
test_node.wait_for_verack()
@@ -291,7 +291,7 @@ class AcceptBlockTest(BitcoinTestFramework):
except AssertionError:
test_node.wait_for_disconnect()
- self.nodes[0].disconnect_p2p()
+ self.nodes[0].disconnect_p2ps()
test_node = self.nodes[0].add_p2p_connection(NodeConnCB())
NetworkThread().start() # Start up network handling in another thread
diff --git a/test/functional/p2p-leaktests.py b/test/functional/p2p-leaktests.py
index a6e47b5df6..719a03914d 100755
--- a/test/functional/p2p-leaktests.py
+++ b/test/functional/p2p-leaktests.py
@@ -125,8 +125,7 @@ class P2PLeakTest(BitcoinTestFramework):
assert not unsupported_service_bit5_node.connected
assert not unsupported_service_bit7_node.connected
- for _ in range(5):
- self.nodes[0].disconnect_p2p()
+ self.nodes[0].disconnect_p2ps()
# Wait until all connections are closed
wait_until(lambda: len(self.nodes[0].getpeerinfo()) == 0)
diff --git a/test/functional/test_framework/test_node.py b/test/functional/test_framework/test_node.py
index 8b28064c46..73018ee5da 100755
--- a/test/functional/test_framework/test_node.py
+++ b/test/functional/test_framework/test_node.py
@@ -182,13 +182,14 @@ class TestNode():
assert self.p2ps, "No p2p connection"
return self.p2ps[0]
- def disconnect_p2p(self, index=0):
- """Close the p2p connection to the node."""
- # Connection could have already been closed by other end. Calling disconnect_p2p()
- # on an already disconnected p2p connection is not an error.
- if self.p2ps[index].connection is not None:
- self.p2ps[index].connection.disconnect_node()
- del self.p2ps[index]
+ def disconnect_p2ps(self):
+ """Close all p2p connections to the node."""
+ for p in self.p2ps:
+ # Connection could have already been closed by other end.
+ if p.connection is not None:
+ p.connection.disconnect_node()
+ self.p2ps = []
+
class TestNodeCLI():
"""Interface to bitcoin-cli for an individual node"""