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