summaryrefslogtreecommitdiff
path: root/lib/megaco/test/megaco_pending_limit_SUITE.erl
diff options
context:
space:
mode:
Diffstat (limited to 'lib/megaco/test/megaco_pending_limit_SUITE.erl')
-rw-r--r--lib/megaco/test/megaco_pending_limit_SUITE.erl667
1 files changed, 297 insertions, 370 deletions
diff --git a/lib/megaco/test/megaco_pending_limit_SUITE.erl b/lib/megaco/test/megaco_pending_limit_SUITE.erl
index d5db6e6bc0..dfe52535c9 100644
--- a/lib/megaco/test/megaco_pending_limit_SUITE.erl
+++ b/lib/megaco/test/megaco_pending_limit_SUITE.erl
@@ -1,7 +1,7 @@
%%
%% %CopyrightBegin%
%%
-%% Copyright Ericsson AB 2003-2019. All Rights Reserved.
+%% Copyright Ericsson AB 2003-2022. All Rights Reserved.
%%
%% Licensed under the Apache License, Version 2.0 (the "License");
%% you may not use this file except in compliance with the License.
@@ -46,31 +46,6 @@
]).
--ifdef(megaco_hipe_special).
--export([
- %% Case: recv_limit_exceeded1
- rle1_mgc_verify_service_change_req_msg/2,
- rle1_mgc_verify_notify_req_msg/1,
- rle1_mg_verify_handle_connect/1,
- rle1_mg_verify_service_change_rep/1,
- rle1_mg_verify_trans_rep/1,
-
- %% Case: otp_4956
- otp_4956_mgc_verify_handle_connect/1,
- otp_4956_mgc_verify_service_change_req/2,
- otp_4956_mgc_verify_notify_req1/1,
- otp_4956_mgc_verify_notify_req2/1,
- otp_4956_mgc_verify_handle_trans_req_abort/1,
- otp_4956_mgc_verify_handle_disconnect/1,
- otp_4956_mg_verify_service_change_rep_msg/1,
- otp_4956_mg_verify_pending_msg/1,
- otp_4956_mg_verify_pending_limit_msg/1,
-
- %% Utility
- encode_msg/3,
- decode_msg/3
- ]).
--endif.
-include_lib("megaco/include/megaco.hrl").
-include_lib("megaco/include/megaco_message_v1.hrl").
@@ -89,6 +64,10 @@
-define(MGC_START(Pid, Mid, ET, Conf, Verb),
megaco_test_mgc:start(Pid, Mid, ET, Conf, Verb)).
+-define(MGC_START(Pid, ET, Conf),
+ ?MGC_START(Pid, {deviceName, "ctrl"}, ET, Conf, ?MGC_VERBOSITY)).
+-define(MGC_START(Pid, ET),
+ ?MGC_START(Pid, ET, [])).
-define(MGC_STOP(Pid), megaco_test_mgc:stop(Pid)).
-define(MGC_GET_STATS(Pid, No), megaco_test_mgc:get_stats(Pid, No)).
-define(MGC_RESET_STATS(Pid), megaco_test_mgc:reset_stats(Pid)).
@@ -110,6 +89,10 @@
-define(MG_START(Pid, Mid, Enc, Transp, Conf, Verb),
megaco_test_mg:start(Pid, Mid, Enc, Transp, Conf, Verb)).
+-define(MG_START(Pid, Enc, Transp, Conf),
+ ?MG_START(Pid, {deviceName, "mg"}, Enc, Transp, Conf, ?MG_VERBOSITY)).
+-define(MG_START(Pid, Enc, Transp),
+ ?MG_START(Pid, Enc, Transp, [])).
-define(MG_STOP(Pid), megaco_test_mg:stop(Pid)).
-define(MG_GET_STATS(Pid, No), megaco_test_mg:get_stats(Pid, No)).
-define(MG_RESET_STATS(Pid), megaco_test_mg:reset_stats(Pid)).
@@ -278,30 +261,39 @@ sent_timer_late_reply(suite) ->
sent_timer_late_reply(doc) ->
"...";
sent_timer_late_reply(Config) when is_list(Config) ->
- put(verbosity, ?TEST_VERBOSITY),
- put(sname, "TEST"),
- put(tc, sent_timer_late_reply),
- i("starting"),
-
- MgcNode = make_node_name(mgc),
- MgNode = make_node_name(mg),
- d("start nodes: "
- "~n MgcNode: ~p"
- "~n MgNode: ~p",
- [MgcNode, MgNode]),
- ok = ?START_NODES([MgcNode, MgNode], true),
-
+ Cond = fun() -> ok end,
+ Pre = fun() ->
+ put(tc, ?FUNCTION_NAME),
+ MgcNode = make_node_name(pl_stlr_mgc),
+ MgNode = make_node_name(pl_stlr_mg),
+ i("try start nodes: "
+ "~n MgcNode: ~p"
+ "~n MgNode: ~p",
+ [MgcNode, MgNode]),
+ Nodes = [MgcNode, MgNode],
+ ok = ?START_NODES(Nodes, true),
+ #{nodes => Nodes}
+ end,
+ Case = fun(State) ->
+ do_sent_timer_late_reply(State)
+ end,
+ Post = fun(#{nodes := Nodes}) ->
+ i("stop nodes"),
+ ?STOP_NODES(Nodes),
+ ok
+ end,
+ try_tc(?FUNCTION_NAME, Cond, Pre, Case, Post).
+
+do_sent_timer_late_reply(#{nodes := [MgcNode, MgNode]}) ->
%% Start the MGC and MGs
i("[MGC] start"),
ET = [{text,tcp}, {text,udp}, {binary,tcp}, {binary,udp}],
MgcConf = [{megaco_trace, false}],
- {ok, Mgc} =
- ?MGC_START(MgcNode, {deviceName, "ctrl"}, ET, MgcConf, ?MGC_VERBOSITY),
+ {ok, Mgc} = ?MGC_START(MgcNode, ET, MgcConf),
i("[MG] start"),
- MgMid = {deviceName, "mg"},
- MgConf = [{megaco_trace, io}],
- {ok, Mg} = ?MG_START(MgNode, MgMid, text, tcp, MgConf, ?MG_VERBOSITY),
+ MgConf = [{megaco_trace, io}],
+ {ok, Mg} = ?MG_START(MgNode, text, tcp, MgConf),
d("MG user info: ~p", [?MG_USER_INFO(Mg, all)]),
@@ -342,11 +334,7 @@ sent_timer_late_reply(Config) when is_list(Config) ->
i("[MGC] stop"),
?MGC_STOP(Mgc),
- %% Cleanup
- d("stop nodes"),
- ?STOP_NODES([MgcNode, MgNode]),
-
- i("done", []),
+ i("done"),
ok.
@@ -357,29 +345,37 @@ sent_timer_exceeded(suite) ->
sent_timer_exceeded(doc) ->
"...";
sent_timer_exceeded(Config) when is_list(Config) ->
- put(verbosity, ?TEST_VERBOSITY),
- put(sname, "TEST"),
- put(tc, sent_timer_exceeded),
- i("starting"),
-
- MgcNode = make_node_name(mgc),
- MgNode = make_node_name(mg),
- d("start nodes: "
- "~n MgcNode: ~p"
- "~n MgNode: ~p",
- [MgcNode, MgNode]),
- ok = ?START_NODES([MgcNode, MgNode], true),
-
+ Cond = fun() -> ok end,
+ Pre = fun() ->
+ put(tc, ?FUNCTION_NAME),
+ MgcNode = make_node_name(pl_ste_mgc),
+ MgNode = make_node_name(pl_ste_mg),
+ i("try start nodes: "
+ "~n MgcNode: ~p"
+ "~n MgNode: ~p",
+ [MgcNode, MgNode]),
+ Nodes = [MgcNode, MgNode],
+ ok = ?START_NODES(Nodes, true),
+ #{nodes => Nodes}
+ end,
+ Case = fun(State) ->
+ do_sent_timer_exceeded(State)
+ end,
+ Post = fun(#{nodes := Nodes}) ->
+ i("stop nodes"),
+ ?STOP_NODES(Nodes),
+ ok
+ end,
+ try_tc(?FUNCTION_NAME, Cond, Pre, Case, Post).
+
+do_sent_timer_exceeded(#{nodes := [MgcNode, MgNode]}) ->
%% Start the MGC and MGs
i("[MGC] start"),
ET = [{text,tcp}, {text,udp}, {binary,tcp}, {binary,udp}],
- {ok, Mgc} =
- ?MGC_START(MgcNode, {deviceName, "ctrl"}, ET, [], ?MGC_VERBOSITY),
+ {ok, Mgc} = ?MGC_START(MgcNode, ET),
- i("[MG] start"),
- MgMid = {deviceName, "mg"},
- MgConfig = [],
- {ok, Mg} = ?MG_START(MgNode, MgMid, text, tcp, MgConfig, ?MG_VERBOSITY),
+ i("[MG] start"),
+ {ok, Mg} = ?MG_START(MgNode, text, tcp),
d("MG user info: ~p", [?MG_USER_INFO(Mg, all)]),
@@ -419,11 +415,7 @@ sent_timer_exceeded(Config) when is_list(Config) ->
i("[MGC] stop"),
?MGC_STOP(Mgc),
- %% Cleanup
- d("stop nodes"),
- ?STOP_NODES([MgcNode, MgNode]),
-
- i("done", []),
+ i("done"),
ok.
@@ -434,29 +426,37 @@ sent_timer_exceeded_long(suite) ->
sent_timer_exceeded_long(doc) ->
"...";
sent_timer_exceeded_long(Config) when is_list(Config) ->
- put(verbosity, ?TEST_VERBOSITY),
- put(sname, "TEST"),
- put(tc, sent_timer_exceeded_long),
- i("starting"),
-
- MgcNode = make_node_name(mgc),
- MgNode = make_node_name(mg),
- d("start nodes: "
- "~n MgcNode: ~p"
- "~n MgNode: ~p",
- [MgcNode, MgNode]),
- ok = ?START_NODES([MgcNode, MgNode], true),
-
+ Cond = fun() -> ok end,
+ Pre = fun() ->
+ put(tc, ?FUNCTION_NAME),
+ MgcNode = make_node_name(pl_stel_mgc),
+ MgNode = make_node_name(pl_stel_mg),
+ i("try start nodes: "
+ "~n MgcNode: ~p"
+ "~n MgNode: ~p",
+ [MgcNode, MgNode]),
+ Nodes = [MgcNode, MgNode],
+ ok = ?START_NODES(Nodes, true),
+ #{nodes => Nodes}
+ end,
+ Case = fun(State) ->
+ do_sent_timer_exceeded_long(State)
+ end,
+ Post = fun(#{nodes := Nodes}) ->
+ i("stop nodes"),
+ ?STOP_NODES(Nodes),
+ ok
+ end,
+ try_tc(?FUNCTION_NAME, Cond, Pre, Case, Post).
+
+do_sent_timer_exceeded_long(#{nodes := [MgcNode, MgNode]}) ->
%% Start the MGC and MGs
i("[MGC] start"),
ET = [{text,tcp}, {text,udp}, {binary,tcp}, {binary,udp}],
- {ok, Mgc} =
- ?MGC_START(MgcNode, {deviceName, "ctrl"}, ET, [], ?MGC_VERBOSITY),
+ {ok, Mgc} = ?MGC_START(MgcNode, ET),
i("[MG] start"),
- MgMid = {deviceName, "mg"},
- MgConfig = [],
- {ok, Mg} = ?MG_START(MgNode, MgMid, text, tcp, MgConfig, ?MG_VERBOSITY),
+ {ok, Mg} = ?MG_START(MgNode, text, tcp),
d("MG user info: ~p", [?MG_USER_INFO(Mg, all)]),
@@ -494,11 +494,7 @@ sent_timer_exceeded_long(Config) when is_list(Config) ->
i("[MGC] stop"),
?MGC_STOP(Mgc),
- %% Cleanup
- d("stop nodes"),
- ?STOP_NODES([MgcNode, MgNode]),
-
- i("done", []),
+ i("done"),
ok.
@@ -508,35 +504,42 @@ sent_timer_exceeded_long(Config) when is_list(Config) ->
%% This test case can only be run with the stack compiled with
%% the MEGACO_TEST_CODE flag. Therefor there is no point in
%% including this test case in the usual test suite
--ifdef(MEGACO_TEST_CODE).
sent_resend_late_reply(suite) ->
[];
sent_resend_late_reply(doc) ->
"...";
sent_resend_late_reply(Config) when is_list(Config) ->
- put(verbosity, ?TEST_VERBOSITY),
- put(sname, "TEST"),
- put(tc, sent_resend_late_reply),
- i("starting"),
-
- MgcNode = make_node_name(mgc),
- MgNode = make_node_name(mg),
- d("start nodes: "
- "~n MgcNode: ~p"
- "~n MgNode: ~p",
- [MgcNode, MgNode]),
- ok = ?START_NODES([MgcNode, MgNode], true),
-
+ Cond = fun megaco_test_code/0,
+ Pre = fun() ->
+ put(tc, ?FUNCTION_NAME),
+ MgcNode = make_node_name(pl_srlr_mgc),
+ MgNode = make_node_name(pl_srlr_mg),
+ i("try start nodes: "
+ "~n MgcNode: ~p"
+ "~n MgNode: ~p",
+ [MgcNode, MgNode]),
+ Nodes = [MgcNode, MgNode],
+ ok = ?START_NODES(Nodes, true),
+ #{nodes => Nodes}
+ end,
+ Case = fun(State) ->
+ do_sent_resend_late_reply(State)
+ end,
+ Post = fun(#{nodes := Nodes}) ->
+ i("stop nodes"),
+ ?STOP_NODES(Nodes),
+ ok
+ end,
+ try_tc(?FUNCTION_NAME, Cond, Pre, Case, Post).
+
+do_sent_resend_late_reply(#{nodes := [MgcNode, MgNode]}) ->
%% Start the MGC and MGs
i("[MGC] start"),
ET = [{text,tcp}, {text,udp}, {binary,tcp}, {binary,udp}],
- {ok, Mgc} =
- ?MGC_START(MgcNode, {deviceName, "ctrl"}, ET, [], ?MGC_VERBOSITY),
+ {ok, Mgc} = ?MGC_START(MgcNode, ET),
i("[MG] start"),
- MgMid = {deviceName, "mg"},
- MgConfig = [],
- {ok, Mg} = ?MG_START(MgNode, MgMid, text, tcp, MgConfig, ?MG_VERBOSITY),
+ {ok, Mg} = ?MG_START(MgNode, text, tcp),
d("MG user info: ~p", [?MG_USER_INFO(Mg, all)]),
@@ -594,53 +597,48 @@ sent_resend_late_reply(Config) when is_list(Config) ->
i("done", []),
ok.
--else.
-
-sent_resend_late_reply(suite) ->
- [];
-sent_resend_late_reply(doc) ->
- "...";
-sent_resend_late_reply(Config) when is_list(Config) ->
- ?SKIP("included only if compiled with USE_MEGACO_TEST_CODE=true").
-
--endif.
-
-
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% This test case can only be run with the stack compiled with
%% the MEGACO_TEST_CODE flag. Therefor there is no point in
%% including this test case in the usual test suite
--ifdef(MEGACO_TEST_CODE).
sent_resend_exceeded(suite) ->
[];
sent_resend_exceeded(doc) ->
"...";
sent_resend_exceeded(Config) when is_list(Config) ->
- put(verbosity, ?TEST_VERBOSITY),
- put(sname, "TEST"),
- put(tc, sent_resend_exceeded),
- i("starting"),
-
- MgcNode = make_node_name(mgc),
- MgNode = make_node_name(mg),
- d("start nodes: "
- "~n MgcNode: ~p"
- "~n MgNode: ~p",
- [MgcNode, MgNode]),
- ok = ?START_NODES([MgcNode, MgNode], true),
-
+ Cond = fun megaco_test_code/0,
+ Pre = fun() ->
+ put(tc, ?FUNCTION_NAME),
+ MgcNode = make_node_name(pl_sre_mgc),
+ MgNode = make_node_name(pl_sre_mg),
+ i("try start nodes: "
+ "~n MgcNode: ~p"
+ "~n MgNode: ~p",
+ [MgcNode, MgNode]),
+ Nodes = [MgcNode, MgNode],
+ ok = ?START_NODES(Nodes, true),
+ #{nodes => Nodes}
+ end,
+ Case = fun(State) ->
+ do_sent_resend_exceeded(State)
+ end,
+ Post = fun(#{nodes := Nodes}) ->
+ i("stop nodes"),
+ ?STOP_NODES(Nodes),
+ ok
+ end,
+ try_tc(?FUNCTION_NAME, Cond, Pre, Case, Post).
+
+do_sent_resend_exceeded(#{nodes := [MgcNode, MgNode]}) ->
%% Start the MGC and MGs
i("[MGC] start"),
ET = [{text,tcp}, {text,udp}, {binary,tcp}, {binary,udp}],
- {ok, Mgc} =
- ?MGC_START(MgcNode, {deviceName, "ctrl"}, ET, [], ?MGC_VERBOSITY),
+ {ok, Mgc} = ?MGC_START(MgcNode, ET),
i("[MG] start"),
- MgMid = {deviceName, "mg"},
- MgConfig = [],
- {ok, Mg} = ?MG_START(MgNode, MgMid, text, tcp, MgConfig, ?MG_VERBOSITY),
+ {ok, Mg} = ?MG_START(MgNode, text, tcp),
d("MG user info: ~p", [?MG_USER_INFO(Mg, all)]),
@@ -686,60 +684,51 @@ sent_resend_exceeded(Config) when is_list(Config) ->
i("[MGC] stop"),
?MGC_STOP(Mgc),
- %% Cleanup
- d("stop nodes"),
- ?STOP_NODES([MgcNode, MgNode]),
-
- i("done", []),
+ i("done"),
ok.
--else.
-
-sent_resend_exceeded(suite) ->
- [];
-sent_resend_exceeded(doc) ->
- "...";
-sent_resend_exceeded(Config) when is_list(Config) ->
- ?SKIP("included only if compiled with USE_MEGACO_TEST_CODE=true").
-
--endif.
-
-
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% This test case can only be run with the stack compiled with
%% the MEGACO_TEST_CODE flag. Therefor there is no point in
%% including this test case in the usual test suite
--ifdef(MEGACO_TEST_CODE).
sent_resend_exceeded_long(suite) ->
[];
sent_resend_exceeded_long(doc) ->
"...";
sent_resend_exceeded_long(Config) when is_list(Config) ->
- put(verbosity, ?TEST_VERBOSITY),
- put(sname, "TEST"),
- put(tc, sent_resend_exceeded_long),
- i("starting"),
-
- MgcNode = make_node_name(mgc),
- MgNode = make_node_name(mg),
- d("start nodes: "
- "~n MgcNode: ~p"
- "~n MgNode: ~p",
- [MgcNode, MgNode]),
- ok = ?START_NODES([MgcNode, MgNode], true),
-
+ Cond = fun megaco_test_code/0,
+ Pre = fun() ->
+ put(tc, ?FUNCTION_NAME),
+ MgcNode = make_node_name(pl_srel_mgc),
+ MgNode = make_node_name(pl_srel_mg),
+ i("try start nodes: "
+ "~n MgcNode: ~p"
+ "~n MgNode: ~p",
+ [MgcNode, MgNode]),
+ Nodes = [MgcNode, MgNode],
+ ok = ?START_NODES(Nodes, true),
+ #{nodes => Nodes}
+ end,
+ Case = fun(State) ->
+ do_sent_resend_exceeded_long(State)
+ end,
+ Post = fun(#{nodes := Nodes}) ->
+ i("stop nodes"),
+ ?STOP_NODES(Nodes),
+ ok
+ end,
+ try_tc(?FUNCTION_NAME, Cond, Pre, Case, Post).
+
+do_sent_resend_exceeded_long(#{nodes := [MgcNode, MgNode]}) ->
%% Start the MGC and MGs
i("[MGC] start"),
ET = [{text,tcp}, {text,udp}, {binary,tcp}, {binary,udp}],
- {ok, Mgc} =
- ?MGC_START(MgcNode, {deviceName, "ctrl"}, ET, [], ?MGC_VERBOSITY),
+ {ok, Mgc} = ?MGC_START(MgcNode, ET),
i("[MG] start"),
- MgMid = {deviceName, "mg"},
- MgConfig = [],
- {ok, Mg} = ?MG_START(MgNode, MgMid, text, tcp, MgConfig, ?MG_VERBOSITY),
+ {ok, Mg} = ?MG_START(MgNode, text, tcp),
d("MG user info: ~p", [?MG_USER_INFO(Mg, all)]),
@@ -786,26 +775,10 @@ sent_resend_exceeded_long(Config) when is_list(Config) ->
i("[MGC] stop"),
?MGC_STOP(Mgc),
- %% Cleanup
- d("stop nodes"),
- ?STOP_NODES([MgcNode, MgNode]),
-
- i("done", []),
+ i("done"),
ok.
--else.
-
-sent_resend_exceeded_long(suite) ->
- [];
-sent_resend_exceeded_long(doc) ->
- "...";
-sent_resend_exceeded_long(Config) when is_list(Config) ->
- ?SKIP("included only if compiled with USE_MEGACO_TEST_CODE=true").
-
--endif.
-
-
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%% %%%
%%% Received peinding test cases %%%
@@ -817,19 +790,30 @@ recv_limit_exceeded1(suite) ->
recv_limit_exceeded1(doc) ->
"Received pending limit exceeded (exactly)";
recv_limit_exceeded1(Config) when is_list(Config) ->
- put(verbosity, ?TEST_VERBOSITY),
- put(sname, "TEST"),
- put(tc, rle1),
- i("starting"),
-
- MgcNode = make_node_name(mgc),
- MgNode = make_node_name(mg),
- d("start nodes: "
- "~n MgcNode: ~p"
- "~n MgNode: ~p",
- [MgcNode, MgNode]),
- ok = ?START_NODES([MgcNode, MgNode], true),
-
+ Cond = fun() -> ok end,
+ Pre = fun() ->
+ put(tc, ?FUNCTION_NAME),
+ MgcNode = make_node_name(pl_rle_mgc),
+ MgNode = make_node_name(pl_rle_mg),
+ i("try start nodes: "
+ "~n MgcNode: ~p"
+ "~n MgNode: ~p",
+ [MgcNode, MgNode]),
+ Nodes = [MgcNode, MgNode],
+ ok = ?START_NODES(Nodes, true),
+ #{nodes => Nodes}
+ end,
+ Case = fun(State) ->
+ do_recv_limit_exceeded1(State)
+ end,
+ Post = fun(#{nodes := Nodes}) ->
+ i("stop nodes"),
+ ?STOP_NODES(Nodes),
+ ok
+ end,
+ try_tc(?FUNCTION_NAME, Cond, Pre, Case, Post).
+
+do_recv_limit_exceeded1(#{nodes := [MgcNode, MgNode]}) ->
d("[MGC] start the simulator "),
{ok, Mgc} = megaco_test_tcp_generator:start_link("MGC", MgcNode),
@@ -868,27 +852,13 @@ recv_limit_exceeded1(Config) when is_list(Config) ->
i("[MG] stop generator"),
megaco_test_megaco_generator:stop(Mg),
- %% Cleanup
- d("stop nodes"),
- ?STOP_NODES([MgcNode, MgNode]),
-
- i("done", []),
+ i("done"),
ok.
%%
%% MGC generator stuff
%%
--ifdef(megaco_hipe_special).
--define(rle1_mgc_decode_msg_fun(Mod, Conf),
- {?MODULE, decode_msg, [Mod, Conf]}).
--define(rle1_mgc_encode_msg_fun(Mod, Conf),
- {?MODULE, encode_msg, [Mod, Conf]}).
--define(rle1_mgc_verify_service_change_req_msg_fun(Mid),
- {?MODULE, rle1_mgc_verify_service_change_req_msg, [Mid]}).
--define(rle1_mgc_verify_notify_req_msg_fun(),
- {?MODULE, rle1_mgc_verify_notify_req_msg, []}).
--else.
-define(rle1_mgc_decode_msg_fun(Mod, Conf),
rle1_mgc_decode_msg_fun(Mod, Conf)).
-define(rle1_mgc_encode_msg_fun(Mod, Conf),
@@ -897,7 +867,6 @@ recv_limit_exceeded1(Config) when is_list(Config) ->
rle1_mgc_verify_service_change_req_msg_fun(Mid)).
-define(rle1_mgc_verify_notify_req_msg_fun(),
rle1_mgc_verify_notify_req_msg_fun()).
--endif.
rle1_mgc_event_sequence(text, tcp) ->
Mid = {deviceName,"ctrl"},
@@ -942,17 +911,15 @@ rle1_mgc_event_sequence2(Mid, EM, EC) ->
],
EvSeq.
--ifndef(megaco_hipe_special).
rle1_mgc_encode_msg_fun(Mod, Conf) ->
fun(M) ->
encode_msg(M, Mod, Conf)
end.
rle1_mgc_decode_msg_fun(Mod, Conf) ->
- fun(M) ->
+ fun(M) ->
decode_msg(M, Mod, Conf)
end.
--endif.
rle1_mgc_service_change_reply_msg(Mid, TransId, Cid) ->
SCRP = #'ServiceChangeResParm'{serviceChangeMgcId = Mid},
@@ -983,12 +950,10 @@ rle1_mgc_pending_msg(Mid, TransId) ->
messageBody = Body},
#'MegacoMessage'{mess = Mess}.
--ifndef(megaco_hipe_special).
rle1_mgc_verify_service_change_req_msg_fun(Mid) ->
fun(M) ->
rle1_mgc_verify_service_change_req_msg(M, Mid)
end.
--endif.
rle1_mgc_verify_service_change_req_msg(#'MegacoMessage'{mess = Mess} = M,
_Mid1) ->
@@ -1018,12 +983,10 @@ rle1_mgc_verify_service_change_req_msg(#'MegacoMessage'{mess = Mess} = M,
rle1_mgc_verify_service_change_req_msg(M, _Mid) ->
{error, {invalid_message, M}}.
--ifndef(megaco_hipe_special).
rle1_mgc_verify_notify_req_msg_fun() ->
fun(M) ->
rle1_mgc_verify_notify_req_msg(M)
end.
--endif.
rle1_mgc_verify_notify_req_msg(#'MegacoMessage'{mess = Mess} = M) ->
io:format("rle1_mgc_verify_notify_req_msg -> entry with"
@@ -1054,21 +1017,12 @@ rle1_mgc_verify_notify_req_msg(M) ->
%%
%% MG generator stuff
%%
--ifdef(megaco_hipe_special).
--define(rle1_mg_verify_handle_connect_fun(),
- {?MODULE, rle1_mg_verify_handle_connect, []}).
--define(rle1_mg_verify_service_change_rep_fun(),
- {?MODULE, rle1_mg_verify_service_change_rep, []}).
--define(rle1_mg_verify_trans_rep_fun(),
- {?MODULE, rle1_mg_verify_trans_rep, []}).
--else.
-define(rle1_mg_verify_handle_connect_fun(),
fun rle1_mg_verify_handle_connect/1).
-define(rle1_mg_verify_service_change_rep_fun(),
fun rle1_mg_verify_service_change_rep/1).
-define(rle1_mg_verify_trans_rep_fun(),
fun rle1_mg_verify_trans_rep/1).
--endif.
rle1_mg_event_sequence(text, tcp) ->
Mid = {deviceName,"mg"},
@@ -1222,23 +1176,34 @@ recv_limit_exceeded2(Config) when is_list(Config) ->
otp_4956(suite) ->
[];
otp_4956(Config) when is_list(Config) ->
- put(verbosity, ?TEST_VERBOSITY),
- put(sname, "TEST"),
- put(tc, otp_4956),
- i("starting"),
-
- MgcNode = make_node_name(mgc),
- MgNode = make_node_name(mg),
- d("start nodes: "
- "~n MgcNode: ~p"
- "~n MgNode: ~p",
- [MgcNode, MgNode]),
- ok = ?START_NODES([MgcNode, MgNode], true),
-
- d("[MGC] start the simulator "),
+ Cond = fun() -> ok end,
+ Pre = fun() ->
+ put(tc, ?FUNCTION_NAME),
+ MgcNode = make_node_name(pl_4956_mgc),
+ MgNode = make_node_name(pl_4956_mg),
+ i("try start nodes: "
+ "~n MgcNode: ~p"
+ "~n MgNode: ~p",
+ [MgcNode, MgNode]),
+ Nodes = [MgcNode, MgNode],
+ ok = ?START_NODES(Nodes, true),
+ #{nodes => Nodes}
+ end,
+ Case = fun(State) ->
+ do_otp_4956(State)
+ end,
+ Post = fun(#{nodes := Nodes}) ->
+ i("stop nodes"),
+ ?STOP_NODES(Nodes),
+ ok
+ end,
+ try_tc(?FUNCTION_NAME, Cond, Pre, Case, Post).
+
+do_otp_4956(#{nodes := [MgcNode, MgNode]}) ->
+ i("[MGC] start the simulator "),
{ok, Mgc} = megaco_test_megaco_generator:start_link("MGC", MgcNode),
- d("[MGC] create the event sequence"),
+ i("[MGC] create the event sequence"),
MgcEvSeq = otp_4956_mgc_event_sequence(text, tcp),
i("wait some time before starting the MGC simulation"),
@@ -1273,10 +1238,6 @@ otp_4956(Config) when is_list(Config) ->
i("[MG] stop generator"),
megaco_test_tcp_generator:stop(Mg),
- %% Cleanup
- d("stop nodes"),
- ?STOP_NODES([MgcNode, MgNode]),
-
i("done", []),
ok.
@@ -1284,20 +1245,6 @@ otp_4956(Config) when is_list(Config) ->
%%
%% MGC generator stuff
%%
--ifdef(megaco_hipe_special).
--define(otp_4956_mgc_verify_handle_connect_fun(),
- {?MODULE, otp_4956_mgc_verify_handle_connect, []}).
--define(otp_4956_mgc_verify_service_change_req_fun(Mid),
- {?MODULE, otp_4956_mgc_verify_service_change_req, [Mid]}).
--define(otp_4956_mgc_verify_notify_req1_fun(),
- {?MODULE, otp_4956_mgc_verify_notify_req1, []}).
--define(otp_4956_mgc_verify_notify_req2_fun(),
- {?MODULE, otp_4956_mgc_verify_notify_req2, []}).
--define(otp_4956_mgc_verify_handle_trans_req_abort_fun(),
- {?MODULE, otp_4956_mgc_verify_handle_trans_req_abort, []}).
--define(otp_4956_mgc_verify_handle_disconnect_fun(),
- {?MODULE, otp_4956_mgc_verify_handle_disconnect, []}).
--else.
-define(otp_4956_mgc_verify_handle_connect_fun(),
otp_4956_mgc_verify_handle_connect_fun()).
-define(otp_4956_mgc_verify_service_change_req_fun(Mid),
@@ -1310,7 +1257,6 @@ otp_4956(Config) when is_list(Config) ->
otp_4956_mgc_verify_handle_trans_req_abort_fun()).
-define(otp_4956_mgc_verify_handle_disconnect_fun(),
fun otp_4956_mgc_verify_handle_disconnect/1).
--endif.
otp_4956_mgc_event_sequence(text, tcp) ->
Mid = {deviceName,"ctrl"},
@@ -1355,24 +1301,20 @@ otp_4956_mgc_event_sequence(text, tcp) ->
EvSeq.
--ifndef(megaco_hipe_special).
otp_4956_mgc_verify_handle_connect_fun() ->
fun(M) ->
otp_4956_mgc_verify_handle_connect(M)
end.
--endif.
otp_4956_mgc_verify_handle_connect({handle_connect, CH, ?VERSION}) ->
{ok, CH, ok};
otp_4956_mgc_verify_handle_connect(Else) ->
{error, Else, ok}.
--ifndef(megaco_hipe_special).
otp_4956_mgc_verify_service_change_req_fun(Mid) ->
fun(Req) ->
otp_4956_mgc_verify_service_change_req(Req, Mid)
end.
--endif.
otp_4956_mgc_verify_service_change_req(
{handle_trans_request, _, ?VERSION, [AR]}, Mid) ->
@@ -1434,12 +1376,10 @@ otp_4956_mgc_verify_service_change_req(Else, _Mid) ->
ErrReply = {discard_ack, ED},
{error, Else, ErrReply}.
--ifndef(megaco_hipe_special).
otp_4956_mgc_verify_notify_req1_fun() ->
fun(Req) ->
otp_4956_mgc_verify_notify_req1(Req)
end.
--endif.
otp_4956_mgc_verify_notify_req1({handle_trans_request, _, ?VERSION, [AR]}) ->
io:format("otp_4956_mgc_verify_notify_req1 -> entry with"
@@ -1470,12 +1410,10 @@ otp_4956_mgc_verify_notify_req1(Else) ->
ErrReply = {discard_ack, ED},
{error, Else, ErrReply}.
--ifndef(megaco_hipe_special).
otp_4956_mgc_verify_notify_req2_fun() ->
fun(Ev) ->
otp_4956_mgc_verify_notify_req2(Ev)
end.
--endif.
otp_4956_mgc_verify_notify_req2({handle_trans_request, _, ?VERSION, [AR]}) ->
case AR of
@@ -1500,12 +1438,10 @@ otp_4956_mgc_verify_notify_req2(Else) ->
ErrReply = {discard_ack, ED},
{error, Else, ErrReply}.
--ifndef(megaco_hipe_special).
otp_4956_mgc_verify_handle_trans_req_abort_fun() ->
fun(Req) ->
otp_4956_mgc_verify_handle_trans_req_abort(Req)
end.
--endif.
otp_4956_mgc_verify_handle_trans_req_abort({handle_trans_request_abort,
CH, ?VERSION, 2, Pid}) ->
@@ -1574,18 +1510,6 @@ otp_4956_mgc_notify_reply_ar(Cid, TermId) ->
%%
%% MG generator stuff
%%
--ifdef(megaco_hipe_special).
--define(otp_4956_mg_decode_msg_fun(Mod, Conf),
- {?MODULE, decode_msg, [Mod, Conf]}).
--define(otp_4956_mg_encode_msg_fun(Mod, Conf),
- {?MODULE, encode_msg, [Mod, Conf]}).
--define(otp_4956_mg_verify_service_change_rep_msg_fun(),
- {?MODULE, otp_4956_mg_verify_service_change_rep_msg, []}).
--define(otp_4956_mg_verify_pending_msg_fun(),
- {?MODULE, otp_4956_mg_verify_pending_msg, []}).
--define(otp_4956_mg_verify_pending_limit_msg_fun(),
- {?MODULE, otp_4956_mg_verify_pending_limit_msg, []}).
--else.
-define(otp_4956_mg_decode_msg_fun(Mod, Conf),
otp_4956_mg_decode_msg_fun(Mod, Conf)).
-define(otp_4956_mg_encode_msg_fun(Mod, Conf),
@@ -1596,7 +1520,6 @@ otp_4956_mgc_notify_reply_ar(Cid, TermId) ->
otp_4956_mg_verify_pending_msg_fun()).
-define(otp_4956_mg_verify_pending_limit_msg_fun(),
otp_4956_mg_verify_pending_limit_msg_fun()).
--endif.
otp_4956_mg_event_sequence(text, tcp) ->
DecodeFun = ?otp_4956_mg_decode_msg_fun(megaco_pretty_text_encoder, []),
@@ -1642,7 +1565,6 @@ otp_4956_mg_event_sequence(text, tcp) ->
],
EvSeq.
--ifndef(megaco_hipe_special).
otp_4956_mg_encode_msg_fun(Mod, Conf) ->
fun(M) ->
encode_msg(M, Mod, Conf)
@@ -1652,14 +1574,11 @@ otp_4956_mg_decode_msg_fun(Mod, Conf) ->
fun(M) ->
decode_msg(M, Mod, Conf)
end.
--endif.
--ifndef(megaco_hipe_special).
otp_4956_mg_verify_service_change_rep_msg_fun() ->
fun(M) ->
otp_4956_mg_verify_service_change_rep_msg(M)
end.
--endif.
otp_4956_mg_verify_service_change_rep_msg(
#'MegacoMessage'{mess = Mess} = M) ->
@@ -1687,12 +1606,10 @@ otp_4956_mg_verify_service_change_rep_msg(
otp_4956_mg_verify_service_change_rep_msg(M) ->
{error, {invalid_message, M}}.
--ifndef(megaco_hipe_special).
otp_4956_mg_verify_pending_msg_fun() ->
fun(M) ->
otp_4956_mg_verify_pending_msg(M)
end.
--endif.
otp_4956_mg_verify_pending_msg(#'MegacoMessage'{mess = Mess} = M) ->
io:format("otp_4956_mg_verify_pending_msg -> entry with"
@@ -1710,12 +1627,10 @@ otp_4956_mg_verify_pending_msg(M) ->
"~n", [M]),
{error, {invalid_message, M}}.
--ifndef(megaco_hipe_special).
otp_4956_mg_verify_pending_limit_msg_fun() ->
fun(M) ->
otp_4956_mg_verify_pending_limit_msg(M)
end.
--endif.
otp_4956_mg_verify_pending_limit_msg(#'MegacoMessage'{mess = Mess} = M) ->
io:format("otp_4956_mg_verify_pending_limit_msg -> entry with"
@@ -1784,29 +1699,37 @@ otp_5310(suite) ->
otp_5310(doc) ->
"...";
otp_5310(Config) when is_list(Config) ->
- put(verbosity, ?TEST_VERBOSITY),
- put(sname, "TEST"),
- put(tc, otp_5310),
- i("starting"),
-
- MgcNode = make_node_name(mgc),
- MgNode = make_node_name(mg),
- d("start nodes: "
- "~n MgcNode: ~p"
- "~n MgNode: ~p",
- [MgcNode, MgNode]),
- ok = ?START_NODES([MgcNode, MgNode], true),
-
+ Cond = fun() -> ok end,
+ Pre = fun() ->
+ put(tc, ?FUNCTION_NAME),
+ MgcNode = make_node_name(pl_5310_mgc),
+ MgNode = make_node_name(pl_5310_mg),
+ i("try start nodes: "
+ "~n MgcNode: ~p"
+ "~n MgNode: ~p",
+ [MgcNode, MgNode]),
+ Nodes = [MgcNode, MgNode],
+ ok = ?START_NODES(Nodes, true),
+ #{nodes => Nodes}
+ end,
+ Case = fun(State) ->
+ do_otp_5310(State)
+ end,
+ Post = fun(#{nodes := Nodes}) ->
+ i("stop nodes"),
+ ?STOP_NODES(Nodes),
+ ok
+ end,
+ try_tc(?FUNCTION_NAME, Cond, Pre, Case, Post).
+
+do_otp_5310(#{nodes := [MgcNode, MgNode]}) ->
%% Start the MGC and MGs
i("[MGC] start"),
ET = [{text,tcp}, {text,udp}, {binary,tcp}, {binary,udp}],
- {ok, Mgc} =
- ?MGC_START(MgcNode, {deviceName, "ctrl"}, ET, [], ?MGC_VERBOSITY),
+ {ok, Mgc} = ?MGC_START(MgcNode, ET),
i("[MG] start"),
- MgMid = {deviceName, "mg"},
- MgConfig = [],
- {ok, Mg} = ?MG_START(MgNode, MgMid, text, tcp, MgConfig, ?MG_VERBOSITY),
+ {ok, Mg} = ?MG_START(MgNode, text, tcp),
d("MG user info: ~p", [?MG_USER_INFO(Mg, all)]),
@@ -1897,18 +1820,6 @@ otp_5310(Config) when is_list(Config) ->
UserReps3 = ?MGC_USER_INFO(Mgc, replies),
d("[MGC] UserReps3: ~p", [UserReps3]),
- %% Tell MG to stop
- i("[MG] stop"),
- ?MG_STOP(Mg),
-
- %% Tell Mgc to stop
- i("[MGC] stop"),
- ?MGC_STOP(Mgc),
-
- %% Cleanup
- d("stop nodes"),
- ?STOP_NODES([MgcNode, MgNode]),
-
i("done", []),
ok.
@@ -1951,29 +1862,37 @@ otp_5619(suite) ->
otp_5619(doc) ->
"...";
otp_5619(Config) when is_list(Config) ->
- put(verbosity, ?TEST_VERBOSITY),
- put(sname, "TEST"),
- put(tc, otp_5619),
- i("starting"),
-
- MgcNode = make_node_name(mgc),
- MgNode = make_node_name(mg),
- d("start nodes: "
- "~n MgcNode: ~p"
- "~n MgNode: ~p",
- [MgcNode, MgNode]),
- ok = ?START_NODES([MgcNode, MgNode], true),
-
+ Cond = fun() -> ok end,
+ Pre = fun() ->
+ put(tc, ?FUNCTION_NAME),
+ MgcNode = make_node_name(pl_5619_mgc),
+ MgNode = make_node_name(pl_5619_mg),
+ i("try start nodes: "
+ "~n MgcNode: ~p"
+ "~n MgNode: ~p",
+ [MgcNode, MgNode]),
+ Nodes = [MgcNode, MgNode],
+ ok = ?START_NODES(Nodes, true),
+ #{nodes => Nodes}
+ end,
+ Case = fun(State) ->
+ do_otp_5619(State)
+ end,
+ Post = fun(#{nodes := Nodes}) ->
+ i("stop nodes"),
+ ?STOP_NODES(Nodes),
+ ok
+ end,
+ try_tc(?FUNCTION_NAME, Cond, Pre, Case, Post).
+
+do_otp_5619(#{nodes := [MgcNode, MgNode]}) ->
%% Start the MGC and MGs
i("[MGC] start"),
- MgcMid = {deviceName, "ctrl"},
ET = [{text, tcp}, {text, udp}, {binary, tcp}, {binary, udp}],
- {ok, Mgc} = ?MGC_START(MgcNode, MgcMid, ET, [], ?MGC_VERBOSITY),
+ {ok, Mgc} = ?MGC_START(MgcNode, ET),
i("[MG] start"),
- MgMid = {deviceName, "mg"},
- MgConfig = [],
- {ok, Mg} = ?MG_START(MgNode, MgMid, text, tcp, MgConfig, ?MG_VERBOSITY),
+ {ok, Mg} = ?MG_START(MgNode, text, tcp),
d("MG user info: ~p", [?MG_USER_INFO(Mg, all)]),
d("MG conn info: ~p", [?MG_CONN_INFO(Mg, all)]),
@@ -2027,11 +1946,7 @@ otp_5619(Config) when is_list(Config) ->
i("[MGC] stop~n"),
?MGC_STOP(Mgc),
- %% Cleanup
- d("stop nodes"),
- ?STOP_NODES([MgcNode, MgNode]),
-
- i("done", []),
+ i("done"),
ok.
@@ -2160,14 +2075,12 @@ cre_megacoMessage(Mess) ->
%% having received the first pending (which
%% indicates that the other side _IS_
%% working on the request).
--ifdef(MEGACO_TEST_CODE).
init_request_timer({short, Ref}) ->
{long, Ref};
init_request_timer(O) ->
O.
--endif.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -2187,12 +2100,6 @@ decode_msg(M, Mod, Conf) ->
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-%% tim() ->
-%% {A,B,C} = erlang:now(),
-%% A*1000000000+B*1000+(C div 1000).
-
-
make_node_name(Name) ->
case string:tokens(atom_to_list(node()), [$@]) of
[_,Host] ->
@@ -2218,11 +2125,31 @@ await_completion(Ids) ->
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+try_tc(TCName, Cond, Pre, Case, Post) ->
+ try_tc(TCName, "TEST", ?TEST_VERBOSITY, Cond, Pre, Case, Post).
+
+try_tc(TCName, Name, Verbosity, Cond, Pre, Case, Post) ->
+ ?TRY_TC(TCName, Name, Verbosity, Cond, Pre, Case, Post).
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
sleep(X) -> receive after X -> ok end.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+-ifdef(MEGACO_TEST_CODE).
+megaco_test_code() ->
+ ok.
+-else.
+megaco_test_code() ->
+ exit({skip, "Included only if compiled with USE_MEGACO_TEST_CODE=true"}).
+-endif.
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
p(F, A) ->
io:format("*** [~s] ~p ***"
"~n " ++ F ++ "~n",