@@ -1624,7 +1624,6 @@ mod tests {
16241624 use libp2p_core:: transport:: TransportEvent ;
16251625 use libp2p_core:: Endpoint ;
16261626 use quickcheck:: { quickcheck, Arbitrary , Gen , QuickCheck } ;
1627- use rand:: prelude:: SliceRandom ;
16281627 use rand:: Rng ;
16291628
16301629 // Test execution state.
@@ -2425,60 +2424,51 @@ mod tests {
24252424 assert ! ( !swarm. is_connected( & peer_id) ) ;
24262425 }
24272426
2428- #[ test]
2429- fn multiple_addresses_err ( ) {
2427+ #[ async_std :: test]
2428+ async fn multiple_addresses_err ( ) {
24302429 // Tries dialing multiple addresses, and makes sure there's one dialing error per address.
24312430
24322431 let target = PeerId :: random ( ) ;
24332432
24342433 let mut swarm = new_test_swarm :: < _ , ( ) > ( DummyConnectionHandler :: default ( ) ) . build ( ) ;
24352434
2436- let mut addresses = Vec :: new ( ) ;
2437- for _ in 0 ..3 {
2438- addresses. push ( multiaddr ! [ Ip4 ( [ 0 , 0 , 0 , 0 ] ) , Tcp ( rand:: random:: <u16 >( ) ) ] ) ;
2439- }
2440- for _ in 0 ..5 {
2441- addresses. push ( multiaddr ! [ Udp ( rand:: random:: <u16 >( ) ) ] ) ;
2442- }
2443- addresses. shuffle ( & mut rand:: thread_rng ( ) ) ;
2435+ let addresses = HashSet :: from ( [
2436+ multiaddr ! [ Ip4 ( [ 0 , 0 , 0 , 0 ] ) , Tcp ( rand:: random:: <u16 >( ) ) ] ,
2437+ multiaddr ! [ Ip4 ( [ 0 , 0 , 0 , 0 ] ) , Tcp ( rand:: random:: <u16 >( ) ) ] ,
2438+ multiaddr ! [ Ip4 ( [ 0 , 0 , 0 , 0 ] ) , Tcp ( rand:: random:: <u16 >( ) ) ] ,
2439+ multiaddr ! [ Udp ( rand:: random:: <u16 >( ) ) ] ,
2440+ multiaddr ! [ Udp ( rand:: random:: <u16 >( ) ) ] ,
2441+ multiaddr ! [ Udp ( rand:: random:: <u16 >( ) ) ] ,
2442+ multiaddr ! [ Udp ( rand:: random:: <u16 >( ) ) ] ,
2443+ multiaddr ! [ Udp ( rand:: random:: <u16 >( ) ) ] ,
2444+ ] ) ;
24442445
24452446 swarm
24462447 . dial (
24472448 DialOpts :: peer_id ( target)
2448- . addresses ( addresses. clone ( ) )
2449+ . addresses ( addresses. iter ( ) . cloned ( ) . collect ( ) )
24492450 . build ( ) ,
24502451 )
24512452 . unwrap ( ) ;
24522453
2453- futures:: executor:: block_on ( future:: poll_fn ( |cx| -> Poll < Result < ( ) , io:: Error > > {
2454- loop {
2455- match swarm. poll_next_unpin ( cx) {
2456- Poll :: Ready ( Some ( SwarmEvent :: OutgoingConnectionError {
2457- peer_id,
2458- // multiaddr,
2459- error : DialError :: Transport ( errors) ,
2460- } ) ) => {
2461- assert_eq ! ( peer_id. unwrap( ) , target) ;
2454+ match swarm. next ( ) . await . unwrap ( ) {
2455+ SwarmEvent :: OutgoingConnectionError {
2456+ peer_id,
2457+ // multiaddr,
2458+ error : DialError :: Transport ( errors) ,
2459+ } => {
2460+ assert_eq ! ( target, peer_id. unwrap( ) ) ;
24622461
2463- let failed_addresses =
2464- errors. into_iter ( ) . map ( |( addr, _) | addr) . collect :: < Vec < _ > > ( ) ;
2465- assert_eq ! (
2466- failed_addresses,
2467- addresses
2468- . clone( )
2469- . into_iter( )
2470- . map( |addr| addr. with( Protocol :: P2p ( target. into( ) ) ) )
2471- . collect:: <Vec <_>>( )
2472- ) ;
2462+ let failed_addresses = errors. into_iter ( ) . map ( |( addr, _) | addr) . collect :: < Vec < _ > > ( ) ;
2463+ let expected_addresses = addresses
2464+ . into_iter ( )
2465+ . map ( |addr| addr. with ( Protocol :: P2p ( target. into ( ) ) ) )
2466+ . collect :: < Vec < _ > > ( ) ;
24732467
2474- return Poll :: Ready ( Ok ( ( ) ) ) ;
2475- }
2476- Poll :: Ready ( _) => unreachable ! ( ) ,
2477- Poll :: Pending => break Poll :: Pending ,
2478- }
2468+ assert_eq ! ( expected_addresses, failed_addresses) ;
24792469 }
2480- } ) )
2481- . unwrap ( ) ;
2470+ e => panic ! ( "Unexpected event: {e:?}" ) ,
2471+ }
24822472 }
24832473
24842474 #[ test]
0 commit comments