mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-12-08 11:44:14 +01:00
[test] Add testing for outbound feeler connections
Extend the addconnection RPC method to allow creating outbound feeler connections. Extend the test framework to accept those feeler connections.
This commit is contained in:
@@ -14,6 +14,13 @@ def check_node_connections(*, node, num_in, num_out):
|
||||
assert_equal(info["connections_in"], num_in)
|
||||
assert_equal(info["connections_out"], num_out)
|
||||
|
||||
class P2PFeelerReceiver(P2PInterface):
|
||||
def on_version(self, message):
|
||||
# The bitcoind node closes feeler connections as soon as a version
|
||||
# message is received from the test framework. Don't send any responses
|
||||
# to the node's version message since the connection will already be
|
||||
# closed.
|
||||
pass
|
||||
|
||||
class P2PAddConnections(BitcoinTestFramework):
|
||||
def set_test_params(self):
|
||||
@@ -91,6 +98,14 @@ class P2PAddConnections(BitcoinTestFramework):
|
||||
|
||||
check_node_connections(node=self.nodes[1], num_in=5, num_out=10)
|
||||
|
||||
self.log.info("Add 1 feeler connection to node 0")
|
||||
feeler_conn = self.nodes[0].add_outbound_p2p_connection(P2PFeelerReceiver(), p2p_idx=6, connection_type="feeler")
|
||||
|
||||
# Feeler connection is closed
|
||||
assert not feeler_conn.is_connected
|
||||
|
||||
# Verify version message received
|
||||
assert_equal(feeler_conn.message_count["version"], 1)
|
||||
|
||||
if __name__ == '__main__':
|
||||
P2PAddConnections().main()
|
||||
|
||||
Reference in New Issue
Block a user