From 21317093285190f854acaf223db2e08f79069757 Mon Sep 17 00:00:00 2001 From: Bartek Walkowicz Date: Thu, 1 Mar 2018 14:49:57 +0100 Subject: Add case for handling infinity for idle/request_timeout Currently cowboy assumes that idle_timeout or request_timeout is a number and always starts timers. Similar situation takes place in case of preface_timeout for http2. This commit adds case for handling infinity as a timeout, allowing to not start mentioned timers. --- test/http2_SUITE.erl | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'test/http2_SUITE.erl') diff --git a/test/http2_SUITE.erl b/test/http2_SUITE.erl index 8ffe2fd..933a2b2 100644 --- a/test/http2_SUITE.erl +++ b/test/http2_SUITE.erl @@ -59,6 +59,23 @@ inactivity_timeout(Config) -> {ok, << _:24, 7:8, _:72, 2:32 >>} = gen_tcp:recv(Socket, 17, 1000), ok. +preface_timeout_infinity(Config) -> + doc("Ensure infinity for preface_timeout is accepted"), + ProtoOpts = #{ + env => #{dispatch => cowboy_router:compile(init_routes(Config))}, + preface_timeout => infinity + }, + {ok, Pid} = cowboy:start_clear(preface_timeout_infinity, [{port, 0}], ProtoOpts), + Ref = erlang:monitor(process, Pid), + Port = ranch:get_port(preface_timeout_infinity), + {ok, _} = do_handshake([{port, Port}|Config]), + receive + {'DOWN', Ref, process, Pid, Reason} -> + error(Reason) + after 1000 -> + cowboy:stop_listener(preface_timeout_infinity) + end. + resp_iolist_body(Config) -> doc("Regression test when response bodies are iolists that " "include improper lists, empty lists and empty binaries. " -- cgit v1.2.3