@@ -3059,13 +3059,11 @@ mod tests {
30593059
30603060 #[ tokio:: test]
30613061 #[ traced_test]
3062- async fn can_connect_from_same_id ( ) -> Result {
3063- std:: env:: set_var ( "RUST_LOG" , "warn" ) ;
3064- const ECHOS : usize = 3 ;
3062+ async fn connecting_is_fast_from_same_id_consecutively ( ) -> Result {
3063+ const ECHOS : usize = 10 ;
30653064
30663065 let server = Endpoint :: builder ( )
30673066 . alpns ( vec ! [ TEST_ALPN . to_vec( ) ] )
3068- . discovery_local_network ( )
30693067 . relay_mode ( RelayMode :: Disabled )
30703068 . bind ( )
30713069 . await ?;
@@ -3092,8 +3090,9 @@ mod tests {
30923090 let client_secret_key = SecretKey :: from_bytes ( & [ 0u8 ; 32 ] ) ;
30933091 let client = Endpoint :: builder ( )
30943092 . secret_key ( client_secret_key)
3095- . discovery_local_network ( )
3096- . relay_mode ( RelayMode :: Disabled )
3093+ // NOTE this is not necessary to trigger the failure so I have it commented out for
3094+ // now
3095+ // .relay_mode(RelayMode::Disabled)
30973096 . bind ( )
30983097 . await ?;
30993098 let conn = client. connect ( server_addr. clone ( ) , TEST_ALPN ) . await ?;
@@ -3109,15 +3108,6 @@ mod tests {
31093108 elapsed_times. push ( elapsed) ;
31103109 }
31113110
3112- elapsed_times. iter ( ) . enumerate ( ) . for_each ( |( i, elapsed) | {
3113- println ! ( "Elapsed time for connection {i}: {elapsed:?}" ) ;
3114- } ) ;
3115-
3116- // assert!(elapsed1 < Duration::from_secs(5));
3117- // assert!(elapsed2 < Duration::from_secs(5));
3118- // check that elapsed2 completed within 1 second of elapsed1
3119- // assert!(elapsed2 <= elapsed1 + Duration::from_secs(1));
3120-
31213111 let close_errs = server_task. await . e ( ) ??;
31223112 assert_eq ! ( close_errs. len( ) , ECHOS ) ;
31233113
@@ -3129,6 +3119,18 @@ mod tests {
31293119 assert_eq ! ( app_close. reason. as_ref( ) , b"thanks, bye!" as & [ u8 ] ) ;
31303120 }
31313121
3122+ elapsed_times. iter ( ) . enumerate ( ) . for_each ( |( i, elapsed) | {
3123+ println ! ( "Elapsed time for connection {i}: {elapsed:?}" ) ;
3124+ } ) ;
3125+
3126+ // If any of the elapsed times are greater than 3x the minimum throw an error
3127+ let min_elapsed = elapsed_times. iter ( ) . min ( ) . unwrap_or ( & Duration :: ZERO ) ;
3128+ for ( i, elapsed) in elapsed_times. iter ( ) . enumerate ( ) {
3129+ if * elapsed > * min_elapsed * 3 {
3130+ panic ! ( "Connection {i} took too long compared to baseline ({min_elapsed:?}): {elapsed:?}" ) ;
3131+ }
3132+ }
3133+
31323134 Ok ( ( ) )
31333135 }
31343136
0 commit comments