@@ -239,6 +239,8 @@ async fn request_over_max_concurrent_streams_errors() {
239
239
240
240
// first request is allowed
241
241
let ( resp1, mut stream1) = client. send_request ( request, false ) . unwrap ( ) ;
242
+ // as long as we let the connection internals tick
243
+ client = h2. drive ( client. ready ( ) ) . await . unwrap ( ) ;
242
244
243
245
let request = Request :: builder ( )
244
246
. method ( Method :: POST )
@@ -303,16 +305,25 @@ async fn recv_decrement_max_concurrent_streams_when_requests_queued() {
303
305
srv. ping_pong ( [ 0 ; 8 ] ) . await ;
304
306
305
307
// limit this server later in life
306
- srv. send_frame ( frames:: settings ( ) . max_concurrent_streams ( 1 ) ) . await ;
308
+ srv. send_frame ( frames:: settings ( ) . max_concurrent_streams ( 1 ) )
309
+ . await ;
307
310
srv. recv_frame ( frames:: settings_ack ( ) ) . await ;
308
-
309
311
srv. recv_frame (
310
312
frames:: headers ( 3 )
311
313
. request ( "POST" , "https://example.com/" )
312
314
. eos ( ) ,
313
315
)
314
316
. await ;
315
317
srv. ping_pong ( [ 1 ; 8 ] ) . await ;
318
+ srv. send_frame ( frames:: headers ( 3 ) . response ( 200 ) . eos ( ) ) . await ;
319
+
320
+ srv. recv_frame (
321
+ frames:: headers ( 5 )
322
+ . request ( "POST" , "https://example.com/" )
323
+ . eos ( ) ,
324
+ )
325
+ . await ;
326
+ srv. send_frame ( frames:: headers ( 5 ) . response ( 200 ) . eos ( ) ) . await ;
316
327
} ;
317
328
318
329
let h2 = async move {
@@ -346,24 +357,6 @@ async fn recv_decrement_max_concurrent_streams_when_requests_queued() {
346
357
// second request is put into pending_open
347
358
let ( resp2, _) = client. send_request ( request, true ) . unwrap ( ) ;
348
359
349
- /*
350
- let request = Request::builder()
351
- .method(Method::GET)
352
- .uri("https://example.com/")
353
- .body(())
354
- .unwrap();
355
-
356
- let waker = futures::task::noop_waker();
357
- let mut cx = Context::from_waker(&waker);
358
-
359
- // third stream is over max concurrent
360
- assert!(!client.poll_ready(&mut cx).is_ready());
361
-
362
- let err = client.send_request(request, true).unwrap_err();
363
- assert_eq!(err.to_string(), "user error: rejected");
364
- */
365
-
366
-
367
360
h2. drive ( async move {
368
361
resp1. await . expect ( "req" ) ;
369
362
} )
@@ -429,6 +422,8 @@ async fn send_request_poll_ready_when_connection_error() {
429
422
430
423
// first request is allowed
431
424
let ( resp1, _) = client. send_request ( request, true ) . unwrap ( ) ;
425
+ // as long as we let the connection internals tick
426
+ client = h2. drive ( client. ready ( ) ) . await . unwrap ( ) ;
432
427
433
428
let request = Request :: builder ( )
434
429
. method ( Method :: POST )
0 commit comments