aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLoïc Hoguin <[email protected]>2012-07-22 05:55:48 +0200
committerLoïc Hoguin <[email protected]>2012-07-22 06:03:46 +0200
commited50a5556a788a9780b5a8f85764b509338c1073 (patch)
treeb7d4436263ac6217c50cf8ecd132b0cbadefd4b9
parent45348170f468fadd73e7541aac5bc6f664475d0d (diff)
downloadranch-ed50a5556a788a9780b5a8f85764b509338c1073.tar.gz
ranch-ed50a5556a788a9780b5a8f85764b509338c1073.tar.bz2
ranch-ed50a5556a788a9780b5a8f85764b509338c1073.zip
Add an SSL test
-rw-r--r--test/acceptor_SUITE.erl61
-rw-r--r--test/acceptor_SUITE_data/cert.pem32
2 files changed, 86 insertions, 7 deletions
diff --git a/test/acceptor_SUITE.erl b/test/acceptor_SUITE.erl
index 0a15916..bf74a1d 100644
--- a/test/acceptor_SUITE.erl
+++ b/test/acceptor_SUITE.erl
@@ -16,17 +16,31 @@
-include_lib("common_test/include/ct.hrl").
--export([all/0, groups/0, init_per_suite/1, end_per_suite/1]). %% ct.
--export([tcp_echo/1]). %% tcp.
+%% ct.
+-export([all/0]).
+-export([groups/0]).
+-export([init_per_suite/1]).
+-export([end_per_suite/1]).
+-export([init_per_group/2]).
+-export([end_per_group/2]).
+
+%% ssl.
+-export([ssl_echo/1]).
+
+%% tcp.
+-export([tcp_echo/1]).
%% ct.
all() ->
- [{group, tcp}].
+ [{group, tcp}, {group, ssl}].
groups() ->
- Tests = [tcp_echo],
- [{tcp, Tests}].
+ [{tcp, [
+ tcp_echo
+ ]}, {ssl, [
+ ssl_echo
+ ]}].
init_per_suite(Config) ->
application:start(ranch),
@@ -36,6 +50,39 @@ end_per_suite(_) ->
application:stop(ranch),
ok.
+init_per_group(ssl, Config) ->
+ application:start(crypto),
+ application:start(public_key),
+ application:start(ssl),
+ Config;
+init_per_group(_, Config) ->
+ Config.
+
+end_per_group(ssl, _) ->
+ application:stop(ssl),
+ application:stop(public_key),
+ application:stop(crypto),
+ ok;
+end_per_group(_, _) ->
+ ok.
+
+%% ssl.
+
+ssl_echo(Config) ->
+ {ok, _} = ranch:start_listener(ssl_echo, 1,
+ ranch_ssl, [{port, 0},
+ {certfile, ?config(data_dir, Config) ++ "cert.pem"}],
+ echo_protocol, []),
+ Port = ranch:get_port(ssl_echo),
+ {ok, Socket} = ssl:connect("localhost", Port,
+ [binary, {active, false}, {packet, raw},
+ {certfile, ?config(data_dir, Config) ++ "cert.pem"}]),
+ ok = ssl:send(Socket, <<"SSL Ranch is working!">>),
+ {ok, <<"SSL Ranch is working!">>} = ssl:recv(Socket, 21, 1000),
+ ok = ranch:stop_listener(ssl_echo),
+ {error, closed} = ssl:recv(Socket, 0, 1000),
+ ok.
+
%% tcp.
tcp_echo(_) ->
@@ -44,8 +91,8 @@ tcp_echo(_) ->
Port = ranch:get_port(tcp_echo),
{ok, Socket} = gen_tcp:connect("localhost", Port,
[binary, {active, false}, {packet, raw}]),
- ok = gen_tcp:send(Socket, <<"Ranch is working!">>),
- {ok, <<"Ranch is working!">>} = gen_tcp:recv(Socket, 0, 1000),
+ ok = gen_tcp:send(Socket, <<"TCP Ranch is working!">>),
+ {ok, <<"TCP Ranch is working!">>} = gen_tcp:recv(Socket, 21, 1000),
ok = ranch:stop_listener(tcp_echo),
{error, closed} = gen_tcp:recv(Socket, 0, 1000),
ok.
diff --git a/test/acceptor_SUITE_data/cert.pem b/test/acceptor_SUITE_data/cert.pem
new file mode 100644
index 0000000..7f2150b
--- /dev/null
+++ b/test/acceptor_SUITE_data/cert.pem
@@ -0,0 +1,32 @@
+-----BEGIN PRIVATE KEY-----
+MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBANcQOH8U6JHnmXtf
+20T5Ue7HSfxql75a56tr1ofrHM4P2P7ek/eP04+W2pFrQ3wLGEcnIVHY1xuUeBr+
+GUIBxNzsB2fKGJHDD4RwYCplzxNGVt1F7VXe3fOCdzsNTUYO9YXHF+lsY3afQ6e1
+yb+OR2MFoVX7JCbYvFoJ4XtqCleRAgMBAAECgYANVT0ba9FrUj9qraurYAWbVxGY
+K4eSzpH0R7A6JvJXOBZM3sGvpGQKT+DnCQ5a/1kW+C8Rou7bD95OVhh8xh1NM9ZV
+Ho6McI80iA9FtSVxIecDyteDQOlz2YISgFsnuhnWm6bMVr+S2s9pOIyyQmQNEbV9
+WbYv6URnp7E7YoIinQJBAPdusE4jQlnPR3bBeRVeQ+gwtp0yTznE49rOi5d5Kbk8
+0NWd4KCozPZQnLWZpX/Hh3UcF3AWBII7jScySg2ocFcCQQDegpqSGEeXZReIJ8/Y
+t3yuGK/F0iTMfwXD5Cn7rau5XSzQ4EvdUFSzlLf1i3mSGlLKQ2XIxNEny2gBD6cT
+UuZXAkEA45HWbcdYGyndXIgNSW3tnvxOuL2wyD0iI/ibwrEZgtlAaXhPRPR7rn/t
+4chywtdM6pTvqZNWikEjTc2e9njY+QJABq9j13nVRM4ru9J+YyN4In7pYQckReSX
+FsCXJlGcdDBBdXEXtmmAcfjI4h6zo1kZHayStUp8gjaRRF7lBSabdwJBALZiddQ7
+HX03nFOvEFe0kygtTGDQywmRA0ZLtGwKpruRCSfkd0GGHR28L4RYGOs/MLMS9na+
+RJfoCyHrn4Tp9Fs=
+-----END PRIVATE KEY-----
+-----BEGIN CERTIFICATE-----
+MIICgDCCAemgAwIBAgIJALu4ZVz5MZO5MA0GCSqGSIb3DQEBBQUAMFkxCzAJBgNV
+BAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEwHwYDVQQKDBhJbnRlcm5ldCBX
+aWRnaXRzIFB0eSBMdGQxEjAQBgNVBAMMCWxvY2FsaG9zdDAeFw0xMjA2MTEwNTM5
+MDNaFw0zOTEwMjgwNTM5MDNaMFkxCzAJBgNVBAYTAkFVMRMwEQYDVQQIDApTb21l
+LVN0YXRlMSEwHwYDVQQKDBhJbnRlcm5ldCBXaWRnaXRzIFB0eSBMdGQxEjAQBgNV
+BAMMCWxvY2FsaG9zdDCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA1xA4fxTo
+keeZe1/bRPlR7sdJ/GqXvlrnq2vWh+sczg/Y/t6T94/Tj5bakWtDfAsYRychUdjX
+G5R4Gv4ZQgHE3OwHZ8oYkcMPhHBgKmXPE0ZW3UXtVd7d84J3Ow1NRg71hccX6Wxj
+dp9Dp7XJv45HYwWhVfskJti8Wgnhe2oKV5ECAwEAAaNQME4wHQYDVR0OBBYEFFXs
+nTn66qjp1VqeF816Jg4OJd3yMB8GA1UdIwQYMBaAFFXsnTn66qjp1VqeF816Jg4O
+Jd3yMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADgYEAHwfPJWK5UsWns79S
+jZvdzZ3UPVz0UYj/9Nv/bhxN8HaD1Osj4lFHUiqnTXm7r3hD962lcqRA0dUvVUTv
+Ftz5BEqsjUPkLvN4E4ZG0O5mh8mAEm2M3Ok9eDyZW/8c1kX7r82YnF+8TzI+IIu5
+uZ/oqqAeTL/F3oTcTKSbA3WBrpg=
+-----END CERTIFICATE-----