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

Always dialyze tests and fix some cowboy_req specs

This commit is contained in:
Loïc Hoguin 2018-10-31 10:50:57 +01:00
parent 07078eb47b
commit a8335c63df
No known key found for this signature in database
GPG key ID: 8A9DF795F6FED764
11 changed files with 25 additions and 11 deletions

View file

@ -2,6 +2,10 @@
-module(resp_h).
%% @todo Probably should have a separate handler for errors,
%% so that we can dialyze all the other correct calls.
-dialyzer({nowarn_function, do/3}).
-export([init/2]).
init(Req, Opts) ->

View file

@ -2,6 +2,8 @@
-module(resp_iolist_body_h).
-dialyzer(no_improper_lists).
-export([init/2]).
init(Req0, State) ->

View file

@ -107,6 +107,7 @@ early_error(StreamID, Reason, PartialReq, Resp, Opts) ->
end.
%% @todo It would be good if we could allow this function to return normally.
-spec takeover(_, _, _, _, _, _, _) -> no_return().
takeover(Parent, Ref, Socket, Transport, Opts, Buffer, State=#state{pid=Pid}) ->
Pid ! {Pid, self(), takeover, Parent, Ref, Socket, Transport, Opts, Buffer, State},
exit(normal).

View file

@ -27,6 +27,8 @@ info(_, _, State) ->
terminate(_, _, _) ->
ok.
%% @todo It would be good if we could allow this function to return normally.
-spec takeover(_, _, _, _, _, _, _) -> no_return().
takeover(_, _, _, _, _, _, Pid) ->
Msgs = receive_all([]),
Pid ! {Pid, Msgs},

View file

@ -31,4 +31,5 @@ websocket_info(_, State) ->
{ok, State}.
terminate(Reason, Req, #state{pid=Pid}) ->
Pid ! {terminate, Reason, Req}.
Pid ! {terminate, Reason, Req},
ok.

View file

@ -181,7 +181,7 @@ http10_hostless(Config) ->
tcp -> {ranch_tcp, cowboy_clear};
ssl -> {ranch_ssl, cowboy_tls}
end,
ranch:start_listener(Name, 5, Transport,
{ok, _} = ranch:start_listener(Name, 5, Transport,
config(opts, Config) ++ [{port, Port10}],
Protocol, #{
env =>#{dispatch => cowboy_router:compile([
@ -197,7 +197,7 @@ http10_keepalive_default(Config) ->
Normal = "GET / HTTP/1.0\r\nhost: localhost\r\n\r\n",
Client = raw_open(Config),
ok = raw_send(Client, Normal),
case catch raw_recv_head(Client) of
_ = case catch raw_recv_head(Client) of
{'EXIT', _} -> error(closed);
Data ->
%% Cowboy always advertises itself as HTTP/1.1.
@ -215,7 +215,7 @@ http10_keepalive_forced(Config) ->
Keepalive = "GET / HTTP/1.0\r\nhost: localhost\r\nConnection: keep-alive\r\n\r\n",
Client = raw_open(Config),
ok = raw_send(Client, Keepalive),
case catch raw_recv_head(Client) of
_ = case catch raw_recv_head(Client) of
{'EXIT', _} -> error(closed);
Data ->
%% Cowboy always advertises itself as HTTP/1.1.
@ -268,7 +268,7 @@ do_nc(Config, Input) ->
_Good ->
%% Throw garbage at the server then check if it's still up.
StrPort = integer_to_list(config(port, Config)),
[os:cmd("cat " ++ Input ++ " | nc localhost " ++ StrPort)
_ = [os:cmd("cat " ++ Input ++ " | nc localhost " ++ StrPort)
|| _ <- lists:seq(1, 100)],
200 = do_get("/", Config)
end.

View file

@ -4,10 +4,12 @@
-export([init/2]).
-spec init(_, _) -> no_return().
init(Req, _Opts) ->
#{'case' := Case} = cowboy_req:match_qs(['case'], Req),
case_init(Case, Req).
-spec case_init(_, _) -> no_return().
case_init(<<"init_before_reply">> = Case, _Req) ->
ct_helper_error_h:ignore(?MODULE, case_init, 2),
error(Case);

View file

@ -80,7 +80,7 @@ end_per_suite(Config) ->
%% Special directory.
CharDir = config(char_dir, Config),
_ = [file:delete(CharDir ++ [$/, C]) || C <- lists:seq(0, 127)],
file:del_dir(CharDir),
_ = file:del_dir(CharDir),
%% Static directories.
StaticDir = config(static_dir, Config),
PrivDir = code:priv_dir(ct_helper) ++ "/static",
@ -162,6 +162,7 @@ init_dispatch(Config) ->
%% Internal functions.
-spec do_etag_crash(_, _, _) -> no_return().
do_etag_crash(_, _, _) ->
ct_helper_error_h:ignore(?MODULE, do_etag_crash, 3),
exit(crash).
@ -169,6 +170,7 @@ do_etag_crash(_, _, _) ->
do_etag_custom(_, _, _) ->
{strong, <<"etag">>}.
-spec do_mime_crash(_) -> no_return().
do_mime_crash(_) ->
ct_helper_error_h:ignore(?MODULE, do_mime_crash, 1),
exit(crash).