From d143235a79122f021cb537127dc9dd24073693fe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Hoguin?= Date: Mon, 16 Sep 2019 11:34:51 +0200 Subject: Fix closing of connection on response_body_too_small --- test/req_SUITE.erl | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) (limited to 'test') diff --git a/test/req_SUITE.erl b/test/req_SUITE.erl index c79dbf6..cb54167 100644 --- a/test/req_SUITE.erl +++ b/test/req_SUITE.erl @@ -151,7 +151,6 @@ do_get_error(Path, Headers, Config) -> nofin -> gun:await_body(ConnPid, Ref); fin -> {ok, <<>>} end, - gun:close(ConnPid), case Result of {ok, RespBody} -> {Status, RespHeaders, do_decode(RespHeaders, RespBody)}; _ -> Result @@ -953,16 +952,21 @@ stream_body_content_length_nofin(Config) -> ok. stream_body_content_length_nofin_error(Config) -> - doc("Not all of body sent."), + doc("Not all of the response body sent."), case config(protocol, Config) of http -> case do_get_error("/resp/stream_body_content_length/nofin-error", Config) of + %% When compression is used content-length is not sent. {200, Headers, <<"Hello">>} -> {_, <<"gzip">>} = lists:keyfind(<<"content-encoding">>, 1, Headers); + %% The server closes the connection when the body couldn't be sent fully. {error, {stream_error, closed}} -> - ok; - {error, timeout} -> - ok + receive + {gun_down, ConnPid, _, _, _, _} -> + gun:close(ConnPid) + after 1000 -> + error(timeout) + end end; http2 -> %% @todo HTTP2 should have the same content-length checks -- cgit v1.2.3