Browse Source

Move the pipeline test to the rfc7230 suite

Loïc Hoguin 7 years ago
parent
commit
14173d5929
2 changed files with 21 additions and 14 deletions
  1. 0 6
      test/http_SUITE.erl
  2. 21 8
      test/rfc7230_SUITE.erl

+ 0 - 6
test/http_SUITE.erl

@@ -377,12 +377,6 @@ parse_host(Config) ->
 	end || {Host, Body} <- Tests],
 	ok.
 
-pipeline(Config) ->
-	ConnPid = gun_open(Config),
-	Refs = [gun:get(ConnPid, "/") || _ <- lists:seq(1, 5)],
-	_ = [{response, nofin, 200, _} = gun:await(ConnPid, Ref) || Ref <- Refs],
-	ok.
-
 rest_param_all(Config) ->
 	ConnPid = gun_open(Config),
 	%% Accept without param.

+ 21 - 8
test/rfc7230_SUITE.erl

@@ -1417,14 +1417,27 @@ limit_requests_keepalive(Config) ->
 %%A server that doesn't want to read the entire body of a message
 %%must close the connection, if possible after sending the "close"
 %%connection option in the response. (RFC7230 6.3)
-%
-%pipeline(Config) ->
-%%% @todo pipeline_parallel (safe methods can, others can't)
-%A server can receive more than one request before any response
-%is sent. This is called pipelining. The requests can be processed
-%in parallel if they all have safe methods. Responses must be sent
-%in the same order as the requests. (RFC7230 6.3.2)
-%
+
+pipeline(Config) ->
+	doc("A server can receive more than one request before any response "
+		"is sent. This is called pipelining. Responses must be sent "
+		"in the same order as the requests. (RFC7230 6.3.2)"),
+	ConnPid = gun_open(Config),
+	Refs = [{
+		gun:get(ConnPid, "/"),
+		gun:delete(ConnPid, "/echo/method")
+	} || _ <- lists:seq(1, 25)],
+	_ = [begin
+		{response, nofin, 200, _} = gun:await(ConnPid, Ref1),
+		{ok, <<"Hello world!">>} = gun:await_body(ConnPid, Ref1),
+		{response, nofin, 200, _} = gun:await(ConnPid, Ref2),
+		{ok, <<"DELETE">>} = gun:await_body(ConnPid, Ref2)
+	end || {Ref1, Ref2} <- Refs],
+	ok.
+
+%% @todo pipeline_parallel (safe methods can, others can't)
+%The requests can be processed in parallel if they all have safe methods.
+
 %@todo
 %The server must reject abusive traffic by closing the connection.
 %Abusive traffic can come from the form of too many requests in a