notify stream refs when the connection receives EOF (#176)

This commit is contained in:
Sean McArthur
2017-11-28 13:42:22 -08:00
committed by GitHub
parent 79003d0d45
commit 2be2523162
5 changed files with 76 additions and 1 deletions

View File

@@ -319,6 +319,49 @@ fn request_with_connection_headers() {
client.join(srv).wait().expect("wait");
}
#[test]
fn connection_close_notifies_response_future() {
let _ = ::env_logger::init();
let (io, srv) = mock::new();
let srv = srv.assert_client_handshake()
.unwrap()
.recv_settings()
.recv_frame(
frames::headers(1)
.request("GET", "https://http2.akamai.com/")
.eos(),
)
// don't send any response, just close
.close();
let client = Client::handshake(io)
.expect("handshake")
.and_then(|(mut client, conn)| {
let request = Request::builder()
.uri("https://http2.akamai.com/")
.body(())
.unwrap();
let req = client
.send_request(request, true)
.expect("send_request1")
.0
.then(|res| {
let err = res.expect_err("response");
assert_eq!(
err.to_string(),
"broken pipe"
);
Ok(())
});
conn.expect("conn").join(req)
});
client.join(srv).wait().expect("wait");
}
#[test]
fn sending_request_on_closed_connection() {
let _ = ::env_logger::init();