aboutsummaryrefslogtreecommitdiffstats
path: root/lib/common_test/test/ct_telnet_SUITE_data/ct_telnet_basic_SUITE.erl
diff options
context:
space:
mode:
Diffstat (limited to 'lib/common_test/test/ct_telnet_SUITE_data/ct_telnet_basic_SUITE.erl')
-rw-r--r--lib/common_test/test/ct_telnet_SUITE_data/ct_telnet_basic_SUITE.erl98
1 files changed, 81 insertions, 17 deletions
diff --git a/lib/common_test/test/ct_telnet_SUITE_data/ct_telnet_basic_SUITE.erl b/lib/common_test/test/ct_telnet_SUITE_data/ct_telnet_basic_SUITE.erl
index 203062eba0..a443893c5d 100644
--- a/lib/common_test/test/ct_telnet_SUITE_data/ct_telnet_basic_SUITE.erl
+++ b/lib/common_test/test/ct_telnet_SUITE_data/ct_telnet_basic_SUITE.erl
@@ -5,50 +5,95 @@
-include_lib("common_test/include/ct.hrl").
+-define(no_of_sessions, 2).
+-define(conn_name(N), (list_to_atom("telnet_server_conn"++integer_to_list(N)))).
+-define(req_n(), (begin
+ ?MODULE ! {self(),req},
+ receive _N -> _N after 2000 -> 0 end
+ end)).
+-define(get_n(Cfg), (proplists:get_value(n, Cfg))).
+
%%--------------------------------------------------------------------
%% TEST SERVER CALLBACK FUNCTIONS
%%--------------------------------------------------------------------
suite() -> [
- {require,the_telnet_server,{unix,[telnet]}},
{require,ct_conn_log},
{ct_hooks, [{cth_conn_log,[]}]}
].
-all() ->
+operations() ->
[start_stop, send_and_get, expect, already_closed,
cmd, sendf, close_wrong_type].
+mult_case(_Case, 0) -> [];
+mult_case(Case, N) -> [Case | mult_case(Case, N-1)].
+
groups() ->
- [].
+ [{single_connection,[],operations()},
+ {multiple_connections,[parallel],mult_case(sessions,?no_of_sessions)}].
+
+all() ->
+ [{group,single_connection},
+ {group,multiple_connections}].
init_per_suite(Config) ->
ct:pal("Will use these log hook options: ~p",
[ct:get_config(ct_conn_log,[])]),
+ SerialNo = spawn(?MODULE, serialno, [1,?no_of_sessions]),
Config.
end_per_suite(_Config) ->
+ catch exit(whereis(?MODULE), kill),
ok.
-init_per_group(_GroupName, Config) ->
- Config.
+init_per_group(Group, Config) ->
+ if Group == single_connection ->
+ ct:require(?conn_name(1),{unix,[telnet]});
+ true ->
+ ok
+ end,
+ [{n,1} | Config].
end_per_group(_GroupName, Config) ->
Config.
-start_stop(_Config) ->
- {ok, Handle} = ct_telnet:open(the_telnet_server),
+init_per_testcase(sessions, Config) ->
+ N = ?req_n(),
+ ct:log("Using connection ~w for session ~w on ~w",
+ [?conn_name(N),N,self()]),
+ ct:require(?conn_name(N),{unix,[telnet]}),
+ [{n,N} | proplists:delete(n,Config)];
+init_per_testcase(Case, Config) ->
+ ct:log("Testcase ~w using connection ~w",
+ [Case,?conn_name(?get_n(Config))]),
+ Config.
+
+end_per_testcase(_, _) ->
+ ok.
+
+%%%-----------------------------------------------------------------
+%%% TEST CASES
+
+sessions(Config) ->
+ [apply(?MODULE,Op,[Config]) || Op <- operations()],
+ ok.
+
+start_stop(Config) ->
+ ct:log("Opening ~w...", [?conn_name(?get_n(Config))]),
+ {ok, Handle} = ct_telnet:open(?conn_name(?get_n(Config))),
ok = ct_telnet:close(Handle),
ok.
-send_and_get(_) ->
- {ok, Handle} = ct_telnet:open(the_telnet_server),
+
+send_and_get(Config) ->
+ {ok, Handle} = ct_telnet:open(?conn_name(?get_n(Config))),
ok = ct_telnet:send(Handle, "ayt"),
{ok, _Data} = ct_telnet:get_data(Handle),
ok = ct_telnet:close(Handle),
ok.
-expect(_) ->
- {ok, Handle} = ct_telnet:open(the_telnet_server),
+expect(Config) ->
+ {ok, Handle} = ct_telnet:open(?conn_name(?get_n(Config))),
ok = ct_telnet:send(Handle, "echo ayt"),
ok = case ct_telnet:expect(Handle, ["ayt"]) of
{ok, _} ->
@@ -59,21 +104,21 @@ expect(_) ->
ok = ct_telnet:close(Handle),
ok.
-already_closed(_) ->
- {ok, Handle} = ct_telnet:open(the_telnet_server),
+already_closed(Config) ->
+ {ok, Handle} = ct_telnet:open(?conn_name(?get_n(Config))),
ok = ct_telnet:close(Handle),
{error, already_closed} = ct_telnet:close(Handle),
ok.
-cmd(_) ->
- {ok, Handle} = ct_telnet:open(the_telnet_server),
+cmd(Config) ->
+ {ok, Handle} = ct_telnet:open(?conn_name(?get_n(Config))),
{ok, _} = ct_telnet:cmd(Handle, "display"),
{ok, _} = ct_telnet:cmdf(Handle, "~s ~s", ["set", "bsasdel"]),
ok = ct_telnet:close(Handle),
ok.
-sendf(_) ->
- {ok, Handle} = ct_telnet:open(the_telnet_server),
+sendf(Config) ->
+ {ok, Handle} = ct_telnet:open(?conn_name(?get_n(Config))),
ok = ct_telnet:sendf(Handle, "~s", ["ayt"]),
ok = ct_telnet:close(Handle),
ok.
@@ -81,3 +126,22 @@ sendf(_) ->
close_wrong_type(_) ->
{error, _} = ct_telnet:close(whatever),
ok.
+
+%%%-----------------------------------------------------------------
+%%% HELP FUNCS
+
+serialno(Start, Stop) ->
+ register(?MODULE, self()),
+ loop(Start, Stop).
+
+loop(X, Y) when X > Y ->
+ done;
+loop(X, Y) ->
+ receive
+ {Pid,req} ->
+ Pid ! X
+ end,
+ loop(X+1, Y).
+
+
+