Skip to content

Commit 46fb80b

Browse files
authored
test: early server response with data (#703)
- fix of the test's name after changing it in #634 - additional test that server also sends data frames correctly
1 parent 6a75f23 commit 46fb80b

File tree

1 file changed

+7
-3
lines changed

1 file changed

+7
-3
lines changed

tests/h2-tests/tests/server.rs

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -553,7 +553,7 @@ async fn recv_connection_header() {
553553
}
554554

555555
#[tokio::test]
556-
async fn sends_reset_cancel_when_req_body_is_dropped() {
556+
async fn sends_reset_no_error_when_req_body_is_dropped() {
557557
h2_support::trace_init!();
558558
let (io, mut client) = mock::new();
559559

@@ -563,8 +563,11 @@ async fn sends_reset_cancel_when_req_body_is_dropped() {
563563
client
564564
.send_frame(frames::headers(1).request("POST", "https://example.com/"))
565565
.await;
566+
// server responded with data before consuming POST-request's body, resulting in `RST_STREAM(NO_ERROR)`.
567+
client.recv_frame(frames::headers(1).response(200)).await;
568+
client.recv_frame(frames::data(1, vec![0; 16384])).await;
566569
client
567-
.recv_frame(frames::headers(1).response(200).eos())
570+
.recv_frame(frames::data(1, vec![0; 16384]).eos())
568571
.await;
569572
client
570573
.recv_frame(frames::reset(1).reason(Reason::NO_ERROR))
@@ -578,7 +581,8 @@ async fn sends_reset_cancel_when_req_body_is_dropped() {
578581
assert_eq!(req.method(), &http::Method::POST);
579582

580583
let rsp = http::Response::builder().status(200).body(()).unwrap();
581-
stream.send_response(rsp, true).unwrap();
584+
let mut tx = stream.send_response(rsp, false).unwrap();
585+
tx.send_data(vec![0; 16384 * 2].into(), true).unwrap();
582586
}
583587
assert!(srv.next().await.is_none());
584588
};

0 commit comments

Comments
 (0)