aboutsummaryrefslogtreecommitdiff
path: root/test/functional/feature_bind_extra.py
diff options
context:
space:
mode:
Diffstat (limited to 'test/functional/feature_bind_extra.py')
-rwxr-xr-xtest/functional/feature_bind_extra.py23
1 files changed, 14 insertions, 9 deletions
diff --git a/test/functional/feature_bind_extra.py b/test/functional/feature_bind_extra.py
index 5cd031f852..ed2328b76f 100755
--- a/test/functional/feature_bind_extra.py
+++ b/test/functional/feature_bind_extra.py
@@ -27,7 +27,7 @@ class BindExtraTest(BitcoinTestFramework):
# Avoid any -bind= on the command line. Force the framework to avoid
# adding -bind=127.0.0.1.
self.bind_to_localhost_only = False
- self.num_nodes = 2
+ self.num_nodes = 3
def skip_test_if_missing_module(self):
# Due to OS-specific network stats queries, we only run on Linux.
@@ -60,14 +60,21 @@ class BindExtraTest(BitcoinTestFramework):
)
port += 2
+ # Node2, no -bind=...=onion, thus no extra port for Tor target.
+ self.expected.append(
+ [
+ [f"-bind=127.0.0.1:{port}"],
+ [(loopback_ipv4, port)]
+ ],
+ )
+ port += 1
+
self.extra_args = list(map(lambda e: e[0], self.expected))
- self.add_nodes(self.num_nodes, self.extra_args)
- # Don't start the nodes, as some of them would collide trying to bind on the same port.
+ self.setup_nodes()
def run_test(self):
- for i in range(len(self.expected)):
- self.log.info(f"Starting node {i} with {self.expected[i][0]}")
- self.start_node(i)
+ for i, (args, expected_services) in enumerate(self.expected):
+ self.log.info(f"Checking listening ports of node {i} with {args}")
pid = self.nodes[i].process.pid
binds = set(get_bind_addrs(pid))
# Remove IPv6 addresses because on some CI environments "::1" is not configured
@@ -78,9 +85,7 @@ class BindExtraTest(BitcoinTestFramework):
binds = set(filter(lambda e: len(e[0]) != ipv6_addr_len_bytes, binds))
# Remove RPC ports. They are not relevant for this test.
binds = set(filter(lambda e: e[1] != rpc_port(i), binds))
- assert_equal(binds, set(self.expected[i][1]))
- self.stop_node(i)
- self.log.info(f"Stopped node {i}")
+ assert_equal(binds, set(expected_services))
if __name__ == '__main__':
BindExtraTest().main()