Skip to content

Commit b3ec1fe

Browse files
author
MarcoFalke
committed
Merge #18890: test: disconnect_nodes should warn if nodes were already disconnected
34e641a test: Remove unnecessary disconnect_nodes call in rpc_psbt.py (Danny Lee) e6e7abd test: remove redundant two-way disconnect_nodes calls (Danny Lee) a9bd1f9 test: warn if nodes not connected before disconnect_nodes (Danny Lee) Pull request description: There's no harm in calling `disconnect_nodes` for nodes that weren't connected (in this case it's a no-op). However, detecting this case and logging a warning can help ensure that tests are behaving as expected. In addition, since `disconnect_nodes` works bidirectionally, I removed all instances of this pattern: ``` disconnect_nodes(self.nodes[0], 1) disconnect_nodes(self.nodes[1], 0) ``` ACKs for top commit: MarcoFalke: review ACK 34e641a 👔 amitiuttarwar: ACK 34e641a. Thanks for this test improvement! Tree-SHA512: 344855ceb46c012d43c13d7c09f44d32dcb7645706d10ae1e4645d9edca54c6c6c13fee26b79480755cdfcdf39b4b5770b36bb03ce71ba002d5be8a27fe008af
2 parents 9573d2b + 34e641a commit b3ec1fe

File tree

6 files changed

+17
-11
lines changed

6 files changed

+17
-11
lines changed

test/functional/p2p_node_network_limited.py

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -42,9 +42,6 @@ def set_test_params(self):
4242

4343
def disconnect_all(self):
4444
disconnect_nodes(self.nodes[0], 1)
45-
disconnect_nodes(self.nodes[1], 0)
46-
disconnect_nodes(self.nodes[2], 1)
47-
disconnect_nodes(self.nodes[2], 0)
4845
disconnect_nodes(self.nodes[0], 2)
4946
disconnect_nodes(self.nodes[1], 2)
5047

test/functional/rpc_psbt.py

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -43,10 +43,8 @@ def test_utxo_conversion(self):
4343
online_node = self.nodes[1]
4444

4545
# Disconnect offline node from others
46+
# Topology of test network is linear, so this one call is enough
4647
disconnect_nodes(offline_node, 1)
47-
disconnect_nodes(online_node, 0)
48-
disconnect_nodes(offline_node, 2)
49-
disconnect_nodes(mining_node, 0)
5048

5149
# Create watchonly on online_node
5250
online_node.createwallet(wallet_name='wonline', disable_private_keys=True)

test/functional/test_framework/test_framework.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -531,7 +531,6 @@ def split_network(self):
531531
Split the network of four nodes into nodes 0/1 and 2/3.
532532
"""
533533
disconnect_nodes(self.nodes[1], 2)
534-
disconnect_nodes(self.nodes[2], 1)
535534
self.sync_all(self.nodes[:2])
536535
self.sync_all(self.nodes[2:])
537536

test/functional/test_framework/util.py

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -381,7 +381,21 @@ def set_node_times(nodes, t):
381381
node.setmocktime(t)
382382

383383
def disconnect_nodes(from_connection, node_num):
384-
for peer_id in [peer['id'] for peer in from_connection.getpeerinfo() if "testnode%d" % node_num in peer['subver']]:
384+
def get_peer_ids():
385+
result = []
386+
for peer in from_connection.getpeerinfo():
387+
if "testnode{}".format(node_num) in peer['subver']:
388+
result.append(peer['id'])
389+
return result
390+
391+
peer_ids = get_peer_ids()
392+
if not peer_ids:
393+
logger.warning("disconnect_nodes: {} and {} were not connected".format(
394+
from_connection.index,
395+
node_num
396+
))
397+
return
398+
for peer_id in peer_ids:
385399
try:
386400
from_connection.disconnectnode(nodeid=peer_id)
387401
except JSONRPCException as e:
@@ -392,7 +406,7 @@ def disconnect_nodes(from_connection, node_num):
392406
raise
393407

394408
# wait to disconnect
395-
wait_until(lambda: [peer['id'] for peer in from_connection.getpeerinfo() if "testnode%d" % node_num in peer['subver']] == [], timeout=5)
409+
wait_until(lambda: not get_peer_ids(), timeout=5)
396410

397411
def connect_nodes(from_connection, node_num):
398412
ip_port = "127.0.0.1:" + str(p2p_port(node_num))

test/functional/wallet_txn_clone.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,6 @@ def setup_network(self):
3131
# Start with split network:
3232
super().setup_network()
3333
disconnect_nodes(self.nodes[1], 2)
34-
disconnect_nodes(self.nodes[2], 1)
3534

3635
def run_test(self):
3736
if self.options.segwit:

test/functional/wallet_txn_doublespend.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,6 @@ def setup_network(self):
2929
# Start with split network:
3030
super().setup_network()
3131
disconnect_nodes(self.nodes[1], 2)
32-
disconnect_nodes(self.nodes[2], 1)
3332

3433
def run_test(self):
3534
# All nodes should start with 1,250 BTC:

0 commit comments

Comments
 (0)