<p>daniel has uploaded this change for <strong>review</strong>.</p><p><a href="https://gerrit.osmocom.org/9905">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">library: Ensure setverdict(fail is followed by mtc.stop<br><br>This will prevent subsequent failures from overwriting the verdict so we<br>can easily see the root cause of the test failure.<br><br>Change-Id: Idc6819aaf0b01e70c38fad828dd44dcec6bdd778<br>---<br>M library/BSSAP_Adapter.ttcn<br>M library/BSSGP_Emulation.ttcn<br>M library/BSSMAP_Emulation.ttcn<br>M library/GSM_Types.ttcn<br>M library/GSUP_Emulation.ttcn<br>M library/GTP_Emulation.ttcn<br>M library/GTP_Templates.ttcn<br>M library/IPA_Emulation.ttcnpp<br>M library/IuUP_Emulation.ttcn<br>M library/L1CTL_PortType.ttcn<br>M library/L3_Common.ttcn<br>M library/LAPDm_RAW_PT.ttcn<br>M library/MGCP_Emulation.ttcn<br>M library/MGCP_Templates.ttcn<br>M library/MNCC_Emulation.ttcn<br>M library/MNCC_Types.ttcn<br>M library/NS_Emulation.ttcn<br>M library/Osmocom_CTRL_Adapter.ttcn<br>M library/Osmocom_CTRL_Functions.ttcn<br>M library/Osmocom_Types.ttcn<br>M library/Osmocom_VTY_Functions.ttcn<br>M library/PCUIF_CodecPort.ttcn<br>M library/RSL_Emulation.ttcn<br>M library/RTP_Emulation.ttcn<br>M library/SIP_Emulation.ttcn<br>M library/SMPP_Emulation.ttcn<br>M library/TRXC_CodecPort.ttcn<br>27 files changed, 149 insertions(+), 147 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/05/9905/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/library/BSSAP_Adapter.ttcn b/library/BSSAP_Adapter.ttcn</span><br><span>index e50487d..b29d03f 100644</span><br><span>--- a/library/BSSAP_Adapter.ttcn</span><br><span>+++ b/library/BSSAP_Adapter.ttcn</span><br><span>@@ -144,7 +144,7 @@</span><br><span>              }</span><br><span>    case else {</span><br><span>          setverdict(fail, "Unsuppored BSSAP_Transport");</span><br><span style="color: hsl(0, 100%, 40%);">-               self.stop;</span><br><span style="color: hsl(120, 100%, 40%);">+            mtc.stop;</span><br><span>            }</span><br><span>    }</span><br><span> </span><br><span>diff --git a/library/BSSGP_Emulation.ttcn b/library/BSSGP_Emulation.ttcn</span><br><span>index f51d539..8b3b9eb 100644</span><br><span>--- a/library/BSSGP_Emulation.ttcn</span><br><span>+++ b/library/BSSGP_Emulation.ttcn</span><br><span>@@ -288,8 +288,7 @@</span><br><span>                     return;</span><br><span>              }</span><br><span>    }</span><br><span style="color: hsl(0, 100%, 40%);">-       setverdict(fail, "Client Table full");</span><br><span style="color: hsl(0, 100%, 40%);">-        self.stop;</span><br><span style="color: hsl(120, 100%, 40%);">+    testcase.stop("Client Table full");</span><br><span> }</span><br><span> </span><br><span> private function f_tbl_client_del(hexstring imsi, BSSGP_Client_CT vc_conn) runs on BSSGP_CT {</span><br><span>@@ -299,7 +298,7 @@</span><br><span>                        if (ClientTable[i].comp_ref != vc_conn) {</span><br><span>                            setverdict(fail, "Cannot unregister index=", i, " IMSI ", imsi, " registred to ",</span><br><span>                                         ClientTable[i].comp_ref, " from ", vc_conn);</span><br><span style="color: hsl(0, 100%, 40%);">-                               self.stop;</span><br><span style="color: hsl(120, 100%, 40%);">+                            mtc.stop;</span><br><span>                    }</span><br><span>                    log("Removing Client IMSI=", imsi, ", index=", i);</span><br><span>                       ClientTable[i] := {</span><br><span>@@ -313,7 +312,7 @@</span><br><span>            }</span><br><span>    }</span><br><span>    setverdict(fail, "Could not find client for IMSI ", imsi);</span><br><span style="color: hsl(0, 100%, 40%);">-    self.stop;</span><br><span style="color: hsl(120, 100%, 40%);">+    mtc.stop;</span><br><span> }</span><br><span> </span><br><span> /* TS 44.064 7.2.1.1 LLGMM-ASSIGN */</span><br><span>@@ -344,7 +343,7 @@</span><br><span>             }</span><br><span>    }</span><br><span>    setverdict(fail, "Couldn't find Component for IMSI ", imsi);</span><br><span style="color: hsl(0, 100%, 40%);">-      self.stop;</span><br><span style="color: hsl(120, 100%, 40%);">+    mtc.stop;</span><br><span> }</span><br><span> </span><br><span> private function f_tbl_comp_by_tlli(OCT4 tlli) runs on BSSGP_CT return BSSGP_Client_CT {</span><br><span>@@ -357,7 +356,7 @@</span><br><span>                 }</span><br><span>    }</span><br><span>    setverdict(fail, "Couldn't find Component for TLLI ", tlli);</span><br><span style="color: hsl(0, 100%, 40%);">-      self.stop;</span><br><span style="color: hsl(120, 100%, 40%);">+    mtc.stop;</span><br><span> }</span><br><span> </span><br><span> private function f_tbl_idx_by_comp(BSSGP_Client_CT comp_ref) runs on BSSGP_CT return integer {</span><br><span>@@ -368,7 +367,7 @@</span><br><span>           }</span><br><span>    }</span><br><span>    setverdict(fail, "Couldn't find Client for Component ", comp_ref);</span><br><span style="color: hsl(0, 100%, 40%);">-        self.stop;</span><br><span style="color: hsl(120, 100%, 40%);">+    mtc.stop;</span><br><span> }</span><br><span> </span><br><span> private function f_tbl_tlli_by_comp(BSSGP_Client_CT comp_ref) runs on BSSGP_CT return OCT4 {</span><br><span>@@ -380,7 +379,7 @@</span><br><span>             }</span><br><span>    }</span><br><span>    setverdict(fail, "Couldn't find TLLI for Component ", comp_ref);</span><br><span style="color: hsl(0, 100%, 40%);">-  self.stop;</span><br><span style="color: hsl(120, 100%, 40%);">+    mtc.stop;</span><br><span> }</span><br><span> </span><br><span> altstep as_allstate() runs on BSSGP_CT {</span><br><span>@@ -590,7 +589,7 @@</span><br><span>                 return c_LLC_SAPI_LLSMS;</span><br><span>     }</span><br><span>    setverdict(fail, "No LLC SAPI for ", l3_mo);</span><br><span style="color: hsl(0, 100%, 40%);">-  self.stop;</span><br><span style="color: hsl(120, 100%, 40%);">+    mtc.stop;</span><br><span> }</span><br><span> </span><br><span> private function f_llc_sapi_by_l3_mt(PDU_L3_SGSN_MS l3_mt) return BIT4 {</span><br><span>@@ -602,7 +601,7 @@</span><br><span>                 return c_LLC_SAPI_LLSMS;</span><br><span>     }</span><br><span>    setverdict(fail, "No LLC SAPI for ", l3_mt);</span><br><span style="color: hsl(0, 100%, 40%);">-  self.stop;</span><br><span style="color: hsl(120, 100%, 40%);">+    mtc.stop;</span><br><span> }</span><br><span> </span><br><span> </span><br><span>diff --git a/library/BSSMAP_Emulation.ttcn b/library/BSSMAP_Emulation.ttcn</span><br><span>index e65c550..921ac59 100644</span><br><span>--- a/library/BSSMAP_Emulation.ttcn</span><br><span>+++ b/library/BSSMAP_Emulation.ttcn</span><br><span>@@ -202,9 +202,8 @@</span><br><span>                        return ConnectionTable[i].comp_ref;</span><br><span>          }</span><br><span>    }</span><br><span style="color: hsl(0, 100%, 40%);">-       log("BSSMAP Connection table not found by SCCP Connection ID ", sccp_conn_id);</span><br><span style="color: hsl(0, 100%, 40%);">-        setverdict(fail);</span><br><span style="color: hsl(0, 100%, 40%);">-       self.stop;</span><br><span style="color: hsl(120, 100%, 40%);">+    setverdict(fail, "BSSMAP Connection table not found by SCCP Connection ID ", sccp_conn_id);</span><br><span style="color: hsl(120, 100%, 40%);">+ mtc.stop;</span><br><span> }</span><br><span> </span><br><span> /* resolve component reference by CIC */</span><br><span>@@ -216,9 +215,8 @@</span><br><span>                         return ConnectionTable[i].comp_ref;</span><br><span>          }</span><br><span>    }</span><br><span style="color: hsl(0, 100%, 40%);">-       log("BSSMAP Connection table not found by MGCP Transaction ID ", tid);</span><br><span style="color: hsl(0, 100%, 40%);">-        setverdict(fail);</span><br><span style="color: hsl(0, 100%, 40%);">-       self.stop;</span><br><span style="color: hsl(120, 100%, 40%);">+    setverdict(fail, "BSSMAP Connection table not found by MGCP Transaction ID ", tid);</span><br><span style="color: hsl(120, 100%, 40%);">+ mtc.stop;</span><br><span> }</span><br><span> </span><br><span> private function f_comp_store_mgcp_tid(BSSAP_ConnHdlr client, MgcpTransId tid)</span><br><span>@@ -230,9 +228,8 @@</span><br><span>                   return;</span><br><span>              }</span><br><span>    }</span><br><span style="color: hsl(0, 100%, 40%);">-       log("BSSMAP Connection table not found by component ", client);</span><br><span style="color: hsl(0, 100%, 40%);">-       setverdict(fail);</span><br><span style="color: hsl(0, 100%, 40%);">-       self.stop;</span><br><span style="color: hsl(120, 100%, 40%);">+    setverdict(fail, "BSSMAP Connection table not found by component ", client);</span><br><span style="color: hsl(120, 100%, 40%);">+        mtc.stop;</span><br><span> }</span><br><span> </span><br><span> private function f_comp_by_cic(integer cic)</span><br><span>@@ -243,9 +240,8 @@</span><br><span>                      return ConnectionTable[i].comp_ref;</span><br><span>          }</span><br><span>    }</span><br><span style="color: hsl(0, 100%, 40%);">-       log("BSSMAP Connection table not found by CIC ", cic);</span><br><span style="color: hsl(0, 100%, 40%);">-        setverdict(fail);</span><br><span style="color: hsl(0, 100%, 40%);">-       self.stop;</span><br><span style="color: hsl(120, 100%, 40%);">+    setverdict(fail, "BSSMAP Connection table not found by CIC ", cic);</span><br><span style="color: hsl(120, 100%, 40%);">+ mtc.stop;</span><br><span> }</span><br><span> </span><br><span> private function f_comp_store_cic(BSSAP_ConnHdlr client, integer cic)</span><br><span>@@ -257,8 +253,8 @@</span><br><span>                    return;</span><br><span>              }</span><br><span>    }</span><br><span style="color: hsl(0, 100%, 40%);">-       log("BSSMAP Connection table not found by component ", client);</span><br><span style="color: hsl(0, 100%, 40%);">-       setverdict(fail);</span><br><span style="color: hsl(120, 100%, 40%);">+     setverdict(fail, "BSSMAP Connection table not found by component ", client);</span><br><span style="color: hsl(120, 100%, 40%);">+        mtc.stop;</span><br><span> }</span><br><span> </span><br><span> /* resolve connection ID by component reference */</span><br><span>@@ -269,9 +265,8 @@</span><br><span>                       return ConnectionTable[i].sccp_conn_id;</span><br><span>              }</span><br><span>    }</span><br><span style="color: hsl(0, 100%, 40%);">-       log("BSSMAP Connection table not found by component ", client);</span><br><span style="color: hsl(0, 100%, 40%);">-       setverdict(fail);</span><br><span style="color: hsl(0, 100%, 40%);">-       self.stop;</span><br><span style="color: hsl(120, 100%, 40%);">+    setverdict(fail, "BSSMAP Connection table not found by component ", client);</span><br><span style="color: hsl(120, 100%, 40%);">+        mtc.stop;</span><br><span> }</span><br><span> </span><br><span> /* resolve ConnectionTable index component reference */</span><br><span>@@ -282,9 +277,8 @@</span><br><span>                  return i;</span><br><span>            }</span><br><span>    }</span><br><span style="color: hsl(0, 100%, 40%);">-       log("BSSMAP Connection table not found by component ", client);</span><br><span style="color: hsl(0, 100%, 40%);">-       setverdict(fail);</span><br><span style="color: hsl(0, 100%, 40%);">-       self.stop;</span><br><span style="color: hsl(120, 100%, 40%);">+    setverdict(fail, "BSSMAP Connection table not found by component ", client);</span><br><span style="color: hsl(120, 100%, 40%);">+        mtc.stop;</span><br><span> }</span><br><span> </span><br><span> private function f_gen_conn_id()</span><br><span>@@ -325,9 +319,7 @@</span><br><span>                         return;</span><br><span>              }</span><br><span>    }</span><br><span style="color: hsl(0, 100%, 40%);">-       log("BSSMAP Connection table full!");</span><br><span style="color: hsl(0, 100%, 40%);">- setverdict(fail);</span><br><span style="color: hsl(0, 100%, 40%);">-       self.stop;</span><br><span style="color: hsl(120, 100%, 40%);">+    testcase.stop("BSSMAP Connection table full!");</span><br><span> }</span><br><span> </span><br><span> private function f_conn_table_del(integer sccp_conn_id)</span><br><span>@@ -341,9 +333,8 @@</span><br><span>                  return</span><br><span>               }</span><br><span>    }</span><br><span style="color: hsl(0, 100%, 40%);">-       log("BSSMAP Connection table attempt to delete non-existant ", sccp_conn_id);</span><br><span style="color: hsl(0, 100%, 40%);">- setverdict(fail);</span><br><span style="color: hsl(0, 100%, 40%);">-       self.stop;</span><br><span style="color: hsl(120, 100%, 40%);">+    setverdict(fail, "BSSMAP Connection table attempt to delete non-existant ", sccp_conn_id);</span><br><span style="color: hsl(120, 100%, 40%);">+  mtc.stop;</span><br><span> }</span><br><span> </span><br><span> private function f_imsi_table_find(hexstring imsi, template OCT4 tmsi)</span><br><span>@@ -501,7 +492,8 @@</span><br><span>           repeat;</span><br><span>              }</span><br><span>    [] T.timeout {</span><br><span style="color: hsl(0, 100%, 40%);">-          setverdict(fail);</span><br><span style="color: hsl(120, 100%, 40%);">+             setverdict(fail, "Timeout waiting for BSSAP RESET");</span><br><span style="color: hsl(120, 100%, 40%);">+                mtc.stop;</span><br><span>            }</span><br><span>    }</span><br><span> }</span><br><span>@@ -517,7 +509,10 @@</span><br><span>                }</span><br><span>    [] as_reset_ack();</span><br><span>   [] BSSAP.receive { repeat };</span><br><span style="color: hsl(0, 100%, 40%);">-    [] T.timeout { setverdict(fail, "Waiting for RESET-ACK after sending RESET"); }</span><br><span style="color: hsl(120, 100%, 40%);">+     [] T.timeout {</span><br><span style="color: hsl(120, 100%, 40%);">+                setverdict(fail, "Timeout waiting for RESET-ACK after sending RESET");</span><br><span style="color: hsl(120, 100%, 40%);">+              mtc.stop;</span><br><span style="color: hsl(120, 100%, 40%);">+             }</span><br><span>    }</span><br><span> }</span><br><span> </span><br><span>@@ -763,6 +758,7 @@</span><br><span> </span><br><span>         if (not ischosen(conn_ind.userData.pdu.bssmap.completeLayer3Information)) {</span><br><span>          setverdict(fail, "N-CONNECT.ind with L3 != COMPLETE L3");</span><br><span style="color: hsl(120, 100%, 40%);">+           mtc.stop;</span><br><span>            return ret;</span><br><span>  }</span><br><span>    l3_info := conn_ind.userData.pdu.bssmap.completeLayer3Information.layer3Information.layer3info;</span><br><span>@@ -782,6 +778,7 @@</span><br><span>                }</span><br><span>    }</span><br><span>    setverdict(fail, "Couldn't find Expect for incoming connection ", conn_ind);</span><br><span style="color: hsl(120, 100%, 40%);">+    mtc.stop;</span><br><span>    return ret;</span><br><span> }</span><br><span> </span><br><span>@@ -796,7 +793,7 @@</span><br><span>                   return;</span><br><span>              }</span><br><span>    }</span><br><span style="color: hsl(0, 100%, 40%);">-       setverdict(fail, "No space left in ExpectTable");</span><br><span style="color: hsl(120, 100%, 40%);">+   testcase.stop("No space left in ExpectTable");</span><br><span> }</span><br><span> </span><br><span> private function f_create_imsi(hexstring imsi, OCT4 tmsi, BSSAP_ConnHdlr hdlr)</span><br><span>@@ -810,8 +807,7 @@</span><br><span>                    return;</span><br><span>              }</span><br><span>    }</span><br><span style="color: hsl(0, 100%, 40%);">-       setverdict(fail, "No space left in ImsiTable");</span><br><span style="color: hsl(0, 100%, 40%);">-       self.stop;</span><br><span style="color: hsl(120, 100%, 40%);">+    testcase.stop("No space left in ImsiTable");</span><br><span> }</span><br><span> </span><br><span> </span><br><span>diff --git a/library/GSM_Types.ttcn b/library/GSM_Types.ttcn</span><br><span>index 2000b4a..59ccb76 100644</span><br><span>--- a/library/GSM_Types.ttcn</span><br><span>+++ b/library/GSM_Types.ttcn</span><br><span>@@ -34,6 +34,7 @@</span><br><span>                 case (CS3) { return 52 }</span><br><span>             case else {</span><br><span>                  setverdict(fail, "Invalid GPRS CS ", cs);</span><br><span style="color: hsl(120, 100%, 40%);">+                   mtc.stop;</span><br><span>                    return -1;</span><br><span>                   }</span><br><span>            }</span><br><span>diff --git a/library/GSUP_Emulation.ttcn b/library/GSUP_Emulation.ttcn</span><br><span>index 7cf1656..86859ba 100644</span><br><span>--- a/library/GSUP_Emulation.ttcn</span><br><span>+++ b/library/GSUP_Emulation.ttcn</span><br><span>@@ -98,9 +98,8 @@</span><br><span>                       return GsupImsiTable[i].comp_ref;</span><br><span>            }</span><br><span>    }</span><br><span style="color: hsl(0, 100%, 40%);">-       log("GSUP IMSI table not found by IMSI ", imsi);</span><br><span style="color: hsl(0, 100%, 40%);">-      setverdict(fail);</span><br><span style="color: hsl(0, 100%, 40%);">-       self.stop;</span><br><span style="color: hsl(120, 100%, 40%);">+    setverdict(fail, "GSUP IMSI table not found by IMSI ", imsi);</span><br><span style="color: hsl(120, 100%, 40%);">+       mtc.stop;</span><br><span> }</span><br><span> </span><br><span> /* resolve connection ID by component reference */</span><br><span>@@ -111,9 +110,8 @@</span><br><span>                       return GsupImsiTable[i].imsi;</span><br><span>                }</span><br><span>    }</span><br><span style="color: hsl(0, 100%, 40%);">-       log("GSUP IMSI table not found by component ", client);</span><br><span style="color: hsl(0, 100%, 40%);">-       setverdict(fail);</span><br><span style="color: hsl(0, 100%, 40%);">-       self.stop;</span><br><span style="color: hsl(120, 100%, 40%);">+    setverdict(fail, "GSUP IMSI table not found by component ", client);</span><br><span style="color: hsl(120, 100%, 40%);">+        mtc.stop;</span><br><span> }</span><br><span> </span><br><span> private function f_imsi_table_init()</span><br><span>@@ -142,9 +140,7 @@</span><br><span>                     return;</span><br><span>              }</span><br><span>    }</span><br><span style="color: hsl(0, 100%, 40%);">-       log("GSUP IMSI table full!");</span><br><span style="color: hsl(0, 100%, 40%);">- setverdict(fail);</span><br><span style="color: hsl(0, 100%, 40%);">-       self.stop;</span><br><span style="color: hsl(120, 100%, 40%);">+    testcase.stop("GSUP IMSI table full!");</span><br><span> }</span><br><span> </span><br><span> private function f_imsi_table_del(charstring imsi)</span><br><span>@@ -158,9 +154,8 @@</span><br><span>                       return</span><br><span>               }</span><br><span>    }</span><br><span style="color: hsl(0, 100%, 40%);">-       log("GSUP IMSI table attempt to delete non-existant ", imsi);</span><br><span style="color: hsl(0, 100%, 40%);">- setverdict(fail);</span><br><span style="color: hsl(0, 100%, 40%);">-       self.stop;</span><br><span style="color: hsl(120, 100%, 40%);">+    setverdict(fail, "GSUP IMSI table attempt to delete non-existant ", imsi);</span><br><span style="color: hsl(120, 100%, 40%);">+  mtc.stop;</span><br><span> }</span><br><span> </span><br><span> </span><br><span>@@ -190,7 +185,7 @@</span><br><span>                 [] GSUP.receive(ASP_IPA_Event:{up_down:=ASP_IPA_EVENT_UP}) { repeat; }</span><br><span>               [] GSUP.receive(ASP_IPA_Event:{up_down:=ASP_IPA_EVENT_DOWN}) {</span><br><span>                       setverdict(fail, "GSUP Connection Lost");</span><br><span style="color: hsl(0, 100%, 40%);">-                     self.stop;</span><br><span style="color: hsl(120, 100%, 40%);">+                    mtc.stop;</span><br><span>                    }</span><br><span> </span><br><span>                /* GSUP -> Client: call related messages */</span><br><span>@@ -272,6 +267,7 @@</span><br><span>                 }</span><br><span>    }</span><br><span>    setverdict(fail, "Couldn't find GsupExpect for incoming imsi ", imsi);</span><br><span style="color: hsl(120, 100%, 40%);">+  mtc.stop;</span><br><span>    return ret;</span><br><span> }</span><br><span> </span><br><span>@@ -287,7 +283,7 @@</span><br><span>                   return;</span><br><span>              }</span><br><span>    }</span><br><span style="color: hsl(0, 100%, 40%);">-       setverdict(fail, "No space left in GsupExpectTable");</span><br><span style="color: hsl(120, 100%, 40%);">+       testcase.stop("No space left in GsupExpectTable");</span><br><span> }</span><br><span> </span><br><span> /* client/conn_hdlr side function to use procedure port to create expect in emulation */</span><br><span>diff --git a/library/GTP_Emulation.ttcn b/library/GTP_Emulation.ttcn</span><br><span>index 534fdef..750f744 100644</span><br><span>--- a/library/GTP_Emulation.ttcn</span><br><span>+++ b/library/GTP_Emulation.ttcn</span><br><span>@@ -62,7 +62,7 @@</span><br><span>           }</span><br><span>    }</span><br><span>    setverdict(fail, "No Component for TEID ", teid);</span><br><span style="color: hsl(0, 100%, 40%);">-     self.stop;</span><br><span style="color: hsl(120, 100%, 40%);">+    mtc.stop;</span><br><span> }</span><br><span> </span><br><span> private function f_comp_by_imsi(hexstring imsi) runs on GTP_Emulation_CT return GTP_ConnHdlr {</span><br><span>@@ -73,7 +73,7 @@</span><br><span>             }</span><br><span>    }</span><br><span>    setverdict(fail, "No Component for IMSI ", imsi);</span><br><span style="color: hsl(0, 100%, 40%);">-     self.stop;</span><br><span style="color: hsl(120, 100%, 40%);">+    mtc.stop;</span><br><span> }</span><br><span> </span><br><span> private function f_tid_tbl_add(OCT4 teid, GTP_ConnHdlr vc_conn) runs on GTP_Emulation_CT {</span><br><span>@@ -85,8 +85,7 @@</span><br><span>                         return;</span><br><span>              }</span><br><span>    }</span><br><span style="color: hsl(0, 100%, 40%);">-       setverdict(fail, "No Space in TidTable for ", teid);</span><br><span style="color: hsl(0, 100%, 40%);">-  self.stop;</span><br><span style="color: hsl(120, 100%, 40%);">+    testcase.stop("No Space in TidTable for ", teid);</span><br><span> }</span><br><span> </span><br><span> private function f_imsi_tbl_add(hexstring imsi, GTP_ConnHdlr vc_conn) runs on GTP_Emulation_CT {</span><br><span>@@ -98,8 +97,7 @@</span><br><span>                         return;</span><br><span>              }</span><br><span>    }</span><br><span style="color: hsl(0, 100%, 40%);">-       setverdict(fail, "No Space in IMSI Table for ", imsi);</span><br><span style="color: hsl(0, 100%, 40%);">-        self.stop;</span><br><span style="color: hsl(120, 100%, 40%);">+    testcase.stop("No Space in IMSI Table for ", imsi);</span><br><span> }</span><br><span> </span><br><span> function f_gtpc_extract_imsi(PDU_GTPC gtp) return template (omit) hexstring {</span><br><span>diff --git a/library/GTP_Templates.ttcn b/library/GTP_Templates.ttcn</span><br><span>index a222b2e..d778c97 100644</span><br><span>--- a/library/GTP_Templates.ttcn</span><br><span>+++ b/library/GTP_Templates.ttcn</span><br><span>@@ -462,7 +462,8 @@</span><br><span>                           }</span><br><span>                    }</span><br><span>            }</span><br><span style="color: hsl(0, 100%, 40%);">-               setverdict(fail);</span><br><span style="color: hsl(120, 100%, 40%);">+             setverdict(fail, "Could not extract protocol payload from protocol ", protocol);</span><br><span style="color: hsl(120, 100%, 40%);">+            mtc.stop;</span><br><span>            return ''O;</span><br><span>  }</span><br><span> </span><br><span>diff --git a/library/IPA_Emulation.ttcnpp b/library/IPA_Emulation.ttcnpp</span><br><span>index df2b15e..a271f2d 100644</span><br><span>--- a/library/IPA_Emulation.ttcnpp</span><br><span>+++ b/library/IPA_Emulation.ttcnpp</span><br><span>@@ -203,7 +203,7 @@</span><br><span>                                             local_host, local_port, 0, { tcp:={} });</span><br><span>     if (not ispresent(res.connId)) {</span><br><span>             setverdict(fail, "Could not connect IPA socket, check your configuration");</span><br><span style="color: hsl(0, 100%, 40%);">-           self.stop;</span><br><span style="color: hsl(120, 100%, 40%);">+            mtc.stop;</span><br><span>    }</span><br><span>    g_ipa_conn_id := res.connId;</span><br><span>         g_ccm_pars := ccm_pars;</span><br><span>@@ -218,7 +218,7 @@</span><br><span>                                                local_host, local_port, { tcp:={} });</span><br><span>        if (not ispresent(res.connId)) {</span><br><span>             setverdict(fail, "Could not listen IPA socket, check your configuration");</span><br><span style="color: hsl(0, 100%, 40%);">-            self.stop;</span><br><span style="color: hsl(120, 100%, 40%);">+            mtc.stop;</span><br><span>    }</span><br><span>    g_ipa_conn_id := res.connId;</span><br><span>         g_ccm_pars := ccm_pars;</span><br><span>@@ -507,7 +507,7 @@</span><br><span>                                }</span><br><span>                            case else {</span><br><span>                                  setverdict(fail, "Unknown mode");</span><br><span style="color: hsl(0, 100%, 40%);">-                                     self.stop;</span><br><span style="color: hsl(120, 100%, 40%);">+                                    mtc.stop;</span><br><span>                            }</span><br><span>                    }</span><br><span>                    }</span><br><span>diff --git a/library/IuUP_Emulation.ttcn b/library/IuUP_Emulation.ttcn</span><br><span>index 77cd739..752b897 100644</span><br><span>--- a/library/IuUP_Emulation.ttcn</span><br><span>+++ b/library/IuUP_Emulation.ttcn</span><br><span>@@ -80,6 +80,7 @@</span><br><span>                       return pdu.type_0.payload;</span><br><span>           } else {</span><br><span>                     setverdict(fail, "PDU Type 0 received but 1 configured");</span><br><span style="color: hsl(120, 100%, 40%);">+                   mtc.stop;</span><br><span>            }</span><br><span>    } else if (ischosen(pdu.type_1)) {</span><br><span>           if (st.cfg.data_pdu_type_0 == false) {</span><br><span>@@ -88,11 +89,13 @@</span><br><span>                         return pdu.type_1.payload;</span><br><span>           } else {</span><br><span>                     setverdict(fail, "PDU Type 1 received but 0 configured");</span><br><span style="color: hsl(120, 100%, 40%);">+                   mtc.stop;</span><br><span>            }</span><br><span>    } else if (ischosen(pdu.type_14)) {</span><br><span>          if (match(pdu, tr_IuUP_INIT)) {</span><br><span>                      if (st.cfg.active_init == true) {</span><br><span>                            setverdict(fail, "INIT received in ACTIVE role");</span><br><span style="color: hsl(120, 100%, 40%);">+                           mtc.stop;</span><br><span>                    } else {</span><br><span>                             /* store an INIT_ACK to be transmitted later */</span><br><span>                              st.pending_tx_pdu := valueof(ts_IuUP_INIT_ACK(pdu.type_14.frame_nr,</span><br><span>@@ -104,11 +107,13 @@</span><br><span>                          st.state := ST_DATA_TRANSFER_READY;</span><br><span>                  } else {</span><br><span>                             setverdict(fail, "INIT_ACK received in PASSIVE role");</span><br><span style="color: hsl(120, 100%, 40%);">+                              mtc.stop;</span><br><span>                    }</span><br><span>            }</span><br><span>            return ''O;</span><br><span>  } else {</span><br><span>             setverdict(fail, "Impossible IuUP PDU decoded from ", inp);</span><br><span style="color: hsl(120, 100%, 40%);">+         mtc.stop;</span><br><span>    }</span><br><span>    self.stop;</span><br><span> }</span><br><span>diff --git a/library/L1CTL_PortType.ttcn b/library/L1CTL_PortType.ttcn</span><br><span>index ba9c2b5..14a059c 100644</span><br><span>--- a/library/L1CTL_PortType.ttcn</span><br><span>+++ b/library/L1CTL_PortType.ttcn</span><br><span>@@ -41,7 +41,7 @@</span><br><span>                         [] pt.receive(tr_L1CTL_FBSB_CONF(0)) { return; };</span><br><span>                    [i >= 9] pt.receive(tr_L1CTL_FBSB_CONF(?)) {</span><br><span>                              setverdict(fail, "FBSB Failed with non-zero return code");</span><br><span style="color: hsl(0, 100%, 40%);">-                            self.stop;</span><br><span style="color: hsl(120, 100%, 40%);">+                            mtc.stop;</span><br><span>                            };</span><br><span>                   [] pt.receive(tr_L1CTL_FBSB_CONF(?)) {</span><br><span>                               f_sleep(1.0);</span><br><span>@@ -49,7 +49,7 @@</span><br><span>                    [] pt.receive { repeat; };</span><br><span>                   [] T.timeout {</span><br><span>                               setverdict(fail, "Timeout in FBSB") </span><br><span style="color: hsl(0, 100%, 40%);">-                          self.stop;</span><br><span style="color: hsl(120, 100%, 40%);">+                            mtc.stop;</span><br><span>                            };</span><br><span>                   }</span><br><span>            }</span><br><span>@@ -64,7 +64,7 @@</span><br><span>                [] pt.receive { repeat; }</span><br><span>            [] T.timeout {</span><br><span>                       setverdict(fail, "Timeout in CCH_MODE");</span><br><span style="color: hsl(0, 100%, 40%);">-                      self.stop;</span><br><span style="color: hsl(120, 100%, 40%);">+                    mtc.stop;</span><br><span>                    }</span><br><span>            }</span><br><span>    }</span><br><span>@@ -80,7 +80,7 @@</span><br><span>                        [] pt.receive { repeat; };</span><br><span>                   [] T.timeout {</span><br><span>                               setverdict(fail, "Timeout in RACH");</span><br><span style="color: hsl(0, 100%, 40%);">-                          self.stop;</span><br><span style="color: hsl(120, 100%, 40%);">+                            mtc.stop;</span><br><span>                            }</span><br><span>            }</span><br><span>            return fn;</span><br><span>@@ -108,7 +108,7 @@</span><br><span>                     [] pt.receive { repeat };</span><br><span>                    [] T.timeout {</span><br><span>                               setverdict(fail, "Timeout waiting for IMM ASS");</span><br><span style="color: hsl(0, 100%, 40%);">-                              self.stop;</span><br><span style="color: hsl(120, 100%, 40%);">+                            mtc.stop;</span><br><span>                            }</span><br><span>            }</span><br><span>            T.stop;</span><br><span>@@ -133,7 +133,7 @@</span><br><span>                        [] pt.receive { repeat };</span><br><span>                    [] T.timeout {</span><br><span>                               setverdict(fail, "Timeout waiting for IMM ASS");</span><br><span style="color: hsl(0, 100%, 40%);">-                              self.stop;</span><br><span style="color: hsl(120, 100%, 40%);">+                            mtc.stop;</span><br><span>                            }</span><br><span>            }</span><br><span>            T.stop;</span><br><span>@@ -149,7 +149,7 @@</span><br><span>                        [] pt.receive { repeat };</span><br><span>                    [] T.timeout {</span><br><span>                               setverdict(fail, "Timeout waiting for TBF-CFG.conf");</span><br><span style="color: hsl(0, 100%, 40%);">-                         self.stop;</span><br><span style="color: hsl(120, 100%, 40%);">+                            mtc.stop;</span><br><span>                            };</span><br><span>           }</span><br><span>            T.stop;</span><br><span>@@ -174,7 +174,7 @@</span><br><span>                        [] pt.receive { repeat; }</span><br><span>                    [] T.timeout {</span><br><span>                               setverdict(fail, "Timeout waiting for RESET.conf");</span><br><span style="color: hsl(0, 100%, 40%);">-                           self.stop;</span><br><span style="color: hsl(120, 100%, 40%);">+                            mtc.stop;</span><br><span>                            }</span><br><span>            }</span><br><span>    }</span><br><span>diff --git a/library/L3_Common.ttcn b/library/L3_Common.ttcn</span><br><span>index 2b39621..bf7818a 100644</span><br><span>--- a/library/L3_Common.ttcn</span><br><span>+++ b/library/L3_Common.ttcn</span><br><span>@@ -70,7 +70,7 @@</span><br><span>           return TLLI_RAND_G_RNTI;</span><br><span>     } else {</span><br><span>             setverdict(fail, "Unknonw TLLI Type ", tllib);</span><br><span style="color: hsl(0, 100%, 40%);">-                self.stop;</span><br><span style="color: hsl(120, 100%, 40%);">+            mtc.stop;</span><br><span>    }</span><br><span> }</span><br><span> </span><br><span>diff --git a/library/LAPDm_RAW_PT.ttcn b/library/LAPDm_RAW_PT.ttcn</span><br><span>index bdfc50b..6b8f9fb 100644</span><br><span>--- a/library/LAPDm_RAW_PT.ttcn</span><br><span>+++ b/library/LAPDm_RAW_PT.ttcn</span><br><span>@@ -320,7 +320,7 @@</span><br><span>                    var TBF_UL_establish_res res;</span><br><span>                        if (isvalue(g_tbf_ul[tbf_nr].arfcn)) {</span><br><span>                               setverdict(fail, "Cannot establish UL TBF ID ", tbf_nr, ": BUSY");</span><br><span style="color: hsl(0, 100%, 40%);">-                          self.stop;</span><br><span style="color: hsl(120, 100%, 40%);">+                            mtc.stop;</span><br><span>                    }</span><br><span>                    f_establish_tbf(tbf_ul_req.ra);</span><br><span>                      if (ph_state == PH_STATE_TBF) {</span><br><span>@@ -340,7 +340,7 @@</span><br><span>                        var TbfNr tbf_nr := tbf_dl_req.tbf_nr;</span><br><span>                       if (isvalue(g_tbf_dl[tbf_nr].arfcn)) {</span><br><span>                               setverdict(fail, "Cannot establish DL TBF ID ", tbf_nr, ": BUSY");</span><br><span style="color: hsl(0, 100%, 40%);">-                          self.stop;</span><br><span style="color: hsl(120, 100%, 40%);">+                            mtc.stop;</span><br><span>                    }</span><br><span>                    g_tbf_dl[tbf_nr] := tbf_dl_req.pars;</span><br><span>                         f_L1CTL_TBF_CFG(L1CTL, false, tbf_dl_req.pars.tfi);</span><br><span>diff --git a/library/MGCP_Emulation.ttcn b/library/MGCP_Emulation.ttcn</span><br><span>index 0863511..c3d09b9 100644</span><br><span>--- a/library/MGCP_Emulation.ttcn</span><br><span>+++ b/library/MGCP_Emulation.ttcn</span><br><span>@@ -134,9 +134,8 @@</span><br><span>                   return MgcpEndpointTable[i].comp_ref;</span><br><span>                }</span><br><span>    }</span><br><span style="color: hsl(0, 100%, 40%);">-       log("MGCP Endpoint Table not found by Endpoint", ep);</span><br><span style="color: hsl(0, 100%, 40%);">- setverdict(fail);</span><br><span style="color: hsl(0, 100%, 40%);">-       self.stop;</span><br><span style="color: hsl(120, 100%, 40%);">+    setverdict(fail, "MGCP Endpoint Table not found by Endpoint", ep);</span><br><span style="color: hsl(120, 100%, 40%);">+  mtc.stop;</span><br><span> }</span><br><span> </span><br><span> private function f_ep_by_comp(MGCP_ConnHdlr client)</span><br><span>@@ -147,9 +146,8 @@</span><br><span>                      return MgcpEndpointTable[i].endpoint;</span><br><span>                }</span><br><span>    }</span><br><span style="color: hsl(0, 100%, 40%);">-       log("MGCP Endpoint Table not found by component ", client);</span><br><span style="color: hsl(0, 100%, 40%);">-   setverdict(fail);</span><br><span style="color: hsl(0, 100%, 40%);">-       self.stop;</span><br><span style="color: hsl(120, 100%, 40%);">+    setverdict(fail, "MGCP Endpoint Table not found by component ", client);</span><br><span style="color: hsl(120, 100%, 40%);">+    mtc.stop;</span><br><span> }</span><br><span> </span><br><span> private function f_ep_table_add(MGCP_ConnHdlr comp_ref, MgcpEndpoint ep)</span><br><span>@@ -162,8 +160,7 @@</span><br><span>                         return;</span><br><span>              }</span><br><span>    }</span><br><span style="color: hsl(0, 100%, 40%);">-       setverdict(fail, "MGCP Endpoint Table full!");</span><br><span style="color: hsl(0, 100%, 40%);">-        self.stop;</span><br><span style="color: hsl(120, 100%, 40%);">+    testcase.stop("MGCP Endpoint Table full!");</span><br><span> }</span><br><span> </span><br><span> private function f_ep_table_del(MGCP_ConnHdlr comp_ref, MgcpEndpoint ep)</span><br><span>@@ -178,7 +175,7 @@</span><br><span>             }</span><br><span>    }</span><br><span>    setverdict(fail, "MGCP Endpoint Table: Couldn't find to-be-deleted entry!");</span><br><span style="color: hsl(0, 100%, 40%);">-      self.stop;</span><br><span style="color: hsl(120, 100%, 40%);">+    mtc.stop;</span><br><span> }</span><br><span> </span><br><span> </span><br><span>@@ -211,7 +208,7 @@</span><br><span>                 var MgcpEndpoint ep;</span><br><span>                 if (f_mgcp_find_param(msg, "Z", ep) == false) {</span><br><span>                    setverdict(fail, "No SpecificEndpointName in MGCP response", msg);</span><br><span style="color: hsl(0, 100%, 40%);">-                    self.stop;</span><br><span style="color: hsl(120, 100%, 40%);">+                    mtc.stop;</span><br><span>            }</span><br><span>            return ep;</span><br><span>   }</span><br><span>@@ -239,7 +236,7 @@</span><br><span>      }</span><br><span>    if (not ispresent(res.connId)) {</span><br><span>             setverdict(fail, "Could not connect MGCP socket, check your configuration");</span><br><span style="color: hsl(0, 100%, 40%);">-          self.stop;</span><br><span style="color: hsl(120, 100%, 40%);">+            mtc.stop;</span><br><span>    }</span><br><span>    g_mgcp_conn_id := res.connId;</span><br><span> </span><br><span>@@ -273,7 +270,7 @@</span><br><span>                              res := MGCP_CodecPort_CtrlFunct.f_IPL4_connect(MGCP, p.callagent_ip, p.callagent_udp_port, p.mgw_ip, p.mgw_udp_port, g_mgcp_conn_id, { udp:={} });</span><br><span>                           if (not ispresent(res.connId)) {</span><br><span>                                     setverdict(fail, "Could not connect MGCP socket, check your configuration");</span><br><span style="color: hsl(0, 100%, 40%);">-                                  self.stop;</span><br><span style="color: hsl(120, 100%, 40%);">+                                    mtc.stop;</span><br><span>                            }</span><br><span>                    }</span><br><span>                    if (ischosen(mrf.msg.command)) {</span><br><span>@@ -302,7 +299,7 @@</span><br><span>                               }</span><br><span>                    } else {</span><br><span>                             setverdict(fail, "Received unexpected MGCP response: ", mrf.msg.response);</span><br><span style="color: hsl(0, 100%, 40%);">-                            self.stop;</span><br><span style="color: hsl(120, 100%, 40%);">+                            mtc.stop;</span><br><span>                    }</span><br><span>                    }</span><br><span>            [] MGCP_PROC.getcall(MGCPEM_register:{?,?}) -> param(crit, vc_conn) {</span><br><span>@@ -387,6 +384,7 @@</span><br><span>               }</span><br><span>    }</span><br><span>    setverdict(fail, "Couldn't find Expect for CRCX", cmd);</span><br><span style="color: hsl(120, 100%, 40%);">+ mtc.stop;</span><br><span>    return ret;</span><br><span> }</span><br><span> </span><br><span>@@ -398,7 +396,7 @@</span><br><span>   for (i := 0; i < sizeof(MgcpExpectTable); i := i+1) {</span><br><span>             if (crit == MgcpExpectTable[i].crit) {</span><br><span>                       setverdict(fail, "Crit already present", crit);</span><br><span style="color: hsl(0, 100%, 40%);">-                       self.stop;</span><br><span style="color: hsl(120, 100%, 40%);">+                    mtc.stop;</span><br><span>            }</span><br><span>    }</span><br><span>    for (i := 0; i < sizeof(MgcpExpectTable); i := i+1) {</span><br><span>@@ -409,7 +407,7 @@</span><br><span>                       return;</span><br><span>              }</span><br><span>    }</span><br><span style="color: hsl(0, 100%, 40%);">-       setverdict(fail, "No space left in MgcpExpectTable")</span><br><span style="color: hsl(120, 100%, 40%);">+        testcase.stop("No space left in MgcpExpectTable")</span><br><span> }</span><br><span> </span><br><span> /* client/conn_hdlr side function to use procedure port to create expect in emulation */</span><br><span>@@ -459,7 +457,8 @@</span><br><span>               return "AMR-WB";</span><br><span>   }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-   setverdict(fail);</span><br><span style="color: hsl(120, 100%, 40%);">+     setverdict(fail, "Unknown payload type ", pt);</span><br><span style="color: hsl(120, 100%, 40%);">+      mtc.stop;</span><br><span>    return "";</span><br><span> }</span><br><span> </span><br><span>diff --git a/library/MGCP_Templates.ttcn b/library/MGCP_Templates.ttcn</span><br><span>index 9d6dea6..afdc33d 100644</span><br><span>--- a/library/MGCP_Templates.ttcn</span><br><span>+++ b/library/MGCP_Templates.ttcn</span><br><span>@@ -294,7 +294,7 @@</span><br><span>                                 return par.val;</span><br><span>                      }</span><br><span>            }</span><br><span style="color: hsl(0, 100%, 40%);">-               setverdict(fail);</span><br><span style="color: hsl(120, 100%, 40%);">+             setverdict(fail, "Could not extract parameters for code ", code);</span><br><span>          return "";</span><br><span>         }</span><br><span> </span><br><span>diff --git a/library/MNCC_Emulation.ttcn b/library/MNCC_Emulation.ttcn</span><br><span>index d9b7c79..94ed1c4 100644</span><br><span>--- a/library/MNCC_Emulation.ttcn</span><br><span>+++ b/library/MNCC_Emulation.ttcn</span><br><span>@@ -116,9 +116,8 @@</span><br><span>                         return MnccCallTable[i].comp_ref;</span><br><span>            }</span><br><span>    }</span><br><span style="color: hsl(0, 100%, 40%);">-       log("MNCC Call table not found by MNCC Call ID ", mncc_call_id);</span><br><span style="color: hsl(0, 100%, 40%);">-      setverdict(fail);</span><br><span style="color: hsl(0, 100%, 40%);">-       self.stop;</span><br><span style="color: hsl(120, 100%, 40%);">+    setverdict(fail, "MNCC Call table not found by MNCC Call ID ", mncc_call_id);</span><br><span style="color: hsl(120, 100%, 40%);">+       mtc.stop;</span><br><span> }</span><br><span> </span><br><span> /* resolve connection ID by component reference */</span><br><span>@@ -129,9 +128,8 @@</span><br><span>                       return MnccCallTable[i].mncc_call_id;</span><br><span>                }</span><br><span>    }</span><br><span style="color: hsl(0, 100%, 40%);">-       log("MNCC Call table not found by component ", client);</span><br><span style="color: hsl(0, 100%, 40%);">-       setverdict(fail);</span><br><span style="color: hsl(0, 100%, 40%);">-       self.stop;</span><br><span style="color: hsl(120, 100%, 40%);">+    setverdict(fail, "MNCC Call table not found by component ", client);</span><br><span style="color: hsl(120, 100%, 40%);">+        mtc.stop;</span><br><span> }</span><br><span> </span><br><span> private function f_gen_call_id()</span><br><span>@@ -171,9 +169,7 @@</span><br><span>                         return;</span><br><span>              }</span><br><span>    }</span><br><span style="color: hsl(0, 100%, 40%);">-       log("MNCC Call table full!");</span><br><span style="color: hsl(0, 100%, 40%);">- setverdict(fail);</span><br><span style="color: hsl(0, 100%, 40%);">-       self.stop;</span><br><span style="color: hsl(120, 100%, 40%);">+    testcase.stop("MNCC Call table full!");</span><br><span> }</span><br><span> </span><br><span> private function f_call_table_del(uint32_t mncc_call_id)</span><br><span>@@ -187,9 +183,8 @@</span><br><span>                         return</span><br><span>               }</span><br><span>    }</span><br><span style="color: hsl(0, 100%, 40%);">-       log("MNCC Call table attempt to delete non-existant ", mncc_call_id);</span><br><span style="color: hsl(0, 100%, 40%);">- setverdict(fail);</span><br><span style="color: hsl(0, 100%, 40%);">-       self.stop;</span><br><span style="color: hsl(120, 100%, 40%);">+    setverdict(fail, "MNCC Call table attempt to delete non-existant ", mncc_call_id);</span><br><span style="color: hsl(120, 100%, 40%);">+  mtc.stop;</span><br><span> }</span><br><span> </span><br><span> </span><br><span>@@ -203,14 +198,14 @@</span><br><span>       [] MNCC.receive(UD_connect_result:?) -> value res {</span><br><span>               if (ispresent(res.result) and ispresent(res.result.result_code) and res.result.result_code == ERROR) {</span><br><span>                       setverdict(fail, "Error connecting to MNCC socket", res);</span><br><span style="color: hsl(0, 100%, 40%);">-                     self.stop;</span><br><span style="color: hsl(120, 100%, 40%);">+                    mtc.stop;</span><br><span>            } else {</span><br><span>                     g_mncc_ud_id := res.id;</span><br><span>              }</span><br><span>            }</span><br><span>    [] T.timeout {</span><br><span>               setverdict(fail, "Timeout connecting to MNCC socket");</span><br><span style="color: hsl(0, 100%, 40%);">-                self.stop;</span><br><span style="color: hsl(120, 100%, 40%);">+            mtc.stop;</span><br><span>            }</span><br><span>    }</span><br><span> }</span><br><span>@@ -226,14 +221,14 @@</span><br><span>       [] MNCC.receive(UD_listen_result:?) -> value res {</span><br><span>                if (ispresent(res.result) and ispresent(res.result.result_code) and res.result.result_code == ERROR) {</span><br><span>                       setverdict(fail, "Error listening to MNCC socket", res);</span><br><span style="color: hsl(0, 100%, 40%);">-                      self.stop;</span><br><span style="color: hsl(120, 100%, 40%);">+                    mtc.stop;</span><br><span>            } else {</span><br><span>                     g_mncc_ud_id := res.id;</span><br><span>              }</span><br><span>            }</span><br><span>    [] T.timeout {</span><br><span>               setverdict(fail, "Timeout listening to MNCC socket");</span><br><span style="color: hsl(0, 100%, 40%);">-         self.stop;</span><br><span style="color: hsl(120, 100%, 40%);">+            mtc.stop;</span><br><span>            }</span><br><span>    }</span><br><span> </span><br><span>@@ -244,7 +239,7 @@</span><br><span>          }</span><br><span>    [] T.timeout {</span><br><span>               setverdict(fail, "Timeout waiting for MNCC connection");</span><br><span style="color: hsl(0, 100%, 40%);">-              self.stop;</span><br><span style="color: hsl(120, 100%, 40%);">+            mtc.stop;</span><br><span>            }</span><br><span>    }</span><br><span> }</span><br><span>@@ -393,6 +388,7 @@</span><br><span>         if (not ischosen(conn_ind.u.signal) or</span><br><span>           (conn_ind.msg_type != MNCC_SETUP_IND and conn_ind.msg_type != MNCC_SETUP_REQ)) {</span><br><span>                 setverdict(fail, "MNCC ExpectedCreateCallback needs MNCC_SETUP_{IND,REQ}");</span><br><span style="color: hsl(120, 100%, 40%);">+         mtc.stop;</span><br><span>            return ret;</span><br><span>  }</span><br><span>    dest_number := conn_ind.u.signal.called.number;</span><br><span>@@ -412,6 +408,7 @@</span><br><span>                }</span><br><span>    }</span><br><span>    setverdict(fail, "Couldn't find MnccExpect for incoming call ", dest_number);</span><br><span style="color: hsl(120, 100%, 40%);">+   mtc.stop;</span><br><span>    return ret;</span><br><span> }</span><br><span> </span><br><span>@@ -427,7 +424,7 @@</span><br><span>                   return;</span><br><span>              }</span><br><span>    }</span><br><span style="color: hsl(0, 100%, 40%);">-       setverdict(fail, "No space left in MnccMnccExpectTable");</span><br><span style="color: hsl(120, 100%, 40%);">+   testcase.stop("No space left in MnccMnccExpectTable");</span><br><span> }</span><br><span> </span><br><span> /* client/conn_hdlr side function to use procedure port to create expect in emulation */</span><br><span>diff --git a/library/MNCC_Types.ttcn b/library/MNCC_Types.ttcn</span><br><span>index 19af236..157457a 100644</span><br><span>--- a/library/MNCC_Types.ttcn</span><br><span>+++ b/library/MNCC_Types.ttcn</span><br><span>@@ -1922,7 +1922,7 @@</span><br><span>               return pdu.u.signal.callref;</span><br><span>         } else  {</span><br><span>            setverdict(fail, "Unable to determine Callref for MNCC", pdu);</span><br><span style="color: hsl(0, 100%, 40%);">-                self.stop</span><br><span style="color: hsl(120, 100%, 40%);">+             mtc.stop</span><br><span>     }</span><br><span> }</span><br><span> </span><br><span>diff --git a/library/NS_Emulation.ttcn b/library/NS_Emulation.ttcn</span><br><span>index d43d15c..01d45b4 100644</span><br><span>--- a/library/NS_Emulation.ttcn</span><br><span>+++ b/library/NS_Emulation.ttcn</span><br><span>@@ -83,7 +83,7 @@</span><br><span>              res := f_IPL4_connect(NSCP, mp_remote_ip, mp_remote_udp_port, mp_local_ip, mp_local_udp_port, 0, { udp := {}});</span><br><span>              if (not ispresent(res.connId)) {</span><br><span>                     setverdict(fail, "Could not connect NS UDP socket, check your configuration");</span><br><span style="color: hsl(0, 100%, 40%);">-                        self.stop;</span><br><span style="color: hsl(120, 100%, 40%);">+                    mtc.stop;</span><br><span>            }</span><br><span>            g_conn_id := res.connId;</span><br><span>             f_change_state(NSE_S_DEAD_BLOCKED);</span><br><span>diff --git a/library/Osmocom_CTRL_Adapter.ttcn b/library/Osmocom_CTRL_Adapter.ttcn</span><br><span>index 22195c8..a98ac29 100644</span><br><span>--- a/library/Osmocom_CTRL_Adapter.ttcn</span><br><span>+++ b/library/Osmocom_CTRL_Adapter.ttcn</span><br><span>@@ -38,7 +38,7 @@</span><br><span>     [] IPA_CTRL.receive(ASP_IPA_Event:{up_down := ASP_IPA_EVENT_UP}) { }</span><br><span>         [] T.timeout {</span><br><span>               setverdict(fail, "Timeout CTRL waiting for ASP_IPA_EVENT_UP");</span><br><span style="color: hsl(0, 100%, 40%);">-                self.stop;</span><br><span style="color: hsl(120, 100%, 40%);">+            mtc.stop;</span><br><span>            }</span><br><span>    }</span><br><span> }</span><br><span>diff --git a/library/Osmocom_CTRL_Functions.ttcn b/library/Osmocom_CTRL_Functions.ttcn</span><br><span>index 70885c9..da3b80d 100644</span><br><span>--- a/library/Osmocom_CTRL_Functions.ttcn</span><br><span>+++ b/library/Osmocom_CTRL_Functions.ttcn</span><br><span>@@ -40,10 +40,12 @@</span><br><span>                [] pt.receive(tr_CtrlMsgTrap) { repeat; }</span><br><span>            [] pt.receive(tr_CtrlMsgError) -> value rx {</span><br><span>                      setverdict(fail, "Error in CTRL GET ", variable, ": ", rx.err.reason);</span><br><span style="color: hsl(120, 100%, 40%);">+                    mtc.stop;</span><br><span>                    return "FAIL";</span><br><span>                     }</span><br><span>            [] T.timeout {</span><br><span>                       setverdict(fail, "Timeout waiting for CTRL GET REPLY ", variable);</span><br><span style="color: hsl(120, 100%, 40%);">+                  mtc.stop;</span><br><span>                    return "TIMEOUT";</span><br><span>                  }</span><br><span>            }</span><br><span>@@ -62,9 +64,11 @@</span><br><span>               [] pt.receive(tr_CtrlMsgTrap) { repeat; }</span><br><span>            [] pt.receive(tr_CtrlMsgError) -> value rx {</span><br><span>                      setverdict(fail, "Error in CTRL GET ", variable, ": ", rx.err.reason);</span><br><span style="color: hsl(120, 100%, 40%);">+                    mtc.stop;</span><br><span>                    }</span><br><span>            [] T.timeout {</span><br><span>                       setverdict(fail, "Timeout waiting for CTRL SET REPLY ", variable);</span><br><span style="color: hsl(120, 100%, 40%);">+                  mtc.stop;</span><br><span>                    }</span><br><span>            }</span><br><span>    }</span><br><span>@@ -80,6 +84,7 @@</span><br><span>                        }</span><br><span>            [] T.timeout {</span><br><span>                       setverdict(fail, "Timeout waiting for TRAP ", variable);</span><br><span style="color: hsl(120, 100%, 40%);">+                    mtc.stop;</span><br><span>                    return "TIMEOUT";</span><br><span>                  }</span><br><span>            }</span><br><span>@@ -92,6 +97,7 @@</span><br><span>                ctrl_resp := f_ctrl_get(pt, variable);</span><br><span>               if (not match(ctrl_resp, exp)) {</span><br><span>                     setverdict(fail, "Unexpected " & variable & ":" & ctrl_resp);</span><br><span style="color: hsl(120, 100%, 40%);">+                 mtc.stop;</span><br><span>            }</span><br><span>    }</span><br><span> </span><br><span>@@ -111,6 +117,7 @@</span><br><span>          ctrl_resp := f_ctrl_get(pt, variable);</span><br><span>               if (not match(str2int(ctrl_resp), exp)) {</span><br><span>                    setverdict(fail, variable & " value " & ctrl_resp & " didn't match ", exp);</span><br><span style="color: hsl(120, 100%, 40%);">+                       mtc.stop;</span><br><span>            }</span><br><span>    }</span><br><span> </span><br><span>diff --git a/library/Osmocom_Types.ttcn b/library/Osmocom_Types.ttcn</span><br><span>index d01fe37..6c1690a 100644</span><br><span>--- a/library/Osmocom_Types.ttcn</span><br><span>+++ b/library/Osmocom_Types.ttcn</span><br><span>@@ -96,7 +96,7 @@</span><br><span>               }</span><br><span>    }</span><br><span>    setverdict(fail, "Unsupported template", inp);</span><br><span style="color: hsl(0, 100%, 40%);">-        self.stop;</span><br><span style="color: hsl(120, 100%, 40%);">+    mtc.stop;</span><br><span> }</span><br><span> </span><br><span> type record of integer IntegerRecord;</span><br><span>diff --git a/library/Osmocom_VTY_Functions.ttcn b/library/Osmocom_VTY_Functions.ttcn</span><br><span>index c7f4441..6e4eb74 100644</span><br><span>--- a/library/Osmocom_VTY_Functions.ttcn</span><br><span>+++ b/library/Osmocom_VTY_Functions.ttcn</span><br><span>@@ -59,7 +59,7 @@</span><br><span>                         [] pt.receive(charstring:?) -> value rx { buf := buf & rx; repeat };</span><br><span>                  [] T.timeout {</span><br><span>                               setverdict(fail, "VTY Timeout for prompt");</span><br><span style="color: hsl(0, 100%, 40%);">-                           self.stop;</span><br><span style="color: hsl(120, 100%, 40%);">+                            mtc.stop;</span><br><span>                            };</span><br><span>           }</span><br><span>            T.stop;</span><br><span>@@ -132,7 +132,7 @@</span><br><span>        var charstring ret := f_vty_transceive_ret(pt, cmd);</span><br><span>         if (not match(ret, exp_ret)) {</span><br><span>               setverdict(fail, "Non-matching VTY response: ", ret);</span><br><span style="color: hsl(0, 100%, 40%);">-         self.stop;</span><br><span style="color: hsl(120, 100%, 40%);">+            mtc.stop;</span><br><span>    }</span><br><span> }</span><br><span> </span><br><span>@@ -140,7 +140,7 @@</span><br><span>     var charstring ret := f_vty_transceive_ret(pt, cmd);</span><br><span>         if (match(ret, exp_ret)) {</span><br><span>           setverdict(fail, "Unexpected matching VTY response: ", ret);</span><br><span style="color: hsl(0, 100%, 40%);">-          self.stop;</span><br><span style="color: hsl(120, 100%, 40%);">+            mtc.stop;</span><br><span>    }</span><br><span> }</span><br><span> </span><br><span>diff --git a/library/PCUIF_CodecPort.ttcn b/library/PCUIF_CodecPort.ttcn</span><br><span>index c642202..389c5ca 100644</span><br><span>--- a/library/PCUIF_CodecPort.ttcn</span><br><span>+++ b/library/PCUIF_CodecPort.ttcn</span><br><span>@@ -70,14 +70,14 @@</span><br><span>                        } else {</span><br><span>                             setverdict(fail, "Error connecting to PCU socket");</span><br><span>                        }</span><br><span style="color: hsl(0, 100%, 40%);">-                       self.stop;</span><br><span style="color: hsl(120, 100%, 40%);">+                    mtc.stop;</span><br><span>            } else {</span><br><span>                     return res.id;</span><br><span>               }</span><br><span>            }</span><br><span>    [] T.timeout {</span><br><span>               setverdict(fail, "Timeout connecting to PCU socket");</span><br><span style="color: hsl(0, 100%, 40%);">-         self.stop;</span><br><span style="color: hsl(120, 100%, 40%);">+            mtc.stop;</span><br><span>            }</span><br><span>    }</span><br><span>    return -23;</span><br><span>@@ -106,7 +106,7 @@</span><br><span>    [] pt.receive { repeat; }</span><br><span>    [] T.timeout {</span><br><span>               setverdict(fail, "Timeout waiting for PCU DATA.cnf");</span><br><span style="color: hsl(0, 100%, 40%);">-         self.stop;</span><br><span style="color: hsl(120, 100%, 40%);">+            mtc.stop;</span><br><span>            }</span><br><span>    }</span><br><span>    return 0;</span><br><span>diff --git a/library/RSL_Emulation.ttcn b/library/RSL_Emulation.ttcn</span><br><span>index 325f22e..3c035e9 100644</span><br><span>--- a/library/RSL_Emulation.ttcn</span><br><span>+++ b/library/RSL_Emulation.ttcn</span><br><span>@@ -90,11 +90,11 @@</span><br><span>                 }</span><br><span>            [] RSL.receive {</span><br><span>                     setverdict(fail, "Unexpected RSL message on DCHAN");</span><br><span style="color: hsl(0, 100%, 40%);">-                  self.stop;</span><br><span style="color: hsl(120, 100%, 40%);">+                    mtc.stop;</span><br><span>            }</span><br><span>            [] T.timeout {</span><br><span>                       setverdict(fail, "Timeout waiting for RSL on DCHAN");</span><br><span style="color: hsl(0, 100%, 40%);">-                 self.stop;</span><br><span style="color: hsl(120, 100%, 40%);">+                    mtc.stop;</span><br><span>            }</span><br><span>    }</span><br><span>    /* never reached */</span><br><span>@@ -361,7 +361,7 @@</span><br><span>                            cid := f_cid_by_ra_fn(ra, fn);</span><br><span>                               if (cid == -1) {</span><br><span>                                     setverdict(fail, "IMM ASS for unknown DChan");</span><br><span style="color: hsl(0, 100%, 40%);">-                                        self.stop;</span><br><span style="color: hsl(120, 100%, 40%);">+                                    mtc.stop;</span><br><span>                            }</span><br><span>                            /* update client with trx_nr */</span><br><span>                              ConnectionTable[cid].trx_nr := f_trx_by_streamId(rx_rsl.streamId);</span><br><span>@@ -421,12 +421,13 @@</span><br><span>                           CLIENT_PT.send(rx_rsl.rsl) to ConnectionTable[cid].comp_ref;</span><br><span>                         } else {</span><br><span>                             setverdict(fail, "RSL for unknown Dchan");</span><br><span style="color: hsl(120, 100%, 40%);">+                          mtc.stop;</span><br><span>                    }</span><br><span>            }</span><br><span> </span><br><span>                [not dchan_suspended] IPA_PT.receive {</span><br><span>                       setverdict(fail, "Received unknown primitive from IPA");</span><br><span style="color: hsl(0, 100%, 40%);">-                      self.stop;</span><br><span style="color: hsl(120, 100%, 40%);">+                    mtc.stop;</span><br><span>            }</span><br><span> </span><br><span>                [bts_role] CLIENT_PT.receive(RSLDC_ChanRqd:?) -> value chan_rqd sender vc_conn {</span><br><span>diff --git a/library/RTP_Emulation.ttcn b/library/RTP_Emulation.ttcn</span><br><span>index 475b478..71cd8db 100644</span><br><span>--- a/library/RTP_Emulation.ttcn</span><br><span>+++ b/library/RTP_Emulation.ttcn</span><br><span>@@ -303,7 +303,7 @@</span><br><span>                                                               g_local_port, {udp:={}});</span><br><span>                    if (not ispresent(res.connId)) {</span><br><span>                             setverdict(fail, "Could not listen on RTP socket, check your configuration");</span><br><span style="color: hsl(0, 100%, 40%);">-                         self.stop;</span><br><span style="color: hsl(120, 100%, 40%);">+                            mtc.stop;</span><br><span>                    }</span><br><span>                    g_rtp_conn_id := res.connId;</span><br><span>                         tr_rtp.connId := g_rtp_conn_id;</span><br><span>@@ -311,7 +311,7 @@</span><br><span>                                                                g_local_port+1, {udp:={}});</span><br><span>                  if (not ispresent(res.connId)) {</span><br><span>                             setverdict(fail, "Could not listen on RTCP socket, check your configuration");</span><br><span style="color: hsl(0, 100%, 40%);">-                                self.stop;</span><br><span style="color: hsl(120, 100%, 40%);">+                            mtc.stop;</span><br><span>                    }</span><br><span>                    g_rtcp_conn_id := res.connId;</span><br><span>                        tr_rtcp.connId := g_rtcp_conn_id;</span><br><span>@@ -329,7 +329,7 @@</span><br><span>                                                              g_rtp_conn_id, {udp:={}});</span><br><span>                   if (not ispresent(res.connId)) {</span><br><span>                             setverdict(fail, "Could not connect to RTP socket, check your configuration");</span><br><span style="color: hsl(0, 100%, 40%);">-                                self.stop;</span><br><span style="color: hsl(120, 100%, 40%);">+                            mtc.stop;</span><br><span>                    }</span><br><span>                    res := RTP_CodecPort_CtrlFunct.f_IPL4_connect(RTCP, g_remote_host,</span><br><span>                                                           g_remote_port+1,</span><br><span>@@ -337,7 +337,7 @@</span><br><span>                                                               g_rtcp_conn_id, {udp:={}});</span><br><span>                  if (not ispresent(res.connId)) {</span><br><span>                             setverdict(fail, "Could not connect to RTCP socket, check your configuration");</span><br><span style="color: hsl(0, 100%, 40%);">-                               self.stop;</span><br><span style="color: hsl(120, 100%, 40%);">+                            mtc.stop;</span><br><span>                    }</span><br><span>                    CTRL.reply(RTPEM_connect:{g_remote_host, g_remote_port});</span><br><span>            }</span><br><span>@@ -426,9 +426,11 @@</span><br><span>             /* fail on any unexpected messages */</span><br><span>                [] RTP.receive {</span><br><span>                     setverdict(fail, "Received unexpected type from RTP");</span><br><span style="color: hsl(120, 100%, 40%);">+                      mtc.stop;</span><br><span>            }</span><br><span>            [] RTCP.receive {</span><br><span>                    setverdict(fail, "Received unexpected type from RTCP");</span><br><span style="color: hsl(120, 100%, 40%);">+                     mtc.stop;</span><br><span>            }</span><br><span>    }</span><br><span>    }</span><br><span>diff --git a/library/SIP_Emulation.ttcn b/library/SIP_Emulation.ttcn</span><br><span>index 3957b8f..98f7371 100644</span><br><span>--- a/library/SIP_Emulation.ttcn</span><br><span>+++ b/library/SIP_Emulation.ttcn</span><br><span>@@ -155,7 +155,7 @@</span><br><span>                 }</span><br><span>    }</span><br><span>    setverdict(fail, "SIP Call table not found by SIP Call ID ", call_id);</span><br><span style="color: hsl(0, 100%, 40%);">-        self.stop;</span><br><span style="color: hsl(120, 100%, 40%);">+    mtc.stop;</span><br><span> }</span><br><span> </span><br><span> /* resolve connection ID by component reference */</span><br><span>@@ -167,7 +167,7 @@</span><br><span>               }</span><br><span>    }</span><br><span>    setverdict(fail, "SIP Call table not found by component ", client);</span><br><span style="color: hsl(0, 100%, 40%);">-   self.stop;</span><br><span style="color: hsl(120, 100%, 40%);">+    mtc.stop;</span><br><span> }</span><br><span> </span><br><span> private function f_expect_table_init()</span><br><span>@@ -196,8 +196,7 @@</span><br><span>                   return;</span><br><span>              }</span><br><span>    }</span><br><span style="color: hsl(0, 100%, 40%);">-       setverdict(fail, "SIP Call table full");</span><br><span style="color: hsl(0, 100%, 40%);">-      self.stop;</span><br><span style="color: hsl(120, 100%, 40%);">+    testcase.stop("SIP Call table full");</span><br><span> }</span><br><span> </span><br><span> private function f_call_table_del(CallidString call_id)</span><br><span>@@ -211,7 +210,7 @@</span><br><span>            }</span><br><span>    }</span><br><span>    setverdict(fail, "SIP Call table attempt to delete non-existant ", call_id);</span><br><span style="color: hsl(0, 100%, 40%);">-  self.stop;</span><br><span style="color: hsl(120, 100%, 40%);">+    mtc.stop;</span><br><span> }</span><br><span> </span><br><span> /* call-back type, to be provided by specific implementation; called when new call connection</span><br><span>@@ -270,7 +269,7 @@</span><br><span>                            CLIENT.send(sip_req) to vc_conn;</span><br><span>                     } else {</span><br><span>                             setverdict(fail, "SIP Request for unknown call ", call_id);</span><br><span style="color: hsl(0, 100%, 40%);">-                           self.stop;</span><br><span style="color: hsl(120, 100%, 40%);">+                            mtc.stop;</span><br><span>                    }</span><br><span>                    }</span><br><span>            /* SIP response was received on SIP socket/port */</span><br><span>@@ -281,7 +280,7 @@</span><br><span>                             CLIENT.send(sip_resp) to vc_conn;</span><br><span>                    } else {</span><br><span>                             setverdict(fail, "SIP Response for unknown call ", call_id);</span><br><span style="color: hsl(0, 100%, 40%);">-                          self.stop;</span><br><span style="color: hsl(120, 100%, 40%);">+                            mtc.stop;</span><br><span>                    }</span><br><span>                    }</span><br><span> </span><br><span>@@ -344,6 +343,7 @@</span><br><span> </span><br><span>      if (sip_req.requestLine.method != INVITE_E) {</span><br><span>                setverdict(fail, "SIP ExpectedCreateCallback needs INVITE");</span><br><span style="color: hsl(120, 100%, 40%);">+                mtc.stop</span><br><span>             return ret;</span><br><span>  }</span><br><span>    sip_to := sip_req.msgHeader.toField.addressField.nameAddr.addrSpec;</span><br><span>@@ -378,6 +378,7 @@</span><br><span>    }</span><br><span> </span><br><span>        setverdict(fail, "Couldn't find SipExpect for incoming call ", sip_to);</span><br><span style="color: hsl(120, 100%, 40%);">+ mtc.stop</span><br><span>     return ret;</span><br><span> }</span><br><span> </span><br><span>@@ -393,7 +394,7 @@</span><br><span>                   return;</span><br><span>              }</span><br><span>    }</span><br><span style="color: hsl(0, 100%, 40%);">-       setverdict(fail, "No space left in SipExpectTable");</span><br><span style="color: hsl(120, 100%, 40%);">+        testcase.stop("No space left in SipExpectTable");</span><br><span> }</span><br><span> </span><br><span> /* client/conn_hdlr side function to use procedure port to create expect in emulation */</span><br><span>diff --git a/library/SMPP_Emulation.ttcn b/library/SMPP_Emulation.ttcn</span><br><span>index 27876dc..6dc78e9 100644</span><br><span>--- a/library/SMPP_Emulation.ttcn</span><br><span>+++ b/library/SMPP_Emulation.ttcn</span><br><span>@@ -88,7 +88,7 @@</span><br><span>                }</span><br><span>    }</span><br><span>    setverdict(fail, "No componten for SMPP TID ", tid);</span><br><span style="color: hsl(0, 100%, 40%);">-  self.stop;</span><br><span style="color: hsl(120, 100%, 40%);">+    mtc.stop;</span><br><span> }</span><br><span> </span><br><span> </span><br><span>@@ -109,8 +109,7 @@</span><br><span>                         return;</span><br><span>              }</span><br><span>    }</span><br><span style="color: hsl(0, 100%, 40%);">-       setverdict(fail, "SMPP Trans table full!");</span><br><span style="color: hsl(0, 100%, 40%);">-   self.stop;</span><br><span style="color: hsl(120, 100%, 40%);">+    testcase.stop("SMPP Trans table full!");</span><br><span> }</span><br><span> </span><br><span> private function f_trans_table_del(uint32_t trans_id)</span><br><span>@@ -123,7 +122,7 @@</span><br><span>           }</span><br><span>    }</span><br><span>    setverdict(fail, "SMPP Trans table attempt to delete non-existant ", trans_id);</span><br><span style="color: hsl(0, 100%, 40%);">-       self.stop;</span><br><span style="color: hsl(120, 100%, 40%);">+    mtc.stop;</span><br><span> }</span><br><span> </span><br><span> </span><br><span>@@ -136,7 +135,7 @@</span><br><span>                                                         local_host, local_port, 0, { tcp :={} });</span><br><span>    if (not ispresent(res.connId)) {</span><br><span>             setverdict(fail, "Could not connect to SMPP port, check your configuration");</span><br><span style="color: hsl(0, 100%, 40%);">-         self.stop;</span><br><span style="color: hsl(120, 100%, 40%);">+            mtc.stop;</span><br><span>    }</span><br><span>    g_smpp_conn_id := res.connId;</span><br><span> }</span><br><span>@@ -187,7 +186,7 @@</span><br><span>     [] SMPP_PORT.receive(tr_SMPP_Recv(g_smpp_conn_id, pdu)) { }</span><br><span>  [] T_wait.timeout {</span><br><span>          setverdict(fail, "Timeout waiting for ", pdu);</span><br><span style="color: hsl(0, 100%, 40%);">-                self.stop;</span><br><span style="color: hsl(120, 100%, 40%);">+            mtc.stop;</span><br><span>            }</span><br><span>    }</span><br><span> }</span><br><span>@@ -211,7 +210,7 @@</span><br><span>                 }</span><br><span>    [] SMPP_PORT.receive {</span><br><span>               setverdict(fail, "Unexpected SMPP from peer");</span><br><span style="color: hsl(0, 100%, 40%);">-                self.stop;</span><br><span style="color: hsl(120, 100%, 40%);">+            mtc.stop;</span><br><span>            }</span><br><span> }</span><br><span> </span><br><span>@@ -371,8 +370,7 @@</span><br><span>                     return;</span><br><span>              }</span><br><span>    }</span><br><span style="color: hsl(0, 100%, 40%);">-       setverdict(fail, "No space left in SmppExpectTable");</span><br><span style="color: hsl(0, 100%, 40%);">- self.stop;</span><br><span style="color: hsl(120, 100%, 40%);">+    testcase.stop("No space left in SmppExpectTable");</span><br><span> }</span><br><span> </span><br><span> private function f_exp_lookup(SMPP_TON ton, SMPP_NPI npi, charstring dst)</span><br><span>diff --git a/library/TRXC_CodecPort.ttcn b/library/TRXC_CodecPort.ttcn</span><br><span>index 774b674..09b2977 100644</span><br><span>--- a/library/TRXC_CodecPort.ttcn</span><br><span>+++ b/library/TRXC_CodecPort.ttcn</span><br><span>@@ -81,6 +81,7 @@</span><br><span>              }</span><br><span>    [] T.timeout {</span><br><span>               setverdict(fail, "Timeout waiting for ", tr, " on ", pt);</span><br><span style="color: hsl(120, 100%, 40%);">+         mtc.stop;</span><br><span>            }</span><br><span>    }</span><br><span>    return rf.msg;</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/9905">change 9905</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/9905"/><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-MessageType: newchange </div>
<div style="display:none"> Gerrit-Change-Id: Idc6819aaf0b01e70c38fad828dd44dcec6bdd778 </div>
<div style="display:none"> Gerrit-Change-Number: 9905 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: daniel <dwillmann@sysmocom.de> </div>