Change in osmo-ttcn3-hacks[master]: library: Ensure setverdict(fail) is followed by mtc.stop

This is merely a historical archive of years 2008-2021, before the migration to mailman3.

A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/gerrit-log@lists.osmocom.org/.

daniel gerrit-no-reply at lists.osmocom.org
Tue Jul 24 10:05:35 UTC 2018


daniel has submitted this change and it was merged. ( https://gerrit.osmocom.org/9905 )

Change subject: library: Ensure setverdict(fail) is followed by mtc.stop
......................................................................

library: Ensure setverdict(fail) is followed by mtc.stop

This will prevent subsequent failures from overwriting the verdict so we
can easily see the root cause of the test failure.

Using testcase.stop instead for errors internal to our test
infrastructure to mark them as test errors instead of failed.

Change-Id: Idc6819aaf0b01e70c38fad828dd44dcec6bdd778
---
M library/BSSAP_Adapter.ttcn
M library/BSSGP_Emulation.ttcn
M library/BSSMAP_Emulation.ttcn
M library/GSM_Types.ttcn
M library/GSUP_Emulation.ttcn
M library/GTP_Emulation.ttcn
M library/GTP_Templates.ttcn
M library/IPA_Emulation.ttcnpp
M library/IuUP_Emulation.ttcn
M library/L1CTL_PortType.ttcn
M library/L3_Common.ttcn
M library/LAPDm_RAW_PT.ttcn
M library/MGCP_Emulation.ttcn
M library/MGCP_Templates.ttcn
M library/MNCC_Emulation.ttcn
M library/MNCC_Types.ttcn
M library/NS_Emulation.ttcn
M library/Osmocom_CTRL_Adapter.ttcn
M library/Osmocom_CTRL_Functions.ttcn
M library/Osmocom_Types.ttcn
M library/Osmocom_VTY_Functions.ttcn
M library/PCUIF_CodecPort.ttcn
M library/RSL_Emulation.ttcn
M library/RTP_Emulation.ttcn
M library/SIP_Emulation.ttcn
M library/SMPP_Emulation.ttcn
M library/TRXC_CodecPort.ttcn
27 files changed, 148 insertions(+), 148 deletions(-)

Approvals:
  Neels Hofmeyr: Looks good to me, approved
  Jenkins Builder: Verified



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

-- 
To view, visit https://gerrit.osmocom.org/9905
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings

Gerrit-Project: osmo-ttcn3-hacks
Gerrit-Branch: master
Gerrit-MessageType: merged
Gerrit-Change-Id: Idc6819aaf0b01e70c38fad828dd44dcec6bdd778
Gerrit-Change-Number: 9905
Gerrit-PatchSet: 3
Gerrit-Owner: daniel <dwillmann at sysmocom.de>
Gerrit-Reviewer: Harald Welte <laforge at gnumonks.org>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: Neels Hofmeyr <nhofmeyr at sysmocom.de>
Gerrit-Reviewer: Pau Espin Pedrol <pespin at sysmocom.de>
Gerrit-Reviewer: daniel <dwillmann at sysmocom.de>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20180724/09f4016d/attachment.htm>


More information about the gerrit-log mailing list