aboutsummaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/req_SUITE.erl14
1 files changed, 9 insertions, 5 deletions
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