@@ -1624,7 +1624,6 @@ mod tests {
1624
1624
use libp2p_core:: transport:: TransportEvent ;
1625
1625
use libp2p_core:: Endpoint ;
1626
1626
use quickcheck:: { quickcheck, Arbitrary , Gen , QuickCheck } ;
1627
- use rand:: prelude:: SliceRandom ;
1628
1627
use rand:: Rng ;
1629
1628
1630
1629
// Test execution state.
@@ -2425,60 +2424,51 @@ mod tests {
2425
2424
assert ! ( !swarm. is_connected( & peer_id) ) ;
2426
2425
}
2427
2426
2428
- #[ test]
2429
- fn multiple_addresses_err ( ) {
2427
+ #[ async_std :: test]
2428
+ async fn multiple_addresses_err ( ) {
2430
2429
// Tries dialing multiple addresses, and makes sure there's one dialing error per address.
2431
2430
2432
2431
let target = PeerId :: random ( ) ;
2433
2432
2434
2433
let mut swarm = new_test_swarm :: < _ , ( ) > ( DummyConnectionHandler :: default ( ) ) . build ( ) ;
2435
2434
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
+ ] ) ;
2444
2445
2445
2446
swarm
2446
2447
. dial (
2447
2448
DialOpts :: peer_id ( target)
2448
- . addresses ( addresses. clone ( ) )
2449
+ . addresses ( addresses. iter ( ) . cloned ( ) . collect ( ) )
2449
2450
. build ( ) ,
2450
2451
)
2451
2452
. unwrap ( ) ;
2452
2453
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( ) ) ;
2462
2461
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 < _ > > ( ) ;
2473
2467
2474
- return Poll :: Ready ( Ok ( ( ) ) ) ;
2475
- }
2476
- Poll :: Ready ( _) => unreachable ! ( ) ,
2477
- Poll :: Pending => break Poll :: Pending ,
2478
- }
2468
+ assert_eq ! ( expected_addresses, failed_addresses) ;
2479
2469
}
2480
- } ) )
2481
- . unwrap ( ) ;
2470
+ e => panic ! ( "Unexpected event: {e:?}" ) ,
2471
+ }
2482
2472
}
2483
2473
2484
2474
#[ test]
0 commit comments