<p>laforge <strong>submitted</strong> this change.</p><p><a href="https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18633">View Change</a></p><div style="white-space:pre-wrap">Approvals:
  Jenkins Builder: Verified
  fixeria: Verified
  laforge: Looks good to me, approved

</div><pre style="font-family: monospace,monospace; white-space: pre-wrap;">BTS_Tests: fix f_init_rsl(): expect all 4 transceivers to connect<br><br>Fixes TC_paging_{imsi,tmsi}_{200,80}percent test cases.<br><br>Change-Id: I32bb6d37929cde420a547e18eeb2f940e833316b<br>Related: OS#4546<br>---<br>M bts/BTS_Tests.ttcn<br>1 file changed, 28 insertions(+), 18 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/bts/BTS_Tests.ttcn b/bts/BTS_Tests.ttcn</span><br><span>index 80804ec..e3d4beb 100644</span><br><span>--- a/bts/BTS_Tests.ttcn</span><br><span>+++ b/bts/BTS_Tests.ttcn</span><br><span>@@ -118,6 +118,7 @@</span><br><span>     var RSL_Emulation_CT vc_RSL;</span><br><span>         /* Direct RSL_CCHAN_PT */</span><br><span>    port RSL_CCHAN_PT RSL_CCHAN;</span><br><span style="color: hsl(120, 100%, 40%);">+  timer g_rslem_up_timer;</span><br><span> </span><br><span>  /* L1CTL port (for classic tests) */</span><br><span>         port L1CTL_PT L1CTL;</span><br><span>@@ -180,9 +181,14 @@</span><br><span>  port PCUIF_CODEC_PT PCU;</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-function f_init_rsl(charstring id) runs on test_CT {</span><br><span style="color: hsl(0, 100%, 40%);">-   timer T := mp_ipa_up_timeout;</span><br><span style="color: hsl(120, 100%, 40%);">+private altstep as_rsl_init_guard() runs on test_CT {</span><br><span style="color: hsl(120, 100%, 40%);">+  [] g_rslem_up_timer.timeout {</span><br><span style="color: hsl(120, 100%, 40%);">+         Misc_Helpers.f_shutdown(__BFILE__, __LINE__, fail,</span><br><span style="color: hsl(120, 100%, 40%);">+                    "Timeout waiting for RSL bring up");</span><br><span style="color: hsl(120, 100%, 40%);">+                }</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+function f_init_rsl(charstring id) runs on test_CT {</span><br><span>       vc_IPA := IPA_Emulation_CT.create(id & "-RSL-IPA");</span><br><span>    vc_RSL := RSL_Emulation_CT.create(id & "-RSL");</span><br><span> </span><br><span>@@ -193,14 +199,27 @@</span><br><span>    vc_IPA.start(IPA_Emulation.main_server(mp_rsl_ip, mp_rsl_port));</span><br><span>     vc_RSL.start(RSL_Emulation.main(false));</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-    T.start;</span><br><span style="color: hsl(0, 100%, 40%);">-        alt {</span><br><span style="color: hsl(0, 100%, 40%);">-   /* TODO: handle connection events from multiple transceivers */</span><br><span style="color: hsl(0, 100%, 40%);">- [] RSL_CCHAN.receive(tr_RSLEm_EV(RSLEM_EV_TRX_UP));</span><br><span style="color: hsl(0, 100%, 40%);">-     [] T.timeout {</span><br><span style="color: hsl(0, 100%, 40%);">-          Misc_Helpers.f_shutdown(__BFILE__, __LINE__, fail, "Timeout waiting for ASP_IPA_EVENT_UP");</span><br><span style="color: hsl(0, 100%, 40%);">-           }</span><br><span style="color: hsl(120, 100%, 40%);">+     /* TTCN-3 offers no way to guard 'interleave' statements */</span><br><span style="color: hsl(120, 100%, 40%);">+   g_rslem_up_timer.start(mp_ipa_up_timeout);</span><br><span style="color: hsl(120, 100%, 40%);">+    var default d := activate(as_rsl_init_guard());</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+     /* We expect all 4 transceivers to connect here (separate IPA/RSL connections).</span><br><span style="color: hsl(120, 100%, 40%);">+        * See https://gerrit.osmocom.org/q/Ib5ad31388ae25399ad09739aac3fdcb0b3a1f78b. */</span><br><span style="color: hsl(120, 100%, 40%);">+     interleave {</span><br><span style="color: hsl(120, 100%, 40%);">+  /* These events are sent by the RSL_Emulation_CT */</span><br><span style="color: hsl(120, 100%, 40%);">+   [] RSL_CCHAN.receive(tr_RSLEm_EV(RSLEM_EV_TRX_UP, IPAC_PROTO_RSL_TRX0));</span><br><span style="color: hsl(120, 100%, 40%);">+      [] RSL_CCHAN.receive(tr_RSLEm_EV(RSLEM_EV_TRX_UP, IPAC_PROTO_RSL_TRX1));</span><br><span style="color: hsl(120, 100%, 40%);">+      [] RSL_CCHAN.receive(tr_RSLEm_EV(RSLEM_EV_TRX_UP, IPAC_PROTO_RSL_TRX2));</span><br><span style="color: hsl(120, 100%, 40%);">+      [] RSL_CCHAN.receive(tr_RSLEm_EV(RSLEM_EV_TRX_UP, IPAC_PROTO_RSL_TRX3));</span><br><span style="color: hsl(120, 100%, 40%);">+      /* These messages (RF RESource INDication) are sent by the IUT itself */</span><br><span style="color: hsl(120, 100%, 40%);">+      [] RSL_CCHAN.receive(tr_ASP_RSL_UD(tr_RSL_RF_RES_IND, IPAC_PROTO_RSL_TRX0));</span><br><span style="color: hsl(120, 100%, 40%);">+  [] RSL_CCHAN.receive(tr_ASP_RSL_UD(tr_RSL_RF_RES_IND, IPAC_PROTO_RSL_TRX1));</span><br><span style="color: hsl(120, 100%, 40%);">+  [] RSL_CCHAN.receive(tr_ASP_RSL_UD(tr_RSL_RF_RES_IND, IPAC_PROTO_RSL_TRX2));</span><br><span style="color: hsl(120, 100%, 40%);">+  [] RSL_CCHAN.receive(tr_ASP_RSL_UD(tr_RSL_RF_RES_IND, IPAC_PROTO_RSL_TRX3));</span><br><span>         }</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+   g_rslem_up_timer.stop;</span><br><span style="color: hsl(120, 100%, 40%);">+        deactivate(d);</span><br><span> }</span><br><span> </span><br><span> type record ConnHdlrPars {</span><br><span>@@ -2956,13 +2975,6 @@</span><br><span>       integer num_overload</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-/* receive + ignore RSL RF RES IND */</span><br><span style="color: hsl(0, 100%, 40%);">-altstep as_rsl_res_ind() runs on test_CT {</span><br><span style="color: hsl(0, 100%, 40%);">-    [] RSL_CCHAN.receive(tr_ASP_RSL_UD(tr_RSL_RF_RES_IND)) {</span><br><span style="color: hsl(0, 100%, 40%);">-                repeat;</span><br><span style="color: hsl(0, 100%, 40%);">- }</span><br><span style="color: hsl(0, 100%, 40%);">-}</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span> /* Helper function for paging related testing */</span><br><span> private function f_TC_paging(PagingTestCfg cfg) runs on test_CT return PagingTestState {</span><br><span>   f_init();</span><br><span>@@ -3045,7 +3057,6 @@</span><br><span>                    }</span><br><span>                    }</span><br><span>            [] T_total.timeout { }</span><br><span style="color: hsl(0, 100%, 40%);">-          [] as_rsl_res_ind();</span><br><span>                 }</span><br><span>    }</span><br><span> </span><br><span>@@ -3061,7 +3072,6 @@</span><br><span>        [] T_wait.timeout {</span><br><span>          Misc_Helpers.f_shutdown(__BFILE__, __LINE__, fail, "Waiting for empty paging queue");</span><br><span>              }</span><br><span style="color: hsl(0, 100%, 40%);">-       [] as_rsl_res_ind();</span><br><span>         }</span><br><span> </span><br><span>        log("num_paging_sent=", st.num_paging_sent, " rcvd_msgs=", st.num_paging_rcv_msgs,</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18633">change 18633</a>. To unsubscribe, or for help writing mail filters, visit <a href="https://gerrit.osmocom.org/settings">settings</a>.</p><div itemscope itemtype="http://schema.org/EmailMessage"><div itemscope itemprop="action" itemtype="http://schema.org/ViewAction"><link itemprop="url" href="https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18633"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: osmo-ttcn3-hacks </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-Change-Id: I32bb6d37929cde420a547e18eeb2f940e833316b </div>
<div style="display:none"> Gerrit-Change-Number: 18633 </div>
<div style="display:none"> Gerrit-PatchSet: 4 </div>
<div style="display:none"> Gerrit-Owner: fixeria <vyanitskiy@sysmocom.de> </div>
<div style="display:none"> Gerrit-Reviewer: Jenkins Builder </div>
<div style="display:none"> Gerrit-Reviewer: fixeria <vyanitskiy@sysmocom.de> </div>
<div style="display:none"> Gerrit-Reviewer: laforge <laforge@osmocom.org> </div>
<div style="display:none"> Gerrit-Reviewer: pespin <pespin@sysmocom.de> </div>
<div style="display:none"> Gerrit-MessageType: merged </div>