File 4111-megaco-test-Attempt-to-handle-missing-app-et.patch of Package erlang

From da7ea02b300b024b684e93906a7ab5c050c3d5a1 Mon Sep 17 00:00:00 2001
From: Micael Karlberg <bmk@erlang.org>
Date: Mon, 18 Sep 2023 16:59:55 +0200
Subject: [PATCH 1/3] [megaco|test] Attempt to handle missing app et

If the system is build without 'et', many of the megaco
test cases will fail since that use et for tracing.
---
 lib/megaco/test/megaco_mess_SUITE.erl         | 149 +++++++++++-------
 .../test/megaco_pending_limit_SUITE.erl       |  18 ++-
 lib/megaco/test/megaco_segment_SUITE.erl      |  26 +--
 lib/megaco/test/megaco_test_lib.erl           |  33 +++-
 lib/megaco/test/megaco_test_lib.hrl           |   2 +
 lib/megaco/test/megaco_trans_SUITE.erl        |  26 +--
 6 files changed, 170 insertions(+), 84 deletions(-)

diff --git a/lib/megaco/test/megaco_mess_SUITE.erl b/lib/megaco/test/megaco_mess_SUITE.erl
index c895592812..0643baa638 100644
--- a/lib/megaco/test/megaco_mess_SUITE.erl
+++ b/lib/megaco/test/megaco_mess_SUITE.erl
@@ -1,7 +1,7 @@
 %%
 %% %CopyrightBegin%
 %% 
-%% Copyright Ericsson AB 1999-2022. All Rights Reserved.
+%% Copyright Ericsson AB 1999-2023. 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.
@@ -326,9 +326,6 @@
 -define(GMCB(CB, VF),            {megaco_callback, CB, VF}).
 -define(GMCB_CONNECT(VF),        ?GMCB(handle_connect, VF)).
 -define(GMCB_TRANS_REP(VF),      ?GMCB(handle_trans_reply, VF)).
--define(GMT(T),                  {megaco_trace, T}).
--define(GMT_ENABLE(),            ?GMT(enable)).
--define(GMT_DISABLE(),           ?GMT(disable)).
 -define(GD(D),                   {debug, D}).
 -define(GD_ENABLE(),             ?GD(true)).
 -define(GD_DISABLE(),            ?GD(false)).
@@ -894,7 +891,9 @@ request_and_reply_pending_ack_no_pending(Config) when is_list(Config) ->
                   ok = ?START_NODES(Nodes, true),
                   Nodes
           end,
-    Case = fun do_request_and_reply_pending_ack_no_pending/1,
+    Case = fun(Nodes) ->
+                   do_request_and_reply_pending_ack_no_pending(Config, Nodes)
+           end,
     Post = fun(Nodes) ->
                    d("stop nodes"),
                    ?STOP_NODES(lists:reverse(Nodes)),
@@ -902,12 +901,14 @@ request_and_reply_pending_ack_no_pending(Config) when is_list(Config) ->
            end,
     try_tc(rar_panp, Pre, Case, Post).
 
-do_request_and_reply_pending_ack_no_pending([MgcNode, MgNode]) ->
+do_request_and_reply_pending_ack_no_pending(Config,
+                                            [MgcNode, MgNode]) ->
     d("[MGC] start the simulator "),
     {ok, Mgc} = megaco_test_megaco_generator:start_link("MGC", MgcNode),
 
     d("[MGC] create the event sequence"),
-    MgcEvSeq = rarpanp_mgc_event_sequence(text, tcp),
+    MgcEvSeq = rarpanp_mgc_event_sequence(Config,
+                                          text, tcp),
 
     i("wait some time before starting the MGC simulation"),
     sleep(1000),
@@ -972,7 +973,8 @@ do_request_and_reply_pending_ack_no_pending([MgcNode, MgNode]) ->
 	fun rarpanp_mgc_verify_handle_disconnect/1).
 -endif.
 
-rarpanp_mgc_event_sequence(text, tcp) ->
+rarpanp_mgc_event_sequence(Config,
+                           text, tcp) ->
     CTRL = self(),
     Mid = {deviceName,"ctrl"},
     RI = [
@@ -988,7 +990,7 @@ rarpanp_mgc_event_sequence(text, tcp) ->
     EvSeq = [
              {debug, true},
              {megaco_trace, disable},
-             {megaco_trace, max},
+             ?MEGACO_TRACE(Config, max), % {megaco_trace, max},
              megaco_start,
              {megaco_start_user, Mid, RI, []},
              {megaco_update_user_info, sent_pending_limit, 100},
@@ -1496,20 +1498,24 @@ request_and_reply_pending_ack_one_pending(Config) when is_list(Config) ->
                   ok = ?START_NODES(Nodes, true),
                   Nodes
           end,
-    Case = fun do_request_and_reply_pending_ack_one_pending/1,
+    Case = fun(Nodes) ->
+                   do_request_and_reply_pending_ack_one_pending(Config, Nodes)
+           end,
     Post = fun(Nodes) ->
                    d("stop nodes"),
                    ?STOP_NODES(lists:reverse(Nodes))
            end,
     try_tc(rar_paop, Pre, Case, Post).
 
-do_request_and_reply_pending_ack_one_pending([MgcNode, MgNode]) ->
+do_request_and_reply_pending_ack_one_pending(Config,
+                                             [MgcNode, MgNode]) ->
     d("[MGC] start the simulator"),
     {ok, Mgc} = megaco_test_megaco_generator:start_link("MGC", MgcNode),
 
     d("[MGC] create the event sequence"),
     %% MgcEvSeq = rarpaop_mgc_event_sequence(text, tcp),
-    MgcEvSeq = rarpaop_mgc_event_sequence(binary, tcp),
+    MgcEvSeq = rarpaop_mgc_event_sequence(Config,
+                                          binary, tcp),
 
     i("wait some time before starting the MGC simulation"),
     sleep(1000),
@@ -1532,7 +1538,8 @@ do_request_and_reply_pending_ack_one_pending([MgcNode, MgNode]) ->
 
     d("[MG] create the event sequence"),
     %% MgEvSeq = rarpaop_mg_event_sequence(text, tcp),
-    MgEvSeq = rarpaop_mg_event_sequence(binary, tcp),
+    MgEvSeq = rarpaop_mg_event_sequence(Config,
+                                        binary, tcp),
 
     i("wait some time before starting the MG simulation"),
     sleep(1000),
@@ -1582,20 +1589,25 @@ do_request_and_reply_pending_ack_one_pending([MgcNode, MgNode]) ->
 	fun rarpaop_mgc_verify_handle_disconnect/1).
 -endif.
 
-rarpaop_mgc_event_sequence(text, tcp) ->
+rarpaop_mgc_event_sequence(Config,
+                           text, tcp) ->
     Port      = 2944, 
     TranspMod = megaco_tcp, 
     EncMod    = megaco_pretty_text_encoder,
     EncConf   = [], 
-    rarpaop_mgc_event_sequence(Port, TranspMod, EncMod, EncConf);
-rarpaop_mgc_event_sequence(binary, tcp) ->
+    rarpaop_mgc_event_sequence(Config,
+                               Port, TranspMod, EncMod, EncConf);
+rarpaop_mgc_event_sequence(Config,
+                           binary, tcp) ->
     Port      = 2945, 
     TranspMod = megaco_tcp, 
     EncMod    = megaco_ber_encoder,
     EncConf   = [], 
-    rarpaop_mgc_event_sequence(Port, TranspMod, EncMod, EncConf).
+    rarpaop_mgc_event_sequence(Config,
+                               Port, TranspMod, EncMod, EncConf).
 
-rarpaop_mgc_event_sequence(Port, TranspMod, EncMod, EncConf) ->
+rarpaop_mgc_event_sequence(Config,
+                           Port, TranspMod, EncMod, EncConf) ->
     CTRL = self(),
     Mid = {deviceName,"ctrl"},
     RI = [
@@ -1612,7 +1624,7 @@ rarpaop_mgc_event_sequence(Port, TranspMod, EncMod, EncConf) ->
     EvSeq = [
              {debug, true},
              {megaco_trace, disable},
-             {megaco_trace, max},
+             ?MEGACO_TRACE(Config, max), % {megaco_trace, max},
              megaco_start,
              {megaco_start_user, Mid, RI, []},
              {megaco_update_user_info, sent_pending_limit, 100},
@@ -1871,18 +1883,23 @@ rarpaop_mgc_notify_reply_ar(Cid, TermId) ->
 	rarpaop_mg_verify_notify_rep_msg_fun(TransId, TermId)).
 -endif.
 
-rarpaop_mg_event_sequence(text, tcp) ->
+rarpaop_mg_event_sequence(Config,
+                          text, tcp) ->
     Port      = 2944, 
     EncMod    = megaco_pretty_text_encoder,
     EncConf   = [], 
-    rarpaop_mg_event_sequence(Port, EncMod, EncConf);
-rarpaop_mg_event_sequence(binary, tcp) ->
+    rarpaop_mg_event_sequence(Config,
+                              Port, EncMod, EncConf);
+rarpaop_mg_event_sequence(Config,
+                          binary, tcp) ->
     Port      = 2945, 
     EncMod    = megaco_ber_encoder,
     EncConf   = [], 
-    rarpaop_mg_event_sequence(Port, EncMod, EncConf).
+    rarpaop_mg_event_sequence(Config,
+                              Port, EncMod, EncConf).
 
-rarpaop_mg_event_sequence(Port, EncMod, EncConf) ->
+rarpaop_mg_event_sequence(_Config,
+                          Port, EncMod, EncConf) ->
     DecodeFun = ?rarpaop_mg_decode_msg_fun(EncMod, EncConf),
     EncodeFun = ?rarpaop_mg_encode_msg_fun(EncMod, EncConf),
     Mid       = {deviceName, "mg"},
@@ -3276,19 +3293,23 @@ request_and_reply_and_ack(Config) when is_list(Config) ->
                   ok = ?START_NODES(Nodes, true),
                   Nodes
           end,
-    Case = fun do_request_and_reply_and_ack/1,
+    Case = fun(Nodes) ->
+                   do_request_and_reply_and_ack(Config, Nodes)
+           end,
     Post = fun(Nodes) ->
                    d("stop nodes"),
                    ?STOP_NODES(lists:reverse(Nodes))
            end,
     try_tc(raraa, Pre, Case, Post).     
 
-do_request_and_reply_and_ack([MgcNode, MgNode]) ->
+do_request_and_reply_and_ack(Config,
+                             [MgcNode, MgNode]) ->
     d("[MGC] start the simulator "),
     {ok, Mgc} = megaco_test_megaco_generator:start_link("MGC", MgcNode),
 
     d("[MGC] create the event sequence"),
-    MgcEvSeq = raraa_mgc_event_sequence(text, tcp),
+    MgcEvSeq = raraa_mgc_event_sequence(Config,
+                                        text, tcp),
 
     i("wait some time before starting the MGC simulation"),
     sleep(1000),
@@ -3361,7 +3382,8 @@ do_request_and_reply_and_ack([MgcNode, MgNode]) ->
 	fun raraa_mgc_verify_handle_disconnect/1).
 -endif.
 
-raraa_mgc_event_sequence(text, tcp) ->
+raraa_mgc_event_sequence(Config,
+                         text, tcp) ->
     CTRL = self(),
     Mid = {deviceName,"ctrl"},
     RI = [
@@ -3378,7 +3400,7 @@ raraa_mgc_event_sequence(text, tcp) ->
     EvSeq = [
              {debug, true},
              {megaco_trace, disable},
-             {megaco_trace, max},
+             ?MEGACO_TRACE(Config, max), % {megaco_trace, max},
              megaco_start,
              {megaco_start_user, Mid, RI, []},
              {megaco_update_user_info, sent_pending_limit, 100},
@@ -3903,7 +3925,9 @@ request_and_reply_and_no_ack(Config) when is_list(Config) ->
                   ok = ?START_NODES(Nodes, true),
                   Nodes
           end,
-    Case = fun do_request_and_reply_and_no_ack/1,
+    Case = fun(Nodes) ->
+                   do_request_and_reply_and_no_ack(Config, Nodes)
+           end,
     Post = fun(Nodes) ->
                    d("stop nodes"),
                    ?STOP_NODES(lists:reverse(Nodes))
@@ -3911,12 +3935,14 @@ request_and_reply_and_no_ack(Config) when is_list(Config) ->
     try_tc(rarana, Pre, Case, Post).
 
 
-do_request_and_reply_and_no_ack([MgcNode, MgNode]) ->
+do_request_and_reply_and_no_ack(Config,
+                                [MgcNode, MgNode]) ->
     d("[MGC] start the simulator "),
     {ok, Mgc} = megaco_test_megaco_generator:start_link("MGC", MgcNode),
 
     d("[MGC] create the event sequence"),
-    MgcEvSeq = rarana_mgc_event_sequence(text, tcp),
+    MgcEvSeq = rarana_mgc_event_sequence(Config,
+                                         text, tcp),
 
     i("wait some time before starting the MGC simulation"),
     sleep(1000),
@@ -3989,7 +4015,8 @@ do_request_and_reply_and_no_ack([MgcNode, MgNode]) ->
 	fun rarana_mgc_verify_handle_disconnect/1).
 -endif.
 
-rarana_mgc_event_sequence(text, tcp) ->
+rarana_mgc_event_sequence(Config,
+                          text, tcp) ->
     CTRL = self(),
     Mid = {deviceName,"ctrl"},
     RI = [
@@ -4006,7 +4033,7 @@ rarana_mgc_event_sequence(text, tcp) ->
     EvSeq = [
              {debug, true},
              {megaco_trace, disable},
-             {megaco_trace, max},
+             ?MEGACO_TRACE(Config, max), % {megaco_trace, max},
              megaco_start,
              {megaco_start_user, Mid, RI, []},
              {megaco_update_user_info, sent_pending_limit, 100},
@@ -4517,19 +4544,23 @@ request_and_reply_and_late_ack(Config) when is_list(Config) ->
                   ok = ?START_NODES(Nodes, true),
                   Nodes
           end,
-    Case = fun do_request_and_reply_and_late_ack/1,
+    Case = fun(Nodes) ->
+                   do_request_and_reply_and_late_ack(Config, Nodes)
+           end,
     Post = fun(Nodes) ->
                    d("stop nodes"),
                    ?STOP_NODES(lists:reverse(Nodes))
            end,
     try_tc(rarala, Pre, Case, Post).
 
-do_request_and_reply_and_late_ack([MgcNode, MgNode]) ->
+do_request_and_reply_and_late_ack(Config,
+                                  [MgcNode, MgNode]) ->
     d("[MGC] start the simulator "),
     {ok, Mgc} = megaco_test_megaco_generator:start_link("MGC", MgcNode),
 
     d("[MGC] create the event sequence"),
-    MgcEvSeq = rarala_mgc_event_sequence(text, tcp),
+    MgcEvSeq = rarala_mgc_event_sequence(Config,
+                                         text, tcp),
 
     i("wait some time before starting the MGC simulation"),
     sleep(1000),
@@ -4602,7 +4633,8 @@ do_request_and_reply_and_late_ack([MgcNode, MgNode]) ->
 	fun rarala_mgc_verify_handle_disconnect/1).
 -endif.
 
-rarala_mgc_event_sequence(text, tcp) ->
+rarala_mgc_event_sequence(Config,
+                          text, tcp) ->
     CTRL = self(),
     Mid = {deviceName,"ctrl"},
     RI = [
@@ -4624,7 +4656,7 @@ rarala_mgc_event_sequence(text, tcp) ->
     EvSeq = [
              {debug, true},
              {megaco_trace, disable},
-             {megaco_trace, max},
+             ?MEGACO_TRACE(Config, max), % {megaco_trace, max},
              megaco_start,
              {megaco_start_user, Mid, RI, []},
              {megaco_update_user_info, sent_pending_limit, 100},
@@ -5822,19 +5854,21 @@ pending_ack_plain(Config) when is_list(Config) ->
                   ok = ?START_NODES(Nodes, true),
                   Nodes
           end,
-    Case = fun do_pending_ack_plain/1,
+    Case = fun(Nodes) -> do_pending_ack_plain(Config, Nodes) end,
     Post = fun(Nodes) ->
                    d("stop nodes"),
                    ?STOP_NODES(lists:reverse(Nodes))
            end,
     try_tc(pap, Pre, Case, Post).
 
-do_pending_ack_plain([MgcNode, MgNode]) ->
+do_pending_ack_plain(Config,
+                     [MgcNode, MgNode]) ->
     d("[MGC] start the simulator "),
     {ok, Mgc} = megaco_test_megaco_generator:start_link("MGC", MgcNode),
 
     d("[MGC] create the event sequence"),
-    MgcEvSeq = pap_mgc_event_sequence(text, tcp),
+    MgcEvSeq = pap_mgc_event_sequence(Config,
+                                      text, tcp),
 
     i("wait some time before starting the MGC simulation"),
     sleep(1000),
@@ -5911,7 +5945,8 @@ do_pending_ack_plain([MgcNode, MgNode]) ->
 	fun pap_mgc_verify_handle_disconnect/1).
 -endif.
 
-pap_mgc_event_sequence(text, tcp) ->
+pap_mgc_event_sequence(Config,
+                       text, tcp) ->
     CTRL = self(),
     Mid = {deviceName,"ctrl"},
     RI = [
@@ -5929,7 +5964,7 @@ pap_mgc_event_sequence(text, tcp) ->
     EvSeq = [
              {debug, true},
              {megaco_trace, disable},
-             {megaco_trace, max},
+             ?MEGACO_TRACE(Config, max), % {megaco_trace, max},
              megaco_start,
              {megaco_start_user, Mid, RI, []},
              {megaco_update_user_info, sent_pending_limit, 100},
@@ -7632,19 +7667,21 @@ otp_5805(Config) when is_list(Config) ->
                   ok = ?START_NODES(Nodes, true),
                   Nodes
           end,
-    Case = fun do_otp_5805/1,
+    Case = fun(Nodes) -> do_otp_5805(Config, Nodes) end,
     Post = fun(Nodes) ->
                    d("stop nodes"),
                    ?STOP_NODES(lists:reverse(Nodes))
            end,
     try_tc(otp_5805, Pre, Case, Post).
 
-do_otp_5805([MgcNode, MgNode]) ->
+do_otp_5805(Config,
+            [MgcNode, MgNode]) ->
     d("[MGC] start the simulator "),
     {ok, Mgc} = megaco_test_megaco_generator:start_link("MGC", MgcNode),
 
     d("[MGC] create the event sequence"),
-    MgcEvSeq = otp_5805_mgc_event_sequence(text, tcp),
+    MgcEvSeq = otp_5805_mgc_event_sequence(Config,
+                                           text, tcp),
 
     i("wait some time before starting the MGC simulation"),
     sleep(1000),
@@ -7923,7 +7960,8 @@ Transaction = 2 {
 	fun otp_5805_mgc_verify_handle_disconnect/1).
 -endif.
 
-otp_5805_mgc_event_sequence(text, tcp) ->
+otp_5805_mgc_event_sequence(Config,
+                            text, tcp) ->
     CTRL = self(),
     Mid = {deviceName,"ctrl"},
     RI = [
@@ -7940,7 +7978,7 @@ otp_5805_mgc_event_sequence(text, tcp) ->
     EvSeq = [
              {debug, true},
 	     {megaco_trace, disable},
-	     {megaco_trace, max},
+	     ?MEGACO_TRACE(Config, max), % {megaco_trace, max},
              megaco_start,
              {megaco_start_user, Mid, RI, []},
              start_transport,
@@ -12362,19 +12400,21 @@ otp_7189(Config) when is_list(Config) ->
                   ok = ?START_NODES(Nodes, true),
                   Nodes
           end,
-    Case = fun do_otp_7189/1,
+    Case = fun(Nodes) -> do_otp_7189(Config, Nodes) end,
     Post = fun(Nodes) ->
                    d("stop nodes"),
                    ?STOP_NODES(lists:reverse(Nodes))
            end,
     try_tc(otp_7189, Pre, Case, Post).
 
-do_otp_7189([MgcNode, MgNode]) ->
+do_otp_7189(Config,
+            [MgcNode, MgNode]) ->
     d("[MGC] start the simulator "),
     {ok, Mgc} = megaco_test_megaco_generator:start_link("MGC", MgcNode),
 
     d("[MGC] create the event sequence"),
-    MgcEvSeq = otp_7189_mgc_event_sequence(text, tcp),
+    MgcEvSeq = otp_7189_mgc_event_sequence(Config,
+                                           text, tcp),
 
     i("wait some time before starting the MGC simulation"),
     sleep(1000),
@@ -12442,7 +12482,8 @@ do_otp_7189([MgcNode, MgNode]) ->
 	fun otp_7189_mgc_verify_handle_disconnect/1).
 -endif.
 
-otp_7189_mgc_event_sequence(text, tcp) ->
+otp_7189_mgc_event_sequence(Config,
+                            text, tcp) ->
     CTRL = self(),
     Mid = {deviceName,"ctrl"},
     RI = [
@@ -12488,7 +12529,7 @@ otp_7189_mgc_event_sequence(text, tcp) ->
     EvSeq = [
              {debug, true},
 	     {megaco_trace, disable},
-	     {megaco_trace, max},
+	     ?MEGACO_TRACE(Config, max), % {megaco_trace, max},
              megaco_start,
              {megaco_start_user, Mid, RI, []},
 	     {megaco_update_user_info, recv_pending_limit, 10},
diff --git a/lib/megaco/test/megaco_pending_limit_SUITE.erl b/lib/megaco/test/megaco_pending_limit_SUITE.erl
index dfe52535c9..6c7d47bbfe 100644
--- a/lib/megaco/test/megaco_pending_limit_SUITE.erl
+++ b/lib/megaco/test/megaco_pending_limit_SUITE.erl
@@ -272,7 +272,7 @@ sent_timer_late_reply(Config) when is_list(Config) ->
                      [MgcNode, MgNode]),
                    Nodes = [MgcNode, MgNode],
                    ok = ?START_NODES(Nodes, true),
-                   #{nodes => Nodes}
+                   #{conf => Config, nodes => Nodes}
            end,
     Case = fun(State) ->
                    do_sent_timer_late_reply(State)
@@ -284,7 +284,7 @@ sent_timer_late_reply(Config) when is_list(Config) ->
            end,
     try_tc(?FUNCTION_NAME, Cond, Pre, Case, Post).
 
-do_sent_timer_late_reply(#{nodes := [MgcNode, MgNode]}) ->
+do_sent_timer_late_reply(#{conf := Config, nodes := [MgcNode, MgNode]}) ->
     %% Start the MGC and MGs
     i("[MGC] start"),    
     ET = [{text,tcp}, {text,udp}, {binary,tcp}, {binary,udp}],
@@ -292,7 +292,7 @@ do_sent_timer_late_reply(#{nodes := [MgcNode, MgNode]}) ->
     {ok, Mgc} = ?MGC_START(MgcNode, ET, MgcConf),
 
     i("[MG] start"),    
-    MgConf   = [{megaco_trace, io}],
+    MgConf   = [?MEGACO_TRACE(Config, io)], % [{megaco_trace, io}],
     {ok, Mg} = ?MG_START(MgNode, text, tcp, MgConf),
 
     d("MG user info: ~p", [?MG_USER_INFO(Mg, all)]),
@@ -1187,7 +1187,7 @@ otp_4956(Config) when is_list(Config) ->
                      [MgcNode, MgNode]),
                    Nodes = [MgcNode, MgNode],
                    ok = ?START_NODES(Nodes, true),
-                   #{nodes => Nodes}
+                   #{conf => Config, nodes => Nodes}
            end,
     Case = fun(State) ->
                    do_otp_4956(State)
@@ -1199,12 +1199,13 @@ otp_4956(Config) when is_list(Config) ->
            end,
     try_tc(?FUNCTION_NAME, Cond, Pre, Case, Post).
 
-do_otp_4956(#{nodes := [MgcNode, MgNode]}) ->
+do_otp_4956(#{conf := Config, nodes := [MgcNode, MgNode]}) ->
     i("[MGC] start the simulator "),
     {ok, Mgc} = megaco_test_megaco_generator:start_link("MGC", MgcNode),
 
     i("[MGC] create the event sequence"),
-    MgcEvSeq = otp_4956_mgc_event_sequence(text, tcp),
+    MgcEvSeq = otp_4956_mgc_event_sequence(Config,
+                                           text, tcp),
 
     i("wait some time before starting the MGC simulation"),
     sleep(1000),
@@ -1258,7 +1259,8 @@ do_otp_4956(#{nodes := [MgcNode, MgNode]}) ->
 -define(otp_4956_mgc_verify_handle_disconnect_fun(),
 	fun otp_4956_mgc_verify_handle_disconnect/1).
 
-otp_4956_mgc_event_sequence(text, tcp) ->
+otp_4956_mgc_event_sequence(Config,
+                            text, tcp) ->
     Mid = {deviceName,"ctrl"},
     RI = [
           {port,             2944},
@@ -1281,7 +1283,7 @@ otp_4956_mgc_event_sequence(text, tcp) ->
     EvSeq = [
              {debug, true},
 	     {megaco_trace, disable},
-	     {megaco_trace, max},
+	     ?MEGACO_TRACE(Config, max), % {megaco_trace, max},
              megaco_start,
              {megaco_start_user, Mid, RI, []},
 	     {megaco_update_user_info, sent_pending_limit, 4},
diff --git a/lib/megaco/test/megaco_segment_SUITE.erl b/lib/megaco/test/megaco_segment_SUITE.erl
index 3763a20954..988ccb0e70 100644
--- a/lib/megaco/test/megaco_segment_SUITE.erl
+++ b/lib/megaco/test/megaco_segment_SUITE.erl
@@ -5094,14 +5094,15 @@ recv_segmented_msg_plain(Config) when is_list(Config) ->
                   ok = ?START_NODES(Nodes),
                   Nodes
           end,
-    Case = fun do_recv_segmented_msg_plain/1,
+    Case = fun(Nodes) -> do_recv_segmented_msg_plain(Config, Nodes) end,
     Post = fun(Nodes) ->
                    d("stop nodes"),
                    ?STOP_NODES(lists:reverse(Nodes))
            end,
     try_tc(rsmp, Pre, Case, Post).
 
-do_recv_segmented_msg_plain([MgcNode, MgNode]) ->
+do_recv_segmented_msg_plain(Config,
+                            [MgcNode, MgNode]) ->
 
     d("[MGC] start the simulator "),
     {ok, Mgc} = megaco_test_tcp_generator:start_link("MGC", MgcNode),
@@ -5122,7 +5123,8 @@ do_recv_segmented_msg_plain([MgcNode, MgNode]) ->
     {ok, Mg} = megaco_test_megaco_generator:start_link("MG", MgNode),
 
     d("[MG] create the event sequence"),
-    MgEvSeq = rsmp_mg_event_sequence(text, tcp),
+    MgEvSeq = rsmp_mg_event_sequence(Config,
+                                     text, tcp),
 
     i("wait some time before starting the MG simulation"),
     sleep(1000),
@@ -5541,7 +5543,8 @@ rsmp_mgc_notify_reply_msg(SN, Mid, TransId, Cid, TermId) ->
 %%
 %% MG generator stuff
 %%
-rsmp_mg_event_sequence(text, tcp) ->
+rsmp_mg_event_sequence(Config,
+                       text, tcp) ->
     Mid = {deviceName,"mg"},
     RI = [
           {port,             2944},
@@ -5563,7 +5566,7 @@ rsmp_mg_event_sequence(text, tcp) ->
     EvSeq = [
              {debug, true},
              %% {megaco_trace, disable},
-             {megaco_trace, max},
+             ?MEGACO_TRACE(Config, max), % {megaco_trace, max},
              megaco_start,
              {megaco_start_user, Mid, RI, []},
              start_transport,
@@ -5770,14 +5773,15 @@ recv_segmented_msg_ooo_seg(Config) when is_list(Config) ->
                   ok = ?START_NODES(Nodes),
                   Nodes
           end,
-    Case = fun do_recv_segmented_msg_ooo_seg/1,
+    Case = fun(Nodes) -> do_recv_segmented_msg_ooo_seg(Config, Nodes) end,
     Post = fun(Nodes) ->
                    d("stop nodes"),
                    ?STOP_NODES(lists:reverse(Nodes))
            end,
     try_tc(rsmos, Pre, Case, Post).
 
-do_recv_segmented_msg_ooo_seg([MgcNode, MgNode]) ->
+do_recv_segmented_msg_ooo_seg(Config,
+                              [MgcNode, MgNode]) ->
 
     d("[MGC] start the simulator "),
     {ok, Mgc} = megaco_test_tcp_generator:start_link("MGC", MgcNode),
@@ -5798,7 +5802,8 @@ do_recv_segmented_msg_ooo_seg([MgcNode, MgNode]) ->
     {ok, Mg} = megaco_test_megaco_generator:start_link("MG", MgNode),
 
     d("[MG] create the event sequence"),
-    MgEvSeq = rsmos_mg_event_sequence(text, tcp),
+    MgEvSeq = rsmos_mg_event_sequence(Config,
+                                      text, tcp),
 
     i("wait some time before starting the MG simulation"),
     sleep(1000),
@@ -6211,7 +6216,8 @@ rsmos_mgc_notify_reply_msg(SN, Mid, TransId, Cid, TermId) ->
 %%
 %% MG generator stuff
 %%
-rsmos_mg_event_sequence(text, tcp) ->
+rsmos_mg_event_sequence(Config,
+                        text, tcp) ->
     Mid = {deviceName,"mg"},
     RI = [
           {port,             2944},
@@ -6234,7 +6240,7 @@ rsmos_mg_event_sequence(text, tcp) ->
     EvSeq = [
              {debug, true},
              %% {megaco_trace, disable},
-             {megaco_trace, max},
+             ?MEGACO_TRACE(Config, max), % {megaco_trace, max},
              megaco_start,
              {megaco_start_user, Mid, RI, []},
              start_transport,
diff --git a/lib/megaco/test/megaco_test_lib.erl b/lib/megaco/test/megaco_test_lib.erl
index 727ea37e11..5b7c1912d9 100644
--- a/lib/megaco/test/megaco_test_lib.erl
+++ b/lib/megaco/test/megaco_test_lib.erl
@@ -69,7 +69,9 @@
          inet_backend_opts/1,
          explicit_inet_backend/0, test_inet_backends/0,
          open/3,
-         listen/3, connect/3
+         listen/3, connect/3,
+
+         megaco_trace/2
 
         ]).
 -export([init_per_suite/1,    end_per_suite/1,
@@ -499,7 +501,7 @@ init_per_suite(Config) ->
                     {skip, "Unstable host and/or os (or combo thererof)"};
                 false ->
                     maybe_start_global_sys_monitor(Config),
-                    [{megaco_factor, Factor} | Config]
+                    maybe_disable_trace([{megaco_factor, Factor} | Config])
             catch
                 throw:{skip, _} = SKIP ->
                     SKIP
@@ -509,6 +511,18 @@ init_per_suite(Config) ->
             SKIP
     end.
 
+
+%% For tace to work, we need the 'et' app.
+%% Specifically, we need the et_selector module,
+%% so check if that module can be found!
+maybe_disable_trace(Config) ->
+    case code:ensure_loaded(et_selector) of
+        {error, _} ->
+            [{megaco_trace, disable} | Config];
+        _ ->
+            Config
+    end.
+
 maybe_skip(_HostInfo) ->
 
     %% We have some crap machines that causes random test case failures
@@ -3100,6 +3114,21 @@ stop_node(Node) ->
     end.
 
 
+%% ----------------------------------------------------------------
+%% Gerated a 'megaco_trace' tuple based on Config and a default value
+%%
+
+megaco_trace(Config, Default) ->
+    Key = megaco_trace,
+    case lists:keysearch(Key, 1, Config) of
+        {value, {Key, Value}} ->
+            p("default megaco-trace ~w", [Value]),
+            {Key, Value};
+        _ ->
+            {Key, Default}
+    end.
+
+
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 
 timetrap_scale_factor() ->
diff --git a/lib/megaco/test/megaco_test_lib.hrl b/lib/megaco/test/megaco_test_lib.hrl
index 46bffdf818..c49f2e8aa0 100644
--- a/lib/megaco/test/megaco_test_lib.hrl
+++ b/lib/megaco/test/megaco_test_lib.hrl
@@ -145,3 +145,5 @@
 -define(UNIQUE(__PreName__),
         list_to_atom(
           ?F("~w_~w", [__PreName__, erlang:system_time(millisecond)]))).
+
+-define(MEGACO_TRACE(C, D), ?LIB:megaco_trace((C), (D))).
diff --git a/lib/megaco/test/megaco_trans_SUITE.erl b/lib/megaco/test/megaco_trans_SUITE.erl
index 0d98cb3895..88b7dc7246 100644
--- a/lib/megaco/test/megaco_trans_SUITE.erl
+++ b/lib/megaco/test/megaco_trans_SUITE.erl
@@ -603,14 +603,15 @@ single_trans_req(Config) when is_list(Config) ->
                   ok = ?START_NODES(Nodes),
                   Nodes
           end,
-    Case = fun do_single_trans_req/1,
+    Case = fun(Nodes) -> do_single_trans_req(Config, Nodes) end,
     Post = fun(Nodes) ->
                    d("stop nodes"),
                    ?STOP_NODES(lists:reverse(Nodes))
            end,
     try_tc(single_trans_req, Pre, Case, Post).
 
-do_single_trans_req([MgcNode, MgNode]) ->
+do_single_trans_req(Config,
+                    [MgcNode, MgNode]) ->
 
     d("[MGC] start the simulator "),
     {ok, Mgc} = megaco_test_megaco_generator:start_link("MGC", MgcNode),
@@ -638,7 +639,8 @@ do_single_trans_req([MgcNode, MgNode]) ->
     {ok, Mg} = megaco_test_megaco_generator:start_link("MG", MgNode),
 
     d("[MG] create the event sequence"),
-    MgEvSeq = str_mg_event_sequence(text, tcp),
+    MgEvSeq = str_mg_event_sequence(Config,
+                                    text, tcp),
 
     i("wait some time before starting the MG simulation"),
     sleep(1000),
@@ -890,7 +892,8 @@ str_mgc_notify_reply_ar(Cid, TermId) ->
 	fun str_mg_verify_notify_reply/1).
 -endif.
 
-str_mg_event_sequence(text, tcp) ->
+str_mg_event_sequence(Config,
+                      text, tcp) ->
     Mid = {deviceName,"mg"},
     RI = [
 	  {port,             2944},
@@ -909,7 +912,7 @@ str_mg_event_sequence(text, tcp) ->
 	     megaco_start,
 	     {megaco_start_user, Mid, RI, []},
 	     start_transport,
-	     {megaco_trace, max}, 
+	     ?MEGACO_TRACE(Config, max), % {megaco_trace, max}, 
 	     {megaco_system_info, users},
 	     {megaco_system_info, connections},
 	     connect,
@@ -8852,14 +8855,15 @@ otp_7192_3(Config) when is_list(Config) ->
                   ok = ?START_NODES(Nodes),
                   Nodes
           end,
-    Case = fun do_otp_7192_3/1,
+    Case = fun(Nodes) -> do_otp_7192_3(Config, Nodes) end,
     Post = fun(Nodes) ->
                    d("stop nodes"),
                    ?STOP_NODES(lists:reverse(Nodes))
            end,
     try_tc(otp_7192_3, Pre, Case, Post).
 
-do_otp_7192_3([MgcNode, MgNode]) ->
+do_otp_7192_3(Config,
+              [MgcNode, MgNode]) ->
 
     MgMid = {deviceName,"mg"},
 
@@ -8867,7 +8871,8 @@ do_otp_7192_3([MgcNode, MgNode]) ->
     {ok, Mgc} = megaco_test_megaco_generator:start_link("MGC", MgcNode),
 
     d("[MGC] create the event sequence"),
-    MgcEvSeq = otp72923_mgc_event_sequence(text, udp, MgMid),
+    MgcEvSeq = otp72923_mgc_event_sequence(Config,
+                                           text, udp, MgMid),
 
     i("wait some time before starting the MGC simulation"),
     sleep(1000),
@@ -8936,7 +8941,8 @@ do_otp_7192_3([MgcNode, MgNode]) ->
 	fun otp72923_mgc_verify_handle_disconnect/1).
 -endif.
 
-otp72923_mgc_event_sequence(text, udp, MgMid) ->
+otp72923_mgc_event_sequence(Config,
+                            text, udp, MgMid) ->
     CTRL = self(),
     Mid = {deviceName, "ctrl"},
     RI = [
@@ -8957,7 +8963,7 @@ otp72923_mgc_event_sequence(text, udp, MgMid) ->
     %% DiscoVerify            = ?otp72923_mgc_verify_handle_disconnect_fun(), 
     EvSeq = [
 	     {debug, true},
-	     {megaco_trace, max}, 
+	     ?MEGACO_TRACE(Config, max), % {megaco_trace, max}, 
 	     %% {megaco_trace, disable}, 
 	     megaco_start,
 	     {megaco_start_user, Mid, RI, []},
-- 
2.35.3

openSUSE Build Service is sponsored by