From f33ff7cbacb204adae9d53ad15829f44c4140525 Mon Sep 17 00:00:00 2001 From: Alexey Lebedeff Date: Fri, 22 Apr 2016 17:33:34 +0300 Subject: Improve error reporting Simplify some return values, improve error messages for eaddrinuse and no_cert. Amended to add tests and simpler code. Also hides the contents of cert and key transport options, if any. --- test/acceptor_SUITE.erl | 37 +++++++++++++++++++++++++++++++++++-- 1 file changed, 35 insertions(+), 2 deletions(-) (limited to 'test/acceptor_SUITE.erl') diff --git a/test/acceptor_SUITE.erl b/test/acceptor_SUITE.erl index 547d1c0..7235420 100644 --- a/test/acceptor_SUITE.erl +++ b/test/acceptor_SUITE.erl @@ -34,14 +34,17 @@ groups() -> tcp_max_connections_infinity, tcp_set_max_connections, tcp_set_max_connections_clean, - tcp_upgrade + tcp_upgrade, + tcp_error_eaddrinuse ]}, {ssl, [ ssl_accept_error, ssl_accept_socket, ssl_active_echo, ssl_echo, ssl_sni_echo, - ssl_sni_fail + ssl_sni_fail, + ssl_error_eaddrinuse, + ssl_error_no_cert ]}, {misc, [ misc_bad_transport, misc_bad_transport_options @@ -177,6 +180,24 @@ do_ssl_sni_fail() -> {'EXIT', _} = begin catch ranch:get_port(Name) end, ok. +ssl_error_eaddrinuse(_) -> + doc("Check that eaddrinuse returns a simplified error."), + Name = name(), + Opts = ct_helper:get_certs_from_ets(), + {ok, _} = ranch:start_listener(Name, 1, ranch_ssl, Opts, active_echo_protocol, []), + Port = ranch:get_port(Name), + {error, eaddrinuse} = ranch:start_listener({Name, fails}, 1, + ranch_ssl, [{port, Port}|Opts], active_echo_protocol, []), + ok = ranch:stop_listener(Name), + %% Make sure the listener stopped. + {'EXIT', _} = begin catch ranch:get_port(Name) end, + ok. + +ssl_error_no_cert(_) -> + doc("Check that missing certificate returns a simplified error."), + {error, no_cert} = ranch:start_listener(name(), 1, ranch_ssl, [], active_echo_protocol, []), + ok. + %% tcp. tcp_accept_socket(_) -> @@ -350,6 +371,18 @@ tcp_upgrade(_) -> receive upgraded -> ok after 1000 -> error(timeout) end, ok = ranch:stop_listener(Name). +tcp_error_eaddrinuse(_) -> + doc("Check that eaddrinuse returns a simplified error."), + Name = name(), + {ok, _} = ranch:start_listener(Name, 1, ranch_tcp, [], active_echo_protocol, []), + Port = ranch:get_port(Name), + {error, eaddrinuse} = ranch:start_listener({Name, fails}, 1, + ranch_tcp, [{port, Port}], active_echo_protocol, []), + ok = ranch:stop_listener(Name), + %% Make sure the listener stopped. + {'EXIT', _} = begin catch ranch:get_port(Name) end, + ok. + %% Supervisor tests connection_type_supervisor(_) -> -- cgit v1.2.3