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

</div><pre style="font-family: monospace,monospace; white-space: pre-wrap;">sgsn: Proper shutdown of RAN_Adapter components<br><br>Otherwise TTCN3 errors sproadically during shutdown:<br>""""<br>SCCP_Emulation.ttcn:5661 Receive operation on port SCCP_SP_PORT succeeded, message from SGSN_Test_0-RAN(414)<br>...<br>SCCP_Emulation.ttcn:5293 Sent on MTP3_SCCP_PORT to SGSN_Test_0-M3UA(415) @SCCP_Types.ASP_MTP3_TRANSFERreq_sccp<br>SCCP_Emulation.ttcn:5293 Outgoing message was mapped to @MTP3asp_Types.ASP_MTP3_TRANSFERreq<br>SCCP_Emulation.ttcn:5293 Dynamic test case error: Sending data on the connection of port MTP3_SCCP_PORT to 415:MTP3_SP_PORT failed. (Broken pipe)<br>SCCP_Emulation.ttcn:5293 setverdict(error): none -> error<br>"""<br><br>Similar shutdown is already done in f_cleanup() of SCCP_Tests.ttcn.<br><br>Related: OS#4176<br>Change-Id: I471eb851e5d41de5d8d974ec81be27024d7d313a<br>---<br>M library/RAN_Adapter.ttcnpp<br>M sgsn/SGSN_Tests.ttcn<br>2 files changed, 88 insertions(+), 0 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/library/RAN_Adapter.ttcnpp b/library/RAN_Adapter.ttcnpp</span><br><span>index e995e8d..f84fd34 100644</span><br><span>--- a/library/RAN_Adapter.ttcnpp</span><br><span>+++ b/library/RAN_Adapter.ttcnpp</span><br><span>@@ -47,6 +47,7 @@</span><br><span>      MSC_SCCP_MTP3_parameters sccp_pars,</span><br><span>  SCCP_PAR_Address sccp_addr_own,</span><br><span>      SCCP_PAR_Address sccp_addr_peer,</span><br><span style="color: hsl(120, 100%, 40%);">+      RAN_Transport transport,</span><br><span> </span><br><span>         /* handler mode */</span><br><span>   RAN_Emulation_CT vc_RAN</span><br><span>@@ -79,6 +80,7 @@</span><br><span>  };</span><br><span>   ba.sccp_addr_own := valueof(ts_SccpAddr_PC_SSN(cfg.own_pc, cfg.own_ssn, cfg.sio, cfg.sccp_service_type));</span><br><span>    ba.sccp_addr_peer := valueof(ts_SccpAddr_PC_SSN(cfg.peer_pc, cfg.peer_ssn, cfg.sio, cfg.sccp_service_type));</span><br><span style="color: hsl(120, 100%, 40%);">+  ba.transport := cfg.transport;</span><br><span> }</span><br><span> </span><br><span> </span><br><span>@@ -92,6 +94,8 @@</span><br><span>      ba.vc_SCCP := SCCP_CT.create(id & "-SCCP");</span><br><span>    if (isvalue(ops)) {</span><br><span>          ba.vc_RAN := RAN_Emulation_CT.create(id & "-RAN");</span><br><span style="color: hsl(120, 100%, 40%);">+      } else {</span><br><span style="color: hsl(120, 100%, 40%);">+              ba.vc_RAN := null;</span><br><span>   }</span><br><span>    select (cfg.transport) {</span><br><span>     case (BSSAP_TRANSPORT_AoIP, RANAP_TRANSPORT_IuCS) {</span><br><span>@@ -186,5 +190,27 @@</span><br><span>   ba.vc_SCCP.start(SCCPStart(ba.sccp_pars));</span><br><span> }</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+function f_ran_adapter_cleanup(inout RAN_Adapter ba) {</span><br><span style="color: hsl(120, 100%, 40%);">+   if (ba.vc_RAN != null) {</span><br><span style="color: hsl(120, 100%, 40%);">+              if (ba.transport == RANAP_TRANSPORT_IuCS) {</span><br><span style="color: hsl(120, 100%, 40%);">+#ifdef RAN_EMULATION_RANAP</span><br><span style="color: hsl(120, 100%, 40%);">+                       disconnect(ba.vc_RAN:RANAP, ba.vc_SCCP:SCCP_SP_PORT);</span><br><span style="color: hsl(120, 100%, 40%);">+#endif</span><br><span style="color: hsl(120, 100%, 40%);">+         } else {</span><br><span style="color: hsl(120, 100%, 40%);">+#ifdef RAN_EMULATION_BSSAP</span><br><span style="color: hsl(120, 100%, 40%);">+                  disconnect(ba.vc_RAN:BSSAP, ba.vc_SCCP:SCCP_SP_PORT);</span><br><span style="color: hsl(120, 100%, 40%);">+#endif</span><br><span style="color: hsl(120, 100%, 40%);">+         }</span><br><span style="color: hsl(120, 100%, 40%);">+             ba.vc_RAN.stop;</span><br><span style="color: hsl(120, 100%, 40%);">+       }</span><br><span style="color: hsl(120, 100%, 40%);">+     if (ba.transport == BSSAP_TRANSPORT_AoIP or</span><br><span style="color: hsl(120, 100%, 40%);">+       ba.transport == RANAP_TRANSPORT_IuCS) {</span><br><span style="color: hsl(120, 100%, 40%);">+           unmap(ba.vc_M3UA:SCTP_PORT, system:sctp);</span><br><span style="color: hsl(120, 100%, 40%);">+             disconnect(ba.vc_M3UA:MTP3_SP_PORT, ba.vc_SCCP:MTP3_SCCP_PORT);</span><br><span style="color: hsl(120, 100%, 40%);">+               ba.vc_M3UA.stop;</span><br><span style="color: hsl(120, 100%, 40%);">+      }</span><br><span style="color: hsl(120, 100%, 40%);">+     ba.vc_SCCP.stop;</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> </span><br><span> }</span><br><span>diff --git a/sgsn/SGSN_Tests.ttcn b/sgsn/SGSN_Tests.ttcn</span><br><span>index b68df85..c9309dd 100644</span><br><span>--- a/sgsn/SGSN_Tests.ttcn</span><br><span>+++ b/sgsn/SGSN_Tests.ttcn</span><br><span>@@ -332,6 +332,14 @@</span><br><span>   f_vty_enable_echo_interval(g_use_echo);</span><br><span> }</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+function f_cleanup() runs on test_CT {</span><br><span style="color: hsl(120, 100%, 40%);">+      var integer i;</span><br><span style="color: hsl(120, 100%, 40%);">+        for (i := 0; i < NUM_RNC; i := i+1) {</span><br><span style="color: hsl(120, 100%, 40%);">+              f_ran_adapter_cleanup(g_ranap[i]);</span><br><span style="color: hsl(120, 100%, 40%);">+    }</span><br><span style="color: hsl(120, 100%, 40%);">+     self.stop;</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> private function RncUnitdataCallback(RANAP_PDU ranap)</span><br><span> runs on RAN_Emulation_CT return template RANAP_PDU {</span><br><span>     var template RANAP_PDU resp := omit;</span><br><span>@@ -458,6 +466,7 @@</span><br><span> testcase TC_wait_ns_up() runs on test_CT {</span><br><span>     f_init();</span><br><span>    f_sleep(20.0);</span><br><span style="color: hsl(120, 100%, 40%);">+        f_cleanup();</span><br><span> }</span><br><span> </span><br><span> function f_send_llc(template (value) PDU_LLC llc_pdu, integer gb_index := 0) runs on BSSGP_ConnHdlr {</span><br><span>@@ -688,6 +697,7 @@</span><br><span>         f_sleep(1.0);</span><br><span>        vc_conn := f_start_handler(refers(f_TC_attach), testcasename(), g_gb, 1);</span><br><span>    vc_conn.done;</span><br><span style="color: hsl(120, 100%, 40%);">+ f_cleanup();</span><br><span> }</span><br><span> </span><br><span> testcase TC_attach_mnc3() runs on test_CT {</span><br><span>@@ -696,6 +706,7 @@</span><br><span>   f_sleep(1.0);</span><br><span>        vc_conn := f_start_handler(refers(f_TC_attach), testcasename(), g_gb, 1001);</span><br><span>         vc_conn.done;</span><br><span style="color: hsl(120, 100%, 40%);">+ f_cleanup();</span><br><span> }</span><br><span> </span><br><span> private function f_TC_attach_umts_aka_umts_res(charstring id) runs on BSSGP_ConnHdlr {</span><br><span>@@ -708,6 +719,7 @@</span><br><span>        f_sleep(1.0);</span><br><span>        vc_conn := f_start_handler(refers(f_TC_attach_umts_aka_umts_res), testcasename(), g_gb, 1002);</span><br><span>       vc_conn.done;</span><br><span style="color: hsl(120, 100%, 40%);">+ f_cleanup();</span><br><span> }</span><br><span> </span><br><span> private function f_TC_attach_umts_aka_gsm_sres(charstring id) runs on BSSGP_ConnHdlr {</span><br><span>@@ -720,6 +732,7 @@</span><br><span>        f_sleep(1.0);</span><br><span>        vc_conn := f_start_handler(refers(f_TC_attach_umts_aka_gsm_sres), testcasename(), g_gb, 1003);</span><br><span>       vc_conn.done;</span><br><span style="color: hsl(120, 100%, 40%);">+ f_cleanup();</span><br><span> }</span><br><span> </span><br><span> /* MS never responds to ID REQ, expect ATTACH REJECT */</span><br><span>@@ -746,6 +759,7 @@</span><br><span>       f_init();</span><br><span>    vc_conn := f_start_handler(refers(f_TC_attach_auth_id_timeout), testcasename(), g_gb, 2, 40.0);</span><br><span>      vc_conn.done;</span><br><span style="color: hsl(120, 100%, 40%);">+ f_cleanup();</span><br><span> }</span><br><span> </span><br><span> /* HLR never responds to SAI REQ, expect ATTACH REJECT */</span><br><span>@@ -766,6 +780,7 @@</span><br><span>     f_init();</span><br><span>    vc_conn := f_start_handler(refers(f_TC_attach_auth_sai_timeout), testcasename(), g_gb, 3);</span><br><span>   vc_conn.done;</span><br><span style="color: hsl(120, 100%, 40%);">+ f_cleanup();</span><br><span> }</span><br><span> </span><br><span> /* HLR rejects SAI, expect ATTACH REJECT */</span><br><span>@@ -787,6 +802,7 @@</span><br><span>   f_init();</span><br><span>    vc_conn := f_start_handler(refers(f_TC_attach_auth_sai_reject), testcasename(), g_gb, 4);</span><br><span>    vc_conn.done;</span><br><span style="color: hsl(120, 100%, 40%);">+ f_cleanup();</span><br><span> }</span><br><span> </span><br><span> /* HLR never responds to UL REQ, expect ATTACH REJECT */</span><br><span>@@ -816,6 +832,7 @@</span><br><span>      f_sleep(1.0);</span><br><span>        vc_conn := f_start_handler(refers(f_TC_attach_gsup_lu_timeout), testcasename(), g_gb, 5);</span><br><span>    vc_conn.done;</span><br><span style="color: hsl(120, 100%, 40%);">+ f_cleanup();</span><br><span> }</span><br><span> </span><br><span> /* HLR rejects UL REQ, expect ATTACH REJECT */</span><br><span>@@ -846,6 +863,7 @@</span><br><span>        f_sleep(1.0);</span><br><span>        vc_conn := f_start_handler(refers(f_TC_attach_gsup_lu_reject), testcasename(), g_gb, 6);</span><br><span>     vc_conn.done;</span><br><span style="color: hsl(120, 100%, 40%);">+ f_cleanup();</span><br><span> }</span><br><span> </span><br><span> </span><br><span>@@ -871,6 +889,7 @@</span><br><span>      f_sleep(1.0);</span><br><span>        vc_conn := f_start_handler(refers(f_TC_attach_combined), testcasename(), g_gb, 7);</span><br><span>   vc_conn.done;</span><br><span style="color: hsl(120, 100%, 40%);">+ f_cleanup();</span><br><span> }</span><br><span> </span><br><span> /* Attempt of GPRS ATTACH in 'accept all' mode */</span><br><span>@@ -895,6 +914,7 @@</span><br><span>     f_vty_config(SGSNVTY, "sgsn", "auth-policy accept-all");</span><br><span>         vc_conn := f_start_handler(refers(f_TC_attach_accept_all), testcasename(), g_gb, 8);</span><br><span>         vc_conn.done;</span><br><span style="color: hsl(120, 100%, 40%);">+ f_cleanup();</span><br><span> }</span><br><span> </span><br><span> /* Attempt of GPRS ATTACH in 'accept all' mode */</span><br><span>@@ -933,6 +953,7 @@</span><br><span>     /* test with home IMSI: Must Accept */</span><br><span>       vc_conn := f_start_handler(refers(f_TC_attach_accept_all), testcasename(), g_gb, 10);</span><br><span>        vc_conn.done;</span><br><span style="color: hsl(120, 100%, 40%);">+ f_cleanup();</span><br><span> }</span><br><span> </span><br><span> /* Routing Area Update from Unknown TLLI -> REJECT */</span><br><span>@@ -954,6 +975,7 @@</span><br><span>      f_sleep(1.0);</span><br><span>        vc_conn := f_start_handler(refers(f_TC_rau_unknown), testcasename(), g_gb, 11);</span><br><span>      vc_conn.done;</span><br><span style="color: hsl(120, 100%, 40%);">+ f_cleanup();</span><br><span> }</span><br><span> </span><br><span> private function f_TC_attach_rau(charstring id) runs on BSSGP_ConnHdlr {</span><br><span>@@ -969,6 +991,7 @@</span><br><span>      f_sleep(1.0);</span><br><span>        vc_conn := f_start_handler(refers(f_TC_attach_rau), testcasename(), g_gb, 12);</span><br><span>       vc_conn.done;</span><br><span style="color: hsl(120, 100%, 40%);">+ f_cleanup();</span><br><span> }</span><br><span> </span><br><span> /* general GPRS DETACH helper */</span><br><span>@@ -1022,6 +1045,7 @@</span><br><span>    f_sleep(1.0);</span><br><span>        vc_conn := f_start_handler(refers(f_TC_detach_unknown_nopoweroff), testcasename(), g_gb, 13);</span><br><span>        vc_conn.done;</span><br><span style="color: hsl(120, 100%, 40%);">+ f_cleanup();</span><br><span> }</span><br><span> </span><br><span> /* IMSI DETACH (power-off) for unknown TLLI */</span><br><span>@@ -1034,6 +1058,7 @@</span><br><span>      f_sleep(1.0);</span><br><span>        vc_conn := f_start_handler(refers(f_TC_detach_unknown_poweroff), testcasename(), g_gb, 14);</span><br><span>  vc_conn.done;</span><br><span style="color: hsl(120, 100%, 40%);">+ f_cleanup();</span><br><span> }</span><br><span> </span><br><span> /* IMSI DETACH (non-power-off) for known TLLI */</span><br><span>@@ -1049,6 +1074,7 @@</span><br><span>    f_sleep(1.0);</span><br><span>        vc_conn := f_start_handler(refers(f_TC_detach_nopoweroff), testcasename(), g_gb, 15);</span><br><span>        vc_conn.done;</span><br><span style="color: hsl(120, 100%, 40%);">+ f_cleanup();</span><br><span> }</span><br><span> </span><br><span> /* IMSI DETACH (power-off) for known TLLI */</span><br><span>@@ -1064,6 +1090,7 @@</span><br><span>        f_sleep(1.0);</span><br><span>        vc_conn := f_start_handler(refers(f_TC_detach_poweroff), testcasename(), g_gb, 16);</span><br><span>  vc_conn.done;</span><br><span style="color: hsl(120, 100%, 40%);">+ f_cleanup();</span><br><span> }</span><br><span> </span><br><span> type record PdpActPars {</span><br><span>@@ -1364,6 +1391,7 @@</span><br><span>    f_init();</span><br><span>    vc_conn := f_start_handler(refers(f_TC_attach_pdp_act), testcasename(), g_gb, 17);</span><br><span>   vc_conn.done;</span><br><span style="color: hsl(120, 100%, 40%);">+ f_cleanup();</span><br><span> }</span><br><span> </span><br><span> /* PDP Context activation for not-attached subscriber; expect fail */</span><br><span>@@ -1392,6 +1420,7 @@</span><br><span>       f_init();</span><br><span>    vc_conn := f_start_handler(refers(f_TC_pdp_act_unattached), testcasename(), g_gb, 18);</span><br><span>       vc_conn.done;</span><br><span style="color: hsl(120, 100%, 40%);">+ f_cleanup();</span><br><span> }</span><br><span> </span><br><span> /* ATTACH + PDP CTX ACT + user plane traffic */</span><br><span>@@ -1411,6 +1440,7 @@</span><br><span>     f_init();</span><br><span>    vc_conn := f_start_handler(refers(f_TC_attach_pdp_act_user), testcasename(), g_gb, 19);</span><br><span>      vc_conn.done;</span><br><span style="color: hsl(120, 100%, 40%);">+ f_cleanup();</span><br><span> }</span><br><span> </span><br><span> /* ATTACH + PDP CTX ACT; reject from GGSN */</span><br><span>@@ -1430,6 +1460,7 @@</span><br><span>        f_init();</span><br><span>    vc_conn := f_start_handler(refers(f_TC_attach_pdp_act_ggsn_reject), testcasename(), g_gb, 20);</span><br><span>       vc_conn.done;</span><br><span style="color: hsl(120, 100%, 40%);">+ f_cleanup();</span><br><span> }</span><br><span> </span><br><span> /* ATTACH + PDP CTX ACT + user plane traffic + PDP CTX DEACT in MO direction */</span><br><span>@@ -1451,6 +1482,7 @@</span><br><span>     f_init();</span><br><span>    vc_conn := f_start_handler(refers(f_TC_attach_pdp_act_user_deact_mo), testcasename(), g_gb, 21);</span><br><span>     vc_conn.done;</span><br><span style="color: hsl(120, 100%, 40%);">+ f_cleanup();</span><br><span> }</span><br><span> </span><br><span> /* ATTACH + PDP CTX ACT + user plane traffic + PDP CTX DEACT in MT direction */</span><br><span>@@ -1472,6 +1504,7 @@</span><br><span>     f_init();</span><br><span>    vc_conn := f_start_handler(refers(f_TC_attach_pdp_act_user_deact_mt), testcasename(), g_gb, 22);</span><br><span>     vc_conn.done;</span><br><span style="color: hsl(120, 100%, 40%);">+ f_cleanup();</span><br><span> }</span><br><span> </span><br><span> /* Test MS sending a duplicate Deact PDP Ctx (OS#3956). */</span><br><span>@@ -1522,6 +1555,7 @@</span><br><span>  f_init();</span><br><span>    vc_conn := f_start_handler(refers(f_TC_attach_pdp_act_deact_dup), testcasename(), g_gb, 46);</span><br><span>         vc_conn.done;</span><br><span style="color: hsl(120, 100%, 40%);">+ f_cleanup();</span><br><span> }</span><br><span> </span><br><span> /* ATTACH + ATTACH (2nd) */</span><br><span>@@ -1541,6 +1575,7 @@</span><br><span>         f_init();</span><br><span>    vc_conn := f_start_handler(refers(f_TC_attach_forget_tlli_attach), testcasename(), g_gb, 22);</span><br><span>        vc_conn.done;</span><br><span style="color: hsl(120, 100%, 40%);">+ f_cleanup();</span><br><span> }</span><br><span> </span><br><span> private function f_TC_attach_echo_timeout(charstring id) runs on BSSGP_ConnHdlr {</span><br><span>@@ -1600,6 +1635,7 @@</span><br><span>   vc_conn := f_start_handler(refers(f_TC_attach_echo_timeout), testcasename(), g_gb, 67, 50.0);</span><br><span>        vc_conn.done;</span><br><span>        g_use_echo := false;</span><br><span style="color: hsl(120, 100%, 40%);">+  f_cleanup();</span><br><span> }</span><br><span> </span><br><span> private function f_TC_attach_restart_ctr_echo(charstring id) runs on BSSGP_ConnHdlr {</span><br><span>@@ -1641,6 +1677,7 @@</span><br><span>       vc_conn := f_start_handler(refers(f_TC_attach_restart_ctr_echo), testcasename(), g_gb, 23, 30.0);</span><br><span>    vc_conn.done;</span><br><span>        g_use_echo := false</span><br><span style="color: hsl(120, 100%, 40%);">+   f_cleanup();</span><br><span> }</span><br><span> </span><br><span> private function f_TC_attach_restart_ctr_create(charstring id) runs on BSSGP_ConnHdlr {</span><br><span>@@ -1680,6 +1717,7 @@</span><br><span>     f_init();</span><br><span>    vc_conn := f_start_handler(refers(f_TC_attach_restart_ctr_create), testcasename(), g_gb, 24, 30.0);</span><br><span>  vc_conn.done;</span><br><span style="color: hsl(120, 100%, 40%);">+ f_cleanup();</span><br><span> }</span><br><span> </span><br><span> /* ATTACH + PDP CTX ACT + user plane traffic + PDP CTX DEACT in MT direction + trigger T3395 */</span><br><span>@@ -1716,6 +1754,7 @@</span><br><span>     f_sleep(1.0);</span><br><span>        vc_conn := f_start_handler(refers(f_TC_attach_pdp_act_deact_mt_t3395_expire), testcasename(), g_gb, 25, 60.0);</span><br><span>       vc_conn.done;</span><br><span style="color: hsl(120, 100%, 40%);">+ f_cleanup();</span><br><span> }</span><br><span> </span><br><span> /* ATTACH + PDP CTX ACT dropped + retrans */</span><br><span>@@ -1774,6 +1813,7 @@</span><br><span>        f_init();</span><br><span>    vc_conn := f_start_handler(refers(f_TC_attach_pdp_act_deact_gtp_retrans), testcasename(), g_gb, 27);</span><br><span>         vc_conn.done;</span><br><span style="color: hsl(120, 100%, 40%);">+ f_cleanup();</span><br><span> }</span><br><span> </span><br><span> /* Test that SGSN GTP response retransmit queue works fine */</span><br><span>@@ -1833,6 +1873,7 @@</span><br><span>       f_init();</span><br><span>    vc_conn := f_start_handler(refers(f_TC_attach_pdp_act_deact_gtp_retrans_resp), testcasename(), g_gb, 28);</span><br><span>    vc_conn.done;</span><br><span style="color: hsl(120, 100%, 40%);">+ f_cleanup();</span><br><span> }</span><br><span> </span><br><span> private function f_TC_hlr_location_cancel_request_update(charstring id) runs on BSSGP_ConnHdlr {</span><br><span>@@ -1881,6 +1922,7 @@</span><br><span>    f_init();</span><br><span>    vc_conn := f_start_handler(refers(f_TC_attach_pdp_act_user_error_ind_ggsn), testcasename(), g_gb, 26);</span><br><span>       vc_conn.done;</span><br><span style="color: hsl(120, 100%, 40%);">+ f_cleanup();</span><br><span> }</span><br><span> </span><br><span> testcase TC_hlr_location_cancel_request_update() runs on test_CT {</span><br><span>@@ -1893,6 +1935,7 @@</span><br><span>  f_sleep(1.0);</span><br><span>        vc_conn := f_start_handler(refers(f_TC_hlr_location_cancel_request_update), testcasename(), g_gb, 31);</span><br><span>       vc_conn.done;</span><br><span style="color: hsl(120, 100%, 40%);">+ f_cleanup();</span><br><span> }</span><br><span> </span><br><span> </span><br><span>@@ -1924,6 +1967,7 @@</span><br><span>    f_sleep(1.0);</span><br><span>        vc_conn := f_start_handler(refers(f_TC_hlr_location_cancel_request_withdraw), testcasename(), g_gb, 29);</span><br><span>     vc_conn.done;</span><br><span style="color: hsl(120, 100%, 40%);">+ f_cleanup();</span><br><span> }</span><br><span> </span><br><span> </span><br><span>@@ -1954,6 +1998,7 @@</span><br><span>    f_sleep(1.0);</span><br><span>        vc_conn := f_start_handler(refers(f_TC_hlr_location_cancel_request_unknown_subscriber_withdraw), testcasename(), g_gb, 30);</span><br><span>  vc_conn.done;</span><br><span style="color: hsl(120, 100%, 40%);">+ f_cleanup();</span><br><span> }</span><br><span> </span><br><span> private function f_TC_hlr_location_cancel_request_unknown_subscriber_update(charstring id) runs on BSSGP_ConnHdlr {</span><br><span>@@ -1970,6 +2015,7 @@</span><br><span>         f_sleep(1.0);</span><br><span>        vc_conn := f_start_handler(refers(f_TC_hlr_location_cancel_request_unknown_subscriber_update), testcasename(), g_gb, 30);</span><br><span>    vc_conn.done;</span><br><span style="color: hsl(120, 100%, 40%);">+ f_cleanup();</span><br><span> }</span><br><span> </span><br><span> private function f_TC_attach_detach_check_subscriber_list(charstring id) runs on BSSGP_ConnHdlr {</span><br><span>@@ -1991,6 +2037,7 @@</span><br><span>   vc_conn.done;</span><br><span> </span><br><span>    f_vty_transceive_not_match(SGSNVTY, "show subscriber cache", pattern "* IMSI: {imsi}*");</span><br><span style="color: hsl(120, 100%, 40%);">+  f_cleanup();</span><br><span> }</span><br><span> </span><br><span> /* Attempt an attach, but loose the Identification Request (IMEI) */</span><br><span>@@ -2036,6 +2083,7 @@</span><br><span>        f_sleep(1.0);</span><br><span>        vc_conn := f_start_handler(refers(f_TC_attach_no_imei_response), testcasename(), g_gb, 32, 60.0);</span><br><span>    vc_conn.done;</span><br><span style="color: hsl(120, 100%, 40%);">+ f_cleanup();</span><br><span> }</span><br><span> </span><br><span> /* Attempt an attach, but loose the Identification Request (IMSI) */</span><br><span>@@ -2084,6 +2132,7 @@</span><br><span>        f_sleep(1.0);</span><br><span>        vc_conn := f_start_handler(refers(f_TC_attach_no_imsi_response), testcasename(), g_gb, 35, 60.0);</span><br><span>    vc_conn.done;</span><br><span style="color: hsl(120, 100%, 40%);">+ f_cleanup();</span><br><span> }</span><br><span> </span><br><span> private function f_sgsn_vty_destroy_subscriber_imsi(TELNETasp_PT pt, charstring imsi) {</span><br><span>@@ -2105,6 +2154,7 @@</span><br><span> </span><br><span>         f_vty_transceive_match(SGSNVTY, "show subscriber cache", pattern "* IMSI: {imsi}*");</span><br><span>     f_sgsn_vty_destroy_subscriber_imsi(SGSNVTY, imsi);</span><br><span style="color: hsl(120, 100%, 40%);">+    f_cleanup();</span><br><span> }</span><br><span> </span><br><span> private function f_TC_attach_closed_imsi_added(charstring id) runs on BSSGP_ConnHdlr {</span><br><span>@@ -2167,6 +2217,7 @@</span><br><span>      /* test with foreign IMSI: Must Reject */</span><br><span>    vc_conn := f_start_handler(refers(f_TC_attach_closed_add_vty), testcasename(), g_gb, 9);</span><br><span>     vc_conn.done;</span><br><span style="color: hsl(120, 100%, 40%);">+ f_cleanup();</span><br><span> }</span><br><span> </span><br><span> /* Attempt an attach, but never answer a Attach Complete */</span><br><span>@@ -2207,6 +2258,7 @@</span><br><span>         f_sleep(1.0);</span><br><span>        vc_conn := f_start_handler(refers(f_TC_attach_check_complete_resend), testcasename(), g_gb, 36, 60.0);</span><br><span>       vc_conn.done;</span><br><span style="color: hsl(120, 100%, 40%);">+ f_cleanup();</span><br><span> }</span><br><span> </span><br><span> private function f_routing_area_update(RoutingAreaIdentificationV ra, integer bssgp := 0) runs on BSSGP_ConnHdlr {</span><br><span>@@ -2254,6 +2306,7 @@</span><br><span>  f_sleep(1.0);</span><br><span>        vc_conn := f_start_handler(refers(f_TC_attach_rau_a_a), testcasename(), g_gb, 37);</span><br><span>   vc_conn.done;</span><br><span style="color: hsl(120, 100%, 40%);">+ f_cleanup();</span><br><span> }</span><br><span> </span><br><span> private function f_TC_attach_rau_a_b(charstring id) runs on BSSGP_ConnHdlr {</span><br><span>@@ -2285,6 +2338,7 @@</span><br><span>        f_sleep(1.0);</span><br><span>        vc_conn := f_start_handler(refers(f_TC_attach_rau_a_b), testcasename(), g_gb, 38);</span><br><span>   vc_conn.done;</span><br><span style="color: hsl(120, 100%, 40%);">+ f_cleanup();</span><br><span> }</span><br><span> </span><br><span> private function f_TC_attach_gmm_attach_req_while_gmm_attach(charstring id) runs on BSSGP_ConnHdlr {</span><br><span>@@ -2357,6 +2411,7 @@</span><br><span>        f_vty_config(SGSNVTY, "sgsn", "auth-policy accept-all");</span><br><span>         vc_conn := f_start_handler(refers(f_TC_attach_gmm_attach_req_while_gmm_attach), testcasename(), g_gb, 39);</span><br><span>   vc_conn.done;</span><br><span style="color: hsl(120, 100%, 40%);">+ f_cleanup();</span><br><span> }</span><br><span> </span><br><span> private function f_TC_attach_usim_resync(charstring id) runs on BSSGP_ConnHdlr {</span><br><span>@@ -2485,6 +2540,7 @@</span><br><span>    f_sleep(1.0);</span><br><span>        vc_conn := f_start_handler(refers(f_TC_attach_usim_resync), testcasename(), g_gb, 40);</span><br><span>       vc_conn.done;</span><br><span style="color: hsl(120, 100%, 40%);">+ f_cleanup();</span><br><span> }</span><br><span> </span><br><span> </span><br><span>@@ -2502,6 +2558,7 @@</span><br><span>    f_sleep(1.0);</span><br><span>        vc_conn := f_start_handler(refers(f_TC_llc_null), testcasename(), g_gb, 41);</span><br><span>         vc_conn.done;</span><br><span style="color: hsl(120, 100%, 40%);">+ f_cleanup();</span><br><span> }</span><br><span> </span><br><span> /* Send LLC SABM to see if the SGSN rejects it properly with DM */</span><br><span>@@ -2518,6 +2575,7 @@</span><br><span>  f_sleep(1.0);</span><br><span>        vc_conn := f_start_handler(refers(f_TC_llc_sabm_dm_llgmm), testcasename(), g_gb, 42);</span><br><span>        vc_conn.done;</span><br><span style="color: hsl(120, 100%, 40%);">+ f_cleanup();</span><br><span> }</span><br><span> </span><br><span> /* Send LLC SABM to see if the SGSN rejects it properly with DM */</span><br><span>@@ -2534,6 +2592,7 @@</span><br><span>  f_sleep(1.0);</span><br><span>        vc_conn := f_start_handler(refers(f_TC_llc_sabm_dm_ll5), testcasename(), g_gb, 43);</span><br><span>  vc_conn.done;</span><br><span style="color: hsl(120, 100%, 40%);">+ f_cleanup();</span><br><span> }</span><br><span> </span><br><span> /* test XID handshake with empty L3 info: expect empty return (some phones require that, OS#3426 */</span><br><span>@@ -2563,6 +2622,7 @@</span><br><span>         f_sleep(1.0);</span><br><span>        vc_conn := f_start_handler(refers(f_TC_xid_empty_l3), testcasename(), g_gb, 44);</span><br><span>     vc_conn.done;</span><br><span style="color: hsl(120, 100%, 40%);">+ f_cleanup();</span><br><span> }</span><br><span> </span><br><span> private function f_TC_xid_n201u(charstring id) runs on BSSGP_ConnHdlr {</span><br><span>@@ -2591,6 +2651,7 @@</span><br><span>     f_sleep(1.0);</span><br><span>        vc_conn := f_start_handler(refers(f_TC_xid_n201u), testcasename(), g_gb, 45);</span><br><span>        vc_conn.done;</span><br><span style="color: hsl(120, 100%, 40%);">+ f_cleanup();</span><br><span> }</span><br><span> </span><br><span> private function f_TC_attach_pdp_act_gmm_detach(charstring id) runs on BSSGP_ConnHdlr {</span><br><span>@@ -2617,6 +2678,7 @@</span><br><span>     f_init();</span><br><span>    vc_conn := f_start_handler(refers(f_TC_attach_pdp_act_gmm_detach), testcasename(), g_gb, 26);</span><br><span>        vc_conn.done;</span><br><span style="color: hsl(120, 100%, 40%);">+ f_cleanup();</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/+/15295">change 15295</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/+/15295"/><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: I471eb851e5d41de5d8d974ec81be27024d7d313a </div>
<div style="display:none"> Gerrit-Change-Number: 15295 </div>
<div style="display:none"> Gerrit-PatchSet: 4 </div>
<div style="display:none"> Gerrit-Owner: pespin <pespin@sysmocom.de> </div>
<div style="display:none"> Gerrit-Reviewer: Jenkins Builder </div>
<div style="display:none"> Gerrit-Reviewer: laforge <laforge@gnumonks.org> </div>
<div style="display:none"> Gerrit-Reviewer: neels <nhofmeyr@sysmocom.de> </div>
<div style="display:none"> Gerrit-Reviewer: pespin <pespin@sysmocom.de> </div>
<div style="display:none"> Gerrit-MessageType: merged </div>