0
Fork 0
mirror of https://github.com/ninenines/cowboy.git synced 2025-07-14 12:20:24 +00:00

Rework the req_SUITE:read_body_period test

To avoid intermittent test failures. We only want to make
sure the function eventually returns so we don't need to
use timeouts in the test itself, or check exactly what was
read.
This commit is contained in:
Loïc Hoguin 2020-04-02 14:01:26 +02:00
parent 2b65b575c6
commit 789768e8d3
No known key found for this signature in database
GPG key ID: 8A9DF795F6FED764

View file

@ -496,12 +496,14 @@ read_body_period(Config) ->
Ref = gun:headers(ConnPid, "POST", "/opts/read_body/period", [
{<<"content-length">>, integer_to_binary(byte_size(Body) * 2)}
]),
%% The body is sent twice, first with nofin, then wait 3 seconds, then again with fin.
%% The body is sent without fin. The server will read what it can
%% for 2 seconds. The test succeeds if we get some of the data back
%% (meaning the function will have returned after the period ends).
gun:data(ConnPid, Ref, nofin, Body),
timer:sleep(3000),
gun:data(ConnPid, Ref, fin, Body),
{response, nofin, 200, _} = gun:await(ConnPid, Ref),
{ok, Body} = gun:await_body(ConnPid, Ref),
{data, _, Data} = gun:await(ConnPid, Ref),
%% We expect to read at least some data.
true = Data =/= <<>>,
gun:close(ConnPid).
%% We expect a crash.