File 2681-megaco-test-Message-test-case-race-fix.patch of Package erlang

From e6091d3deda23896c03c80fba2cdc38daf569764 Mon Sep 17 00:00:00 2001
From: Micael Karlberg <bmk@erlang.org>
Date: Wed, 4 Sep 2019 12:21:43 +0200
Subject: [PATCH 1/2] [megaco|test] Message test case race fix

The MGC had not started properly when the MG started,
which resulted in the MG failing to connect to the MGC.
Added a "trigger" to the MGC sequence to "announce" when
its actually ready. The MG will not be started until this
is received.
---
 lib/megaco/test/megaco_mess_test.erl | 30 +++++++++++++++++++++---------
 1 file changed, 21 insertions(+), 9 deletions(-)

diff --git a/lib/megaco/test/megaco_mess_test.erl b/lib/megaco/test/megaco_mess_test.erl
index 3fd39a9e58..c5574f7d37 100644
--- a/lib/megaco/test/megaco_mess_test.erl
+++ b/lib/megaco/test/megaco_mess_test.erl
@@ -11127,8 +11127,15 @@ otp_6865_request_and_reply_plain_extra2(Config) when is_list(Config) ->
     d("[MGC] start the simulation"),
     {ok, MgcId} = megaco_test_megaco_generator:exec(Mgc, MgcEvSeq),
 
-    i("wait some time before starting the MG simulator"),
-    sleep(1000),
+    %% i("wait some time before starting the MG simulator"),
+    %% sleep(1000),
+
+    i("await MGC ready announcement"),
+    receive
+        announce_mgc ->
+            i("received MGC ready announcement"),
+            ok
+    end,
 
     d("[MG] start the simulator (generator)"),
     {ok, Mg} = megaco_test_tcp_generator:start_link("MG", MgNode),
@@ -11192,13 +11199,14 @@ otp_6865_request_and_reply_plain_extra2(Config) when is_list(Config) ->
 -endif.
 
 otp6865e2_mgc_event_sequence(ExtraInfo, text, tcp) ->
-    Mid = {deviceName,"ctrl"},
-    RI = [
-	  {port,             2944},
-	  {encoding_module,  megaco_pretty_text_encoder},
-	  {encoding_config,  []},
-	  {transport_module, megaco_tcp}
-	 ],
+    Mid  = {deviceName, "ctrl"},
+    CTRL = self(),
+    RI   = [
+            {port,             2944},
+            {encoding_module,  megaco_pretty_text_encoder},
+            {encoding_config,  []},
+            {transport_module, megaco_tcp}
+           ],
     ConnectVerify          = 
 	?otp6865e2_mgc_verify_handle_connect_fun(ExtraInfo), 
     ServiceChangeReqVerify = 
@@ -11220,6 +11228,10 @@ otp6865e2_mgc_event_sequence(ExtraInfo, text, tcp) ->
 	     {megaco_start_user, Mid, RI, []},
 	     start_transport,
 	     listen,
+
+             %% ANNOUNCE READY
+             {trigger, fun() -> CTRL ! announce_mgc end}, 
+
 	     {megaco_callback, handle_connect,       ConnectVerify},
 	     {megaco_callback, handle_trans_request, ServiceChangeReqVerify},
 	     {megaco_callback, handle_trans_request, NotifyReqVerify1},
-- 
2.16.4

openSUSE Build Service is sponsored by