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

</div><pre style="font-family: monospace,monospace; white-space: pre-wrap;">gbproxy: Use Misc_Helpers.f_shutdown() whenever applicable<br><br>This should avoid some of the "known" races during shut-down<br><br>Change-Id: I4fdd47e9c5887597dca89580f856ddc6cd8f54f1<br>---<br>M gbproxy/GBProxy_Tests.ttcn<br>1 file changed, 43 insertions(+), 56 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/gbproxy/GBProxy_Tests.ttcn b/gbproxy/GBProxy_Tests.ttcn</span><br><span>index df27a3d..4879521 100644</span><br><span>--- a/gbproxy/GBProxy_Tests.ttcn</span><br><span>+++ b/gbproxy/GBProxy_Tests.ttcn</span><br><span>@@ -592,8 +592,7 @@</span><br><span>               repeat;</span><br><span>              }</span><br><span>    [] SGSN_MGMT.receive {</span><br><span style="color: hsl(0, 100%, 40%);">-          setverdict(fail, "Received unexpected message on SGSN_MGMT");</span><br><span style="color: hsl(0, 100%, 40%);">-         mtc.stop;</span><br><span style="color: hsl(120, 100%, 40%);">+             f_shutdown(__FILE__, __LINE__, fail, "Received unexpected message on SGSN_MGMT");</span><br><span>          }</span><br><span> </span><br><span>        [] PCU_MGMT.receive(BssgpStatusIndication:{*, ?, BVC_S_UNBLOCKED}) -> value bsi {</span><br><span>@@ -606,8 +605,7 @@</span><br><span>           repeat;</span><br><span>              }</span><br><span>    [] PCU_MGMT.receive {</span><br><span style="color: hsl(0, 100%, 40%);">-           setverdict(fail, "Received unexpected message on PCU_MGMT");</span><br><span style="color: hsl(0, 100%, 40%);">-          mtc.stop;</span><br><span style="color: hsl(120, 100%, 40%);">+             f_shutdown(__FILE__, __LINE__, fail, "Received unexpected message on PCU_MGMT");</span><br><span>           }</span><br><span> </span><br><span>        [] T.timeout {</span><br><span>@@ -622,8 +620,8 @@</span><br><span>                 for (var integer j := 0; j < lengthof(g_sgsn[i].cfg.bvc); j := j+1) {</span><br><span>                     var BssgpBvci bvci := g_sgsn[i].cfg.bvc[j].bvci;</span><br><span>                     if (not ro_integer_contains(bvci_unblocked[i], bvci)) {</span><br><span style="color: hsl(0, 100%, 40%);">-                         setverdict(fail, "SGSN ", i, " BVCI=", bvci, " was not unblocked during start-up");</span><br><span style="color: hsl(0, 100%, 40%);">-                               mtc.stop;</span><br><span style="color: hsl(120, 100%, 40%);">+                             f_shutdown(__FILE__, __LINE__, fail,</span><br><span style="color: hsl(120, 100%, 40%);">+                                  log2str("SGSN ", i, " BVCI=", bvci, " was not unblocked during start-up"));</span><br><span>                    }</span><br><span>            }</span><br><span>    }</span><br><span>@@ -742,8 +740,7 @@</span><br><span> </span><br><span> private altstep as_gTguard(timer Tguard) {</span><br><span>    [] Tguard.timeout {</span><br><span style="color: hsl(0, 100%, 40%);">-             setverdict(fail, "Tguard timeout");</span><br><span style="color: hsl(0, 100%, 40%);">-           mtc.stop;</span><br><span style="color: hsl(120, 100%, 40%);">+             f_shutdown(__FILE__, __LINE__, fail, "Tguard timeout");</span><br><span>    }</span><br><span> }</span><br><span> </span><br><span>@@ -821,16 +818,16 @@</span><br><span>           setverdict(pass);</span><br><span>            }</span><br><span>    [] SGSN_PTP[sgsn_idx].receive(PDU_BSSGP:?) -> value rx {</span><br><span style="color: hsl(0, 100%, 40%);">-             setverdict(fail, "Unexpected BSSGP on SGSN[", sgsn_idx, "] side: ", rx);</span><br><span style="color: hsl(0, 100%, 40%);">-            mtc.stop;</span><br><span style="color: hsl(120, 100%, 40%);">+             f_shutdown(__FILE__, __LINE__, fail,</span><br><span style="color: hsl(120, 100%, 40%);">+                  log2str("Unexpected BSSGP on SGSN[", sgsn_idx, "] side: ", rx));</span><br><span>                 }</span><br><span>    [] SGSN_SIG[sgsn_idx].receive(PDU_BSSGP:?) -> value rx {</span><br><span style="color: hsl(0, 100%, 40%);">-             setverdict(fail, "Unexpected SIG BSSGP on SGSN[", sgsn_idx, "] side: ", rx);</span><br><span style="color: hsl(0, 100%, 40%);">-                mtc.stop;</span><br><span style="color: hsl(120, 100%, 40%);">+             f_shutdown(__FILE__, __LINE__, fail,</span><br><span style="color: hsl(120, 100%, 40%);">+                  log2str("Unexpected SIG BSSGP on SGSN[", sgsn_idx, "] side: ", rx));</span><br><span>             }</span><br><span>    [] T.timeout {</span><br><span style="color: hsl(0, 100%, 40%);">-          setverdict(fail, "Timeout waiting for BSSGP on SGSN[", sgsn_idx, "] side: ", exp_rx);</span><br><span style="color: hsl(0, 100%, 40%);">-               mtc.stop;</span><br><span style="color: hsl(120, 100%, 40%);">+             f_shutdown(__FILE__, __LINE__, fail,</span><br><span style="color: hsl(120, 100%, 40%);">+                  log2str("Timeout waiting for BSSGP on SGSN[", sgsn_idx, "] side: ", exp_rx));</span><br><span>            }</span><br><span>    }</span><br><span> }</span><br><span>@@ -858,16 +855,16 @@</span><br><span>               setverdict(pass);</span><br><span>            }</span><br><span>    [] any from SGSN_PTP.receive(PDU_BSSGP:?) -> value rx @index value rx_idx {</span><br><span style="color: hsl(0, 100%, 40%);">-          setverdict(fail, "Unexpected BSSGP on SGSN[", rx_idx, "] side: ", rx);</span><br><span style="color: hsl(0, 100%, 40%);">-              mtc.stop;</span><br><span style="color: hsl(120, 100%, 40%);">+             f_shutdown(__FILE__, __LINE__, fail,</span><br><span style="color: hsl(120, 100%, 40%);">+                  log2str("Unexpected BSSGP on SGSN[", rx_idx, "] side: ", rx));</span><br><span>           }</span><br><span>    [] any from SGSN_SIG.receive(PDU_BSSGP:?) -> value rx @index value rx_idx {</span><br><span style="color: hsl(0, 100%, 40%);">-          setverdict(fail, "Unexpected SIG BSSGP on SGSN[", rx_idx, "] side: ", rx);</span><br><span style="color: hsl(0, 100%, 40%);">-          mtc.stop;</span><br><span style="color: hsl(120, 100%, 40%);">+             f_shutdown(__FILE__, __LINE__, fail,</span><br><span style="color: hsl(120, 100%, 40%);">+                  log2str("Unexpected SIG BSSGP on SGSN[", rx_idx, "] side: ", rx));</span><br><span>               }</span><br><span>    [] T.timeout {</span><br><span style="color: hsl(0, 100%, 40%);">-          setverdict(fail, "Timeout waiting for BSSGP on SGSN side: ", exp_rx);</span><br><span style="color: hsl(0, 100%, 40%);">-         mtc.stop;</span><br><span style="color: hsl(120, 100%, 40%);">+             f_shutdown(__FILE__, __LINE__, fail,</span><br><span style="color: hsl(120, 100%, 40%);">+                  log2str("Timeout waiting for BSSGP on SGSN side: ", exp_rx));</span><br><span>              }</span><br><span>    }</span><br><span>    return rx_idx;</span><br><span>@@ -895,16 +892,14 @@</span><br><span>               setverdict(pass);</span><br><span>            }</span><br><span>    [] PCU_PTP[pcu_idx].receive(PDU_BSSGP:?) -> value rx {</span><br><span style="color: hsl(0, 100%, 40%);">-               setverdict(fail, "Unexpected BSSGP on PCU side: ", rx);</span><br><span style="color: hsl(0, 100%, 40%);">-               mtc.stop;</span><br><span style="color: hsl(120, 100%, 40%);">+             f_shutdown(__FILE__, __LINE__, fail, log2str("Unexpected BSSGP on PCU side: ", rx));</span><br><span>               }</span><br><span>    [] PCU_SIG[pcu_idx].receive(PDU_BSSGP:?) -> value rx {</span><br><span style="color: hsl(0, 100%, 40%);">-               setverdict(fail, "Unexpected SIG BSSGP on PCU side: ", rx);</span><br><span style="color: hsl(0, 100%, 40%);">-           mtc.stop;</span><br><span style="color: hsl(120, 100%, 40%);">+             f_shutdown(__FILE__, __LINE__, fail, log2str("Unexpected SIG BSSGP on PCU side: ", rx));</span><br><span>           }</span><br><span>    [] T.timeout {</span><br><span style="color: hsl(0, 100%, 40%);">-          setverdict(fail, "Timeout waiting for BSSGP on PCU side: ", exp_rx);</span><br><span style="color: hsl(0, 100%, 40%);">-          mtc.stop;</span><br><span style="color: hsl(120, 100%, 40%);">+             f_shutdown(__FILE__, __LINE__, fail,</span><br><span style="color: hsl(120, 100%, 40%);">+                  log2str("Timeout waiting for BSSGP on PCU side: ", exp_rx));</span><br><span>               }</span><br><span>    }</span><br><span> }</span><br><span>@@ -987,12 +982,10 @@</span><br><span>               setverdict(fail, "BSSGP arrived on wrong SGSN[", rx_idx, "] instead of SGSN[", sgsn_idx, "]");</span><br><span>                 }</span><br><span>    [] G_SGSN[sgsn_idx].receive(PDU_BSSGP:?) -> value rx {</span><br><span style="color: hsl(0, 100%, 40%);">-               setverdict(fail, "Unexpected BSSGP on SGSN side: ", rx);</span><br><span style="color: hsl(0, 100%, 40%);">-              mtc.stop;</span><br><span style="color: hsl(120, 100%, 40%);">+             f_shutdown(__FILE__, __LINE__, fail, log2str("Unexpected BSSGP on SGSN side: ", rx));</span><br><span>              }</span><br><span>    [] T.timeout {</span><br><span style="color: hsl(0, 100%, 40%);">-          setverdict(fail, "Timeout waiting for BSSGP on SGSN side: ", exp_rx);</span><br><span style="color: hsl(0, 100%, 40%);">-         mtc.stop;</span><br><span style="color: hsl(120, 100%, 40%);">+             f_shutdown(__FILE__, __LINE__, fail, log2str("Timeout waiting for BSSGP on SGSN side: ", exp_rx));</span><br><span>                 }</span><br><span>    }</span><br><span> }</span><br><span>@@ -1014,12 +1007,10 @@</span><br><span>             setverdict(fail, "BSSGP arrived on wrong PCU[", rx_idx, "] instead of PCU[", pcu_idx, "]");</span><br><span>            }</span><br><span>    [] G_PCU[pcu_idx].receive(PDU_BSSGP:?) -> value rx {</span><br><span style="color: hsl(0, 100%, 40%);">-         setverdict(fail, "Unexpected BSSGP on PCU side: ", rx);</span><br><span style="color: hsl(0, 100%, 40%);">-               mtc.stop;</span><br><span style="color: hsl(120, 100%, 40%);">+             f_shutdown(__FILE__, __LINE__, fail, log2str("Unexpected BSSGP on PCU side: ", rx));</span><br><span>               }</span><br><span>    [] T.timeout {</span><br><span style="color: hsl(0, 100%, 40%);">-          setverdict(fail, "Timeout waiting for BSSGP on PCU side: ", exp_rx);</span><br><span style="color: hsl(0, 100%, 40%);">-          mtc.stop;</span><br><span style="color: hsl(120, 100%, 40%);">+             f_shutdown(__FILE__, __LINE__, fail, log2str("Timeout waiting for BSSGP on PCU side: ", exp_rx));</span><br><span>          }</span><br><span>    }</span><br><span> }</span><br><span>@@ -1061,12 +1052,12 @@</span><br><span>             return rx_pdu.pDU_BSSGP_SUSPEND_ACK.suspend_Reference_Number.suspend_Reference_Number_value;</span><br><span>                 }</span><br><span>    [] PCU_SIG[ran_idx].receive(tr_BSSGP_SUSPEND_NACK(g_pars.tlli, bvcc.cell_id.ra_id, ?)) -> value rx_pdu {</span><br><span style="color: hsl(0, 100%, 40%);">-             setverdict(fail, "SUSPEND-NACK in response to SUSPEND for TLLI ", g_pars.tlli);</span><br><span style="color: hsl(0, 100%, 40%);">-               mtc.stop;</span><br><span style="color: hsl(120, 100%, 40%);">+             f_shutdown(__FILE__, __LINE__, fail,</span><br><span style="color: hsl(120, 100%, 40%);">+                          log2str("SUSPEND-NACK in response to SUSPEND for TLLI ", g_pars.tlli));</span><br><span>            }</span><br><span>    [] T.timeout {</span><br><span style="color: hsl(0, 100%, 40%);">-          setverdict(fail, "No SUSPEND-ACK in response to SUSPEND for TLLI ", g_pars.tlli);</span><br><span style="color: hsl(0, 100%, 40%);">-             mtc.stop;</span><br><span style="color: hsl(120, 100%, 40%);">+             f_shutdown(__FILE__, __LINE__, fail,</span><br><span style="color: hsl(120, 100%, 40%);">+                  log2str("No SUSPEND-ACK in response to SUSPEND for TLLI ", g_pars.tlli));</span><br><span>          }</span><br><span>    }</span><br><span>    return '00'O;</span><br><span>@@ -1080,12 +1071,12 @@</span><br><span>      alt {</span><br><span>        [] PCU_SIG[ran_idx].receive(tr_BSSGP_RESUME_ACK(g_pars.tlli, bvcc.cell_id.ra_id));</span><br><span>   [] PCU_SIG[ran_idx].receive(tr_BSSGP_RESUME_NACK(g_pars.tlli, bvcc.cell_id.ra_id, ?)) {</span><br><span style="color: hsl(0, 100%, 40%);">-         setverdict(fail, "RESUME-NACK in response to RESUME for TLLI ", g_pars.tlli);</span><br><span style="color: hsl(0, 100%, 40%);">-         mtc.stop;</span><br><span style="color: hsl(120, 100%, 40%);">+             f_shutdown(__FILE__, __LINE__, fail,</span><br><span style="color: hsl(120, 100%, 40%);">+                  log2str("RESUME-NACK in response to RESUME for TLLI ", g_pars.tlli));</span><br><span>              }</span><br><span>    [] T.timeout {</span><br><span style="color: hsl(0, 100%, 40%);">-          setverdict(fail, "No RESUME-ACK in response to SUSPEND for TLLI ", g_pars.tlli);</span><br><span style="color: hsl(0, 100%, 40%);">-              mtc.stop;</span><br><span style="color: hsl(120, 100%, 40%);">+             f_shutdown(__FILE__, __LINE__, fail,</span><br><span style="color: hsl(120, 100%, 40%);">+                  log2str("No RESUME-ACK in response to SUSPEND for TLLI ", g_pars.tlli));</span><br><span>           }</span><br><span>    }</span><br><span> }</span><br><span>@@ -1399,8 +1390,7 @@</span><br><span>       [] NS.receive(NsUnitdataIndication:{0,?,?,*,*}) { repeat; } /* signaling BVC */</span><br><span>      [] NS.receive(NsStatusIndication:?) { repeat; }</span><br><span>      [] NS.receive {</span><br><span style="color: hsl(0, 100%, 40%);">-         setverdict(fail, "Rx unexpected NS");</span><br><span style="color: hsl(0, 100%, 40%);">-         mtc.stop;</span><br><span style="color: hsl(120, 100%, 40%);">+             f_shutdown(__FILE__, __LINE__, fail, "Rx unexpected NS");</span><br><span>          }</span><br><span>    [] T.timeout {</span><br><span>               }</span><br><span>@@ -2828,12 +2818,11 @@</span><br><span>          setverdict(pass);</span><br><span>            }</span><br><span>    [] any from RIM_SGSN.receive(PDU_BSSGP:?) -> value rx {</span><br><span style="color: hsl(0, 100%, 40%);">-              setverdict(fail, "Unexpected BSSGP on SGSN side: ", rx);</span><br><span style="color: hsl(0, 100%, 40%);">-              mtc.stop;</span><br><span style="color: hsl(120, 100%, 40%);">+             f_shutdown(__FILE__, __LINE__, fail, log2str("Unexpected BSSGP on SGSN side: ", rx));</span><br><span>              }</span><br><span>    [] T.timeout {</span><br><span style="color: hsl(0, 100%, 40%);">-          setverdict(fail, "Timeout waiting for BSSGP on SGSN side: ", exp_rx);</span><br><span style="color: hsl(0, 100%, 40%);">-         mtc.stop;</span><br><span style="color: hsl(120, 100%, 40%);">+             f_shutdown(__FILE__, __LINE__, fail,</span><br><span style="color: hsl(120, 100%, 40%);">+                  log2str("Timeout waiting for BSSGP on SGSN side: ", exp_rx));</span><br><span>              }</span><br><span>    }</span><br><span> }</span><br><span>@@ -2851,12 +2840,11 @@</span><br><span>             setverdict(pass);</span><br><span>            }</span><br><span>    [] RIM_PCU[pcu_idx].receive(PDU_BSSGP:?) -> value rx {</span><br><span style="color: hsl(0, 100%, 40%);">-               setverdict(fail, "Unexpected BSSGP on PCU side: ", rx);</span><br><span style="color: hsl(0, 100%, 40%);">-               mtc.stop;</span><br><span style="color: hsl(120, 100%, 40%);">+             f_shutdown(__FILE__, __LINE__, fail, log2str("Unexpected BSSGP on PCU side: ", rx));</span><br><span>               }</span><br><span>    [] T.timeout {</span><br><span style="color: hsl(0, 100%, 40%);">-          setverdict(fail, "Timeout waiting for BSSGP on PCU side: ", exp_rx);</span><br><span style="color: hsl(0, 100%, 40%);">-          mtc.stop;</span><br><span style="color: hsl(120, 100%, 40%);">+             f_shutdown(__FILE__, __LINE__, fail,</span><br><span style="color: hsl(120, 100%, 40%);">+                  log2str("Timeout waiting for BSSGP on PCU side: ", exp_rx));</span><br><span>               }</span><br><span>    }</span><br><span> }</span><br><span>@@ -2881,12 +2869,11 @@</span><br><span>             setverdict(fail, "Received RIM on SGSN but expected it on other PCU");</span><br><span>             }</span><br><span>    [] any from RIM_SGSN.receive(PDU_BSSGP:?) -> value rx {</span><br><span style="color: hsl(0, 100%, 40%);">-              setverdict(fail, "Unexpected BSSGP on SGSN side: ", rx);</span><br><span style="color: hsl(0, 100%, 40%);">-              mtc.stop;</span><br><span style="color: hsl(120, 100%, 40%);">+             f_shutdown(__FILE__, __LINE__, fail, log2str("Unexpected BSSGP on SGSN side: ", rx));</span><br><span>              }</span><br><span>    [] T.timeout {</span><br><span style="color: hsl(0, 100%, 40%);">-          setverdict(fail, "Timeout waiting for BSSGP on SGSN side: ", exp_rx);</span><br><span style="color: hsl(0, 100%, 40%);">-         mtc.stop;</span><br><span style="color: hsl(120, 100%, 40%);">+             f_shutdown(__FILE__, __LINE__, fail,</span><br><span style="color: hsl(120, 100%, 40%);">+                  log2str("Timeout waiting for BSSGP on SGSN side: ", exp_rx));</span><br><span>              }</span><br><span>    }</span><br><span> }</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22459">change 22459</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/+/22459"/><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: I4fdd47e9c5887597dca89580f856ddc6cd8f54f1 </div>
<div style="display:none"> Gerrit-Change-Number: 22459 </div>
<div style="display:none"> Gerrit-PatchSet: 2 </div>
<div style="display:none"> Gerrit-Owner: laforge <laforge@osmocom.org> </div>
<div style="display:none"> Gerrit-Reviewer: Jenkins Builder </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>