@@ -3728,6 +3728,7 @@ mod tests {
37283728 chan_handler : test_utils:: TestChannelMessageHandler ,
37293729 routing_handler : test_utils:: TestRoutingMessageHandler ,
37303730 custom_handler : TestCustomMessageHandler ,
3731+ send_only_handler : TestBaseMsgHandler ,
37313732 logger : test_utils:: TestLogger ,
37323733 node_signer : test_utils:: TestNodeSigner ,
37333734 }
@@ -3780,6 +3781,32 @@ mod tests {
37803781 }
37813782 }
37823783
3784+ struct TestBaseMsgHandler ( test_utils:: ConnectionTracker ) ;
3785+
3786+ impl BaseMessageHandler for TestBaseMsgHandler {
3787+ fn get_and_clear_pending_msg_events ( & self ) -> Vec < MessageSendEvent > {
3788+ Vec :: new ( )
3789+ }
3790+
3791+ fn peer_disconnected ( & self , their_node_id : PublicKey ) {
3792+ self . 0 . peer_disconnected ( their_node_id) ;
3793+ }
3794+
3795+ fn peer_connected (
3796+ & self , their_node_id : PublicKey , _msg : & Init , _inbound : bool ,
3797+ ) -> Result < ( ) , ( ) > {
3798+ self . 0 . peer_connected ( their_node_id)
3799+ }
3800+
3801+ fn provided_node_features ( & self ) -> NodeFeatures {
3802+ NodeFeatures :: empty ( )
3803+ }
3804+
3805+ fn provided_init_features ( & self , _: PublicKey ) -> InitFeatures {
3806+ InitFeatures :: empty ( )
3807+ }
3808+ }
3809+
37833810 fn create_peermgr_cfgs ( peer_count : usize ) -> Vec < PeerManagerCfg > {
37843811 let mut cfgs = Vec :: new ( ) ;
37853812 for i in 0 ..peer_count {
@@ -3796,6 +3823,7 @@ mod tests {
37963823 logger : test_utils:: TestLogger :: with_id ( i. to_string ( ) ) ,
37973824 routing_handler : test_utils:: TestRoutingMessageHandler :: new ( ) ,
37983825 custom_handler : TestCustomMessageHandler :: new ( features) ,
3826+ send_only_handler : TestBaseMsgHandler ( test_utils:: ConnectionTracker :: new ( ) ) ,
37993827 node_signer : test_utils:: TestNodeSigner :: new ( node_secret) ,
38003828 } ) ;
38013829 }
@@ -3819,6 +3847,7 @@ mod tests {
38193847 logger : test_utils:: TestLogger :: new ( ) ,
38203848 routing_handler : test_utils:: TestRoutingMessageHandler :: new ( ) ,
38213849 custom_handler : TestCustomMessageHandler :: new ( features) ,
3850+ send_only_handler : TestBaseMsgHandler ( test_utils:: ConnectionTracker :: new ( ) ) ,
38223851 node_signer : test_utils:: TestNodeSigner :: new ( node_secret) ,
38233852 } ) ;
38243853 }
@@ -3837,6 +3866,7 @@ mod tests {
38373866 logger : test_utils:: TestLogger :: new ( ) ,
38383867 routing_handler : test_utils:: TestRoutingMessageHandler :: new ( ) ,
38393868 custom_handler : TestCustomMessageHandler :: new ( features) ,
3869+ send_only_handler : TestBaseMsgHandler ( test_utils:: ConnectionTracker :: new ( ) ) ,
38403870 node_signer : test_utils:: TestNodeSigner :: new ( node_secret) ,
38413871 } ) ;
38423872 }
@@ -3853,7 +3883,7 @@ mod tests {
38533883 route_handler : & cfgs[ i] . routing_handler ,
38543884 onion_message_handler : IgnoringMessageHandler { } ,
38553885 custom_message_handler : & cfgs[ i] . custom_handler ,
3856- send_only_message_handler : IgnoringMessageHandler { } ,
3886+ send_only_message_handler : & cfgs [ i ] . send_only_handler ,
38573887 } ;
38583888 let peer = PeerManager :: new (
38593889 msg_handler,
@@ -3876,7 +3906,7 @@ mod tests {
38763906 & ' a test_utils:: TestLogger ,
38773907 & ' a TestCustomMessageHandler ,
38783908 & ' a test_utils:: TestNodeSigner ,
3879- IgnoringMessageHandler ,
3909+ & ' a TestBaseMsgHandler ,
38803910 > ;
38813911
38823912 fn try_establish_connection < ' a > (
@@ -4252,6 +4282,7 @@ mod tests {
42524282 let chan_handler = peers[ handler & 1 ] . message_handler . chan_handler ;
42534283 let route_handler = peers[ handler & 1 ] . message_handler . route_handler ;
42544284 let custom_message_handler = peers[ handler & 1 ] . message_handler . custom_message_handler ;
4285+ let send_only_msg_handler = peers[ handler & 1 ] . message_handler . send_only_message_handler ;
42554286
42564287 match handler & !1 {
42574288 0 => {
@@ -4263,6 +4294,9 @@ mod tests {
42634294 4 => {
42644295 custom_message_handler. conn_tracker . fail_connections . store ( true , Ordering :: Release ) ;
42654296 } ,
4297+ 6 => {
4298+ send_only_msg_handler. 0 . fail_connections . store ( true , Ordering :: Release ) ;
4299+ } ,
42664300 _ => panic ! ( ) ,
42674301 }
42684302 let ( _sd1, _sd2, a_refused, b_refused) = try_establish_connection ( & peers[ 0 ] , & peers[ 1 ] ) ;
@@ -4278,16 +4312,18 @@ mod tests {
42784312 chan_handler. conn_tracker. had_peers. load( Ordering :: Acquire )
42794313 || route_handler. conn_tracker. had_peers. load( Ordering :: Acquire )
42804314 || custom_message_handler. conn_tracker. had_peers. load( Ordering :: Acquire )
4315+ || send_only_msg_handler. 0 . had_peers. load( Ordering :: Acquire )
42814316 ) ;
42824317 // And both message handlers doing tracking should see the disconnection
42834318 assert ! ( chan_handler. conn_tracker. connected_peers. lock( ) . unwrap( ) . is_empty( ) ) ;
42844319 assert ! ( route_handler. conn_tracker. connected_peers. lock( ) . unwrap( ) . is_empty( ) ) ;
42854320 assert ! ( custom_message_handler. conn_tracker. connected_peers. lock( ) . unwrap( ) . is_empty( ) ) ;
4321+ assert ! ( send_only_msg_handler. 0 . connected_peers. lock( ) . unwrap( ) . is_empty( ) ) ;
42864322 }
42874323
42884324 #[ test]
42894325 fn test_peer_connected_error_disconnects ( ) {
4290- for i in 0 ..6 {
4326+ for i in 0 ..8 {
42914327 do_test_peer_connected_error_disconnects ( i) ;
42924328 }
42934329 }
0 commit comments