@@ -186,9 +186,10 @@ impl<Cnx: BgpConnection + 'static> Drop for Dispatcher<Cnx> {
186186
187187#[ cfg( test) ]
188188mod tests {
189- use super :: * ;
190- use crate :: connection_channel:: BgpConnectionChannel ;
191- use unnumbered:: { NdpNeighbor , UnnumberedError } ;
189+ use crate :: { connection:: resolve_session_key, session:: PeerId } ;
190+ use slog:: Logger ;
191+ use std:: sync:: Arc ;
192+ use unnumbered:: { BgpUnnumbered , NdpNeighbor , UnnumberedError } ;
192193
193194 struct TestUnnumbered {
194195 scope_result : Result < Option < String > , UnnumberedError > ,
@@ -214,64 +215,52 @@ mod tests {
214215 Logger :: root ( slog:: Discard , slog:: o!( ) )
215216 }
216217
217- fn dispatcher (
218- unnumbered_manager : Option < Arc < dyn BgpUnnumbered > > ,
219- ) -> Dispatcher < BgpConnectionChannel > {
220- Dispatcher :: new (
221- Arc :: new ( Mutex :: new ( SessionMap :: new ( ) ) ) ,
222- "[::]:0" . into ( ) ,
223- log ( ) ,
224- unnumbered_manager,
225- )
218+ fn unnumbered_manager (
219+ scope_result : Result < Option < String > , UnnumberedError > ,
220+ ) -> Arc < dyn BgpUnnumbered > {
221+ Arc :: new ( TestUnnumbered { scope_result } )
226222 }
227223
228224 #[ test]
229225 fn link_local_scope_resolves_to_interface_session_key ( ) {
230- let dispatcher = dispatcher ( Some ( Arc :: new ( TestUnnumbered {
231- scope_result : Ok ( Some ( "eth0" . into ( ) ) ) ,
232- } ) ) ) ;
226+ let manager = unnumbered_manager ( Ok ( Some ( "eth0" . into ( ) ) ) ) ;
233227 let peer = "[fe80::1%7]:179" . parse ( ) . unwrap ( ) ;
234228
235- let key = dispatcher . resolve_session_key ( peer, & log ( ) ) ;
229+ let key = resolve_session_key ( peer, Some ( & manager ) , & log ( ) ) ;
236230
237231 assert_eq ! ( key, PeerId :: Interface ( "eth0" . into( ) ) ) ;
238232 }
239233
240234 #[ test]
241235 fn link_local_without_active_scope_falls_back_to_ip_session_key ( ) {
242- let dispatcher = dispatcher ( Some ( Arc :: new ( TestUnnumbered {
243- scope_result : Ok ( None ) ,
244- } ) ) ) ;
245- let peer: SocketAddr = "[fe80::1%7]:179" . parse ( ) . unwrap ( ) ;
236+ let manager = unnumbered_manager ( Ok ( None ) ) ;
237+ let peer = "[fe80::1%7]:179" . parse ( ) . unwrap ( ) ;
246238
247- let key = dispatcher . resolve_session_key ( peer, & log ( ) ) ;
239+ let key = resolve_session_key ( peer, Some ( & manager ) , & log ( ) ) ;
248240
249241 assert_eq ! ( key, PeerId :: Ip ( peer. ip( ) ) ) ;
250242 }
251243
252244 #[ test]
253245 fn link_local_resolution_error_falls_back_to_ip_session_key ( ) {
254- let dispatcher = dispatcher ( Some ( Arc :: new ( TestUnnumbered {
255- scope_result : Err ( UnnumberedError :: ResolutionFailed {
246+ let manager =
247+ unnumbered_manager ( Err ( UnnumberedError :: ResolutionFailed {
256248 interface : "eth0" . into ( ) ,
257249 reason : "boom" . into ( ) ,
258- } ) ,
259- } ) ) ) ;
260- let peer: SocketAddr = "[fe80::1%7]:179" . parse ( ) . unwrap ( ) ;
250+ } ) ) ;
251+ let peer = "[fe80::1%7]:179" . parse ( ) . unwrap ( ) ;
261252
262- let key = dispatcher . resolve_session_key ( peer, & log ( ) ) ;
253+ let key = resolve_session_key ( peer, Some ( & manager ) , & log ( ) ) ;
263254
264255 assert_eq ! ( key, PeerId :: Ip ( peer. ip( ) ) ) ;
265256 }
266257
267258 #[ test]
268259 fn non_link_local_address_uses_ip_session_key ( ) {
269- let dispatcher = dispatcher ( Some ( Arc :: new ( TestUnnumbered {
270- scope_result : Ok ( Some ( "eth0" . into ( ) ) ) ,
271- } ) ) ) ;
272- let peer: SocketAddr = "[2001:db8::1]:179" . parse ( ) . unwrap ( ) ;
260+ let manager = unnumbered_manager ( Ok ( Some ( "eth0" . into ( ) ) ) ) ;
261+ let peer = "[2001:db8::1]:179" . parse ( ) . unwrap ( ) ;
273262
274- let key = dispatcher . resolve_session_key ( peer, & log ( ) ) ;
263+ let key = resolve_session_key ( peer, Some ( & manager ) , & log ( ) ) ;
275264
276265 assert_eq ! ( key, PeerId :: Ip ( peer. ip( ) ) ) ;
277266 }
0 commit comments