aboutsummaryrefslogtreecommitdiffstats
path: root/test/req_SUITE.erl
diff options
context:
space:
mode:
authorLoïc Hoguin <[email protected]>2018-05-17 16:23:33 +0200
committerLoïc Hoguin <[email protected]>2018-05-17 16:23:33 +0200
commit3d35319112186ee7d4cbe4fa40fcf168d28634a9 (patch)
treee99665bf84b226a5ae92583d6c3d6929062b2810 /test/req_SUITE.erl
parent9ee8904cc6cbfd08ba2e8fbd165facba9719534c (diff)
downloadcowboy-3d35319112186ee7d4cbe4fa40fcf168d28634a9.tar.gz
cowboy-3d35319112186ee7d4cbe4fa40fcf168d28634a9.tar.bz2
cowboy-3d35319112186ee7d4cbe4fa40fcf168d28634a9.zip
Remove/convert tests about request body from old_http_SUITE
Diffstat (limited to 'test/req_SUITE.erl')
-rw-r--r--test/req_SUITE.erl25
1 files changed, 16 insertions, 9 deletions
diff --git a/test/req_SUITE.erl b/test/req_SUITE.erl
index 22434b6..6866123 100644
--- a/test/req_SUITE.erl
+++ b/test/req_SUITE.erl
@@ -432,28 +432,35 @@ read_body(Config) ->
<<"hello world!">> = do_body("POST", "/read_body", [], "hello world!", Config),
%% We expect to have read *at least* 1000 bytes.
<<0:8000, _/bits>> = do_body("POST", "/opts/read_body/length", [], <<0:8000000>>, Config),
- %% We read any length for at most 1 second.
- %%
- %% The body is sent twice, first with nofin, then wait 2 seconds, then again with fin.
- <<0:8000000>> = do_read_body_period("/opts/read_body/period", <<0:8000000>>, Config),
%% The timeout value is set too low on purpose to ensure a crash occurs.
ok = do_read_body_timeout("/opts/read_body/timeout", <<0:8000000>>, Config),
%% 10MB body larger than default length.
<<0:80000000>> = do_body("POST", "/full/read_body", [], <<0:80000000>>, Config),
ok.
-do_read_body_period(Path, Body, Config) ->
+read_body_mtu(Config) ->
+ doc("Request body whose sizes are around the MTU."),
+ MTU = ct_helper:get_loopback_mtu(),
+ _ = [begin
+ Body = <<0:Size/unit:8>>,
+ Body = do_body("POST", "/full/read_body", [], Body, Config)
+ end || Size <- lists:seq(MTU - 10, MTU + 10)],
+ ok.
+
+read_body_period(Config) ->
+ doc("Read the request body for at most 1 second."),
ConnPid = gun_open(Config),
- Ref = gun:request(ConnPid, "POST", Path, [
+ Body = <<0:8000000>>,
+ Ref = gun:request(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 2 seconds, then again with fin.
gun:data(ConnPid, Ref, nofin, Body),
timer:sleep(2000),
gun:data(ConnPid, Ref, fin, Body),
{response, nofin, 200, _} = gun:await(ConnPid, Ref),
- {ok, RespBody} = gun:await_body(ConnPid, Ref),
- gun:close(ConnPid),
- RespBody.
+ {ok, Body} = gun:await_body(ConnPid, Ref),
+ gun:close(ConnPid).
%% We expect a crash.
do_read_body_timeout(Path, Body, Config) ->