Skip to content

Commit

Permalink
Test suite: Make server address/ports configurable
Browse files Browse the repository at this point in the history
Allow for modifying the IP address and port numbers used by the test
suite.
  • Loading branch information
weiss committed Aug 9, 2023
1 parent 06dbd88 commit 5e3d7dd
Show file tree
Hide file tree
Showing 3 changed files with 51 additions and 27 deletions.
4 changes: 3 additions & 1 deletion rebar.config
Original file line number Diff line number Diff line change
Expand Up @@ -105,7 +105,9 @@
locals_not_used]}.

{ct_opts,
[{keep_logs, 10}]}.
[{keep_logs, 10},
{config,
["test/eturnal_SUITE.config"]}]}.

{cover_enabled, true}.

Expand Down
11 changes: 11 additions & 0 deletions test/eturnal_SUITE.config
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
%%% Test suite configuration for the eturnal TURN server.
%%%
%%% Note that the following settings must match the configuration in the
%%% eturnal_SUITE_data directory.

{server,
[{address, {127, 0, 0, 1}},
{udp_port, 34780},
{tcp_port, 34780},
{tls_port, 53490},
{auto_port, 34781}]}.
63 changes: 37 additions & 26 deletions test/eturnal_SUITE.erl
Original file line number Diff line number Diff line change
Expand Up @@ -31,11 +31,22 @@

-spec suite() -> [info()].
suite() ->
[{timetrap, {seconds, 120}}].
[{require, {server, [address, udp_port, tcp_port, tls_port, auto_port]}},
{timetrap, {seconds, 120}}].

-spec init_per_suite(config()) -> config().
init_per_suite(Config) ->
Config.
Server = ct:get_config(server),
Address = proplists:get_value(address, Server),
UdpPort = proplists:get_value(udp_port, Server),
TcpPort = proplists:get_value(tcp_port, Server),
TlsPort = proplists:get_value(tls_port, Server),
AutoPort = proplists:get_value(auto_port, Server),
[{address, Address},
{udp_port, UdpPort},
{tcp_port, TcpPort},
{tls_port, TlsPort},
{auto_port, AutoPort} | Config].

-spec end_per_suite(config()) -> ok.
end_per_suite(_Config) ->
Expand Down Expand Up @@ -197,80 +208,80 @@ reload(_Config) ->
ok = eturnal_ctl:reload().

-spec connect_tcp(config()) -> any().
connect_tcp(_Config) ->
Port = 34780,
connect_tcp(Config) ->
Addr = ?config(address, Config),
Port = ?config(tcp_port, Config),
ct:pal("Connecting to 127.0.0.1:~B (TCP)", [Port]),
{ok, Addr} = inet:parse_address("127.0.0.1"),
{ok, Sock} = gen_tcp:connect(Addr, Port, []),
ok = gen_tcp:close(Sock).

-spec connect_tls(config()) -> any().
connect_tls(_Config) ->
Port = 53490,
connect_tls(Config) ->
Addr = ?config(address, Config),
Port = ?config(tls_port, Config),
ct:pal("Connecting to 127.0.0.1:~B (TLS)", [Port]),
{ok, Addr} = inet:parse_address("127.0.0.1"),
{ok, TCPSock} = gen_tcp:connect(Addr, Port, []),
{ok, TLSSock} = fast_tls:tcp_to_tls(TCPSock, [connect]),
ok = fast_tls:close(TLSSock).

-spec turn_udp(config()) -> any().
turn_udp(_Config) ->
Port = 34780,
turn_udp(Config) ->
Addr = ?config(address, Config),
Port = ?config(udp_port, Config),
Username1 = <<"alice">>,
Password1 = <<"l0vesBob">>,
Username2 = <<"2145913200">>,
Password2 = <<"cLwpKS2/9bWHf+agUImD47PIXNE=">>,
Realm = <<"eturnal.net">>,
ct:pal("Allocating TURN relay on 127.0.0.1:~B (UDP)", [Port]),
{ok, Addr} = inet:parse_address("127.0.0.1"),
ok = stun_test:allocate_udp(Addr, Port, Username1, Realm, Password1),
ok = stun_test:allocate_udp(Addr, Port, Username2, Realm, Password2).

-spec stun_udp(config()) -> any().
stun_udp(_Config) ->
Port = 34780,
stun_udp(Config) ->
Addr = ?config(address, Config),
Port = ?config(udp_port, Config),
ct:pal("Performing STUN query against 127.0.0.1:~B (UDP)", [Port]),
{ok, Addr} = inet:parse_address("127.0.0.1"),
Result = stun_test:bind_udp(Addr, Port),
ct:pal("Got query result: ~p", [Result]),
true = is_tuple(Result),
true = element(1, Result) =:= stun.

-spec stun_tcp(config()) -> any().
stun_tcp(_Config) ->
Port = 34780,
stun_tcp(Config) ->
Addr = ?config(address, Config),
Port = ?config(tcp_port, Config),
ct:pal("Performing STUN query against 127.0.0.1:~B (TCP)", [Port]),
{ok, Addr} = inet:parse_address("127.0.0.1"),
Result = stun_test:bind_tcp(Addr, Port),
ct:pal("Got query result: ~p", [Result]),
true = is_tuple(Result),
true = element(1, Result) =:= stun.

-spec stun_tls(config()) -> any().
stun_tls(_Config) ->
Port = 53490,
stun_tls(Config) ->
Addr = ?config(address, Config),
Port = ?config(tls_port, Config),
ct:pal("Performing STUN query against 127.0.0.1:~B (TLS)", [Port]),
{ok, Addr} = inet:parse_address("127.0.0.1"),
Result = stun_test:bind_tls(Addr, Port),
ct:pal("Got query result: ~p", [Result]),
true = is_tuple(Result),
true = element(1, Result) =:= stun.

-spec stun_tcp_auto(config()) -> any().
stun_tcp_auto(_Config) ->
Port = 34781,
stun_tcp_auto(Config) ->
Addr = ?config(address, Config),
Port = ?config(auto_port, Config),
ct:pal("Performing STUN query against 127.0.0.1:~B (TCP)", [Port]),
{ok, Addr} = inet:parse_address("127.0.0.1"),
Result = stun_test:bind_tcp(Addr, Port),
ct:pal("Got query result: ~p", [Result]),
true = is_tuple(Result),
true = element(1, Result) =:= stun.

-spec stun_tls_auto(config()) -> any().
stun_tls_auto(_Config) ->
Port = 34781,
stun_tls_auto(Config) ->
Addr = ?config(address, Config),
Port = ?config(auto_port, Config),
ct:pal("Performing STUN query against 127.0.0.1:~B (TLS)", [Port]),
{ok, Addr} = inet:parse_address("127.0.0.1"),
Result = stun_test:bind_tls(Addr, Port),
ct:pal("Got query result: ~p", [Result]),
true = is_tuple(Result),
Expand Down

0 comments on commit 5e3d7dd

Please sign in to comment.