From 150cde970b571aa3c891cab62b3fee708893bd54 Mon Sep 17 00:00:00 2001 From: Nelson Vides Date: Fri, 14 May 2021 15:54:52 +0200 Subject: [PATCH] Correctly detect cowboy_tls process --- test/cowboy_test.erl | 12 ++++++------ test/proxy_header_SUITE.erl | 12 ++++++++++-- 2 files changed, 16 insertions(+), 8 deletions(-) diff --git a/test/cowboy_test.erl b/test/cowboy_test.erl index 44734b5e..14dbcee4 100644 --- a/test/cowboy_test.erl +++ b/test/cowboy_test.erl @@ -21,21 +21,21 @@ %% Listeners initialization. init_http(Ref, ProtoOpts, Config) -> - {ok, _} = cowboy:start_clear(Ref, [{port, 0}], ProtoOpts), + {ok, Pid} = cowboy:start_clear(Ref, [{port, 0}], ProtoOpts), Port = ranch:get_port(Ref), - [{ref, Ref}, {type, tcp}, {protocol, http}, {port, Port}, {opts, []}|Config]. + [{supervisor, Pid}, {ref, Ref}, {type, tcp}, {protocol, http}, {port, Port}, {opts, []}|Config]. init_https(Ref, ProtoOpts, Config) -> Opts = ct_helper:get_certs_from_ets(), - {ok, _} = cowboy:start_tls(Ref, Opts ++ [{port, 0}, {verify, verify_none}], ProtoOpts), + {ok, Pid} = cowboy:start_tls(Ref, Opts ++ [{port, 0}, {verify, verify_none}], ProtoOpts), Port = ranch:get_port(Ref), - [{ref, Ref}, {type, ssl}, {protocol, http}, {port, Port}, {opts, Opts}|Config]. + [{supervisor, Pid}, {ref, Ref}, {type, ssl}, {protocol, http}, {port, Port}, {opts, Opts}|Config]. init_http2(Ref, ProtoOpts, Config) -> Opts = ct_helper:get_certs_from_ets(), - {ok, _} = cowboy:start_tls(Ref, Opts ++ [{port, 0}, {verify, verify_none}], ProtoOpts), + {ok, Pid} = cowboy:start_tls(Ref, Opts ++ [{port, 0}, {verify, verify_none}], ProtoOpts), Port = ranch:get_port(Ref), - [{ref, Ref}, {type, ssl}, {protocol, http2}, {port, Port}, {opts, Opts}|Config]. + [{supervisor, Pid}, {ref, Ref}, {type, ssl}, {protocol, http2}, {port, Port}, {opts, Opts}|Config]. %% Common group of listeners used by most suites. diff --git a/test/proxy_header_SUITE.erl b/test/proxy_header_SUITE.erl index d655c00c..09002c5c 100644 --- a/test/proxy_header_SUITE.erl +++ b/test/proxy_header_SUITE.erl @@ -75,8 +75,8 @@ fail_gracefully_on_disconnect(Config) -> doc("Probing a port does not generate a crash"), {ok, Socket} = gen_tcp:connect("localhost", config(port, Config), [binary, {active, false}, {packet, raw}]), - timer:sleep(100), - Pid = ct_helper:get_remote_pid_tcp(Socket), + timer:sleep(50), + Pid = do_get_sockets_pid(Config, Socket, config(type, Config)), Ref = erlang:monitor(process, Pid), gen_tcp:close(Socket), receive @@ -255,3 +255,11 @@ do_recv_101(Client) -> "\r\n" >>} = raw_recv(Client, 71, 1000), ok. + +do_get_sockets_pid(_Config, Socket, tcp) -> + ct_helper:get_remote_pid_tcp(Socket); +do_get_sockets_pid(Config, _Socket, ssl) -> + Sup = config(supervisor, Config), + {_, RanchConns, _, _} = lists:keyfind(ranch_conns_sup, 1, supervisor:which_children(Sup)), + {_, CowboyTls, _, _} = lists:keyfind(cowboy_tls, 1, supervisor:which_children(RanchConns)), + CowboyTls.