[MERGED] osmo-ttcn3-hacks[master]: bsc: reduce code duplication by introducing f_expect_chan_rel()

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/.

Harald Welte gerrit-no-reply at lists.osmocom.org
Mon Jan 29 21:35:15 UTC 2018


Harald Welte has submitted this change and it was merged.

Change subject: bsc: reduce code duplication by introducing f_expect_chan_rel()
......................................................................


bsc: reduce code duplication by introducing f_expect_chan_rel()

The handling of channel release is copy+pasted, let's introduce
a shared function.

Change-Id: If74b0838187f60004b7daf6176db259af511bf87
---
M bsc/BSC_Tests.ttcn
1 file changed, 37 insertions(+), 74 deletions(-)

Approvals:
  Harald Welte: Looks good to me, approved
  Jenkins Builder: Verified



diff --git a/bsc/BSC_Tests.ttcn b/bsc/BSC_Tests.ttcn
index 87150db..c7b5a8f 100644
--- a/bsc/BSC_Tests.ttcn
+++ b/bsc/BSC_Tests.ttcn
@@ -606,11 +606,44 @@
 	setverdict(pass);
 }
 
+function f_expect_chan_rel(integer bts_nr, RslChannelNr rsl_chan_nr, boolean flush := true,
+			   boolean handle_rll_rel := true) runs on test_CT {
+
+	var RslLinkId main_dcch := valueof(ts_RslLinkID_DCCH(0));
+	if (flush) {
+		/* Clear the queue, it might still contain stuff like IMMEDIATE ASSIGN */
+		IPA_RSL[bts_nr].clear;
+	}
+	alt {
+	/* ignore DEACTIVATE SACCH (if any) */
+	[] IPA_RSL[bts_nr].receive(tr_ASP_RSL_UD(IPAC_PROTO_RSL_TRX0,
+					tr_RSL_DEACT_SACCH(rsl_chan_nr))) {
+		repeat;
+	}
+	/* acknowledge RLL release (if any)*/
+	[handle_rll_rel] IPA_RSL[bts_nr].receive(tr_ASP_RSL_UD(IPAC_PROTO_RSL_TRX0,
+					tr_RSL_REL_REQ(rsl_chan_nr, ?))) {
+		/* FIXME: Why are we getting this for LinkID SACCH? */
+		f_ipa_tx(0, ts_RSL_REL_CONF(rsl_chan_nr, main_dcch));
+		repeat;
+	}
+	/* Expect RF channel release from BSC on Abis */
+	[] IPA_RSL[bts_nr].receive(tr_ASP_RSL_UD(IPAC_PROTO_RSL_TRX0,
+						tr_RSL_MsgTypeD(RSL_MT_RF_CHAN_REL))) {
+		/* respond with CHAN REL ACK */
+		f_ipa_tx(0, ts_RSL_RF_CHAN_REL_ACK(rsl_chan_nr));
+		}
+	/* ignore any user data */
+	[] IPA_RSL[bts_nr].receive(tr_ASP_RSL_UD(IPAC_PROTO_RSL_TRX0, tr_RSL_MsgTypeR(?))) {
+		repeat;
+		}
+	}
+}
+
 /* Test behavior of channel release after hard Clear Command from MSC */
 testcase TC_chan_rel_hard_clear() runs on test_CT {
 	var BSSAP_N_DATA_ind rx_di;
 	var DchanTuple dt;
-	var RslLinkId main_dcch := valueof(ts_RslLinkID_DCCH(0));
 
 	f_init(1);
 	f_bssap_reset();
@@ -627,36 +660,13 @@
 		BSSAP.send(ts_BSSAP_DISC_req(dt.sccp_conn_id, 0));
 	}
 
-	/* Clear the queue, it might still contain stuff like IMMEDIATE ASSIGN */
-	IPA_RSL[0].clear;
-	alt {
-	/* ignore DEACTIVATE SACCH (if any) */
-	[] IPA_RSL[0].receive(tr_ASP_RSL_UD(IPAC_PROTO_RSL_TRX0,
-					tr_RSL_DEACT_SACCH(dt.rsl_chan_nr))) {
-		repeat;
-	}
-	/* acknowledge RLL release (if any)*/
-	[] IPA_RSL[0].receive(tr_ASP_RSL_UD(IPAC_PROTO_RSL_TRX0,
-					tr_RSL_REL_REQ(dt.rsl_chan_nr, ?))) {
-		/* FIXME: Why are we getting this for LinkID SACCH? */
-		f_ipa_tx(0, ts_RSL_REL_CONF(dt.rsl_chan_nr, main_dcch));
-		repeat;
-	}
-	/* Expect RF channel release from BSC on Abis */
-	[] IPA_RSL[0].receive(tr_ASP_RSL_UD(IPAC_PROTO_RSL_TRX0,
-						tr_RSL_MsgTypeD(RSL_MT_RF_CHAN_REL))) {
-		/* respond with CHAN REL ACK */
-		f_ipa_tx(0, ts_RSL_RF_CHAN_REL_ACK(dt.rsl_chan_nr));
-		}
-	}
-
+	f_expect_chan_rel(0, dt.rsl_chan_nr);
 	setverdict(pass);
 }
 
 /* Test behavior of channel release after hard RLSD from MSC */
 testcase TC_chan_rel_hard_rlsd() runs on test_CT {
 	var DchanTuple dt;
-	var RslLinkId main_dcch := valueof(ts_RslLinkID_DCCH(0));
 
 	f_init(1);
 	f_bssap_reset();
@@ -666,36 +676,13 @@
 	/* release the SCCP connection */
 	BSSAP.send(ts_BSSAP_DISC_req(dt.sccp_conn_id, 0));
 
-	/* Clear the queue, it might still contain stuff like IMMEDIATE ASSIGN */
-	IPA_RSL[0].clear;
-	alt {
-	/* ignore DEACTIVATE SACCH (if any) */
-	[] IPA_RSL[0].receive(tr_ASP_RSL_UD(IPAC_PROTO_RSL_TRX0,
-					tr_RSL_DEACT_SACCH(dt.rsl_chan_nr))) {
-		repeat;
-	}
-	/* acknowledge RLL release (if any)*/
-	[] IPA_RSL[0].receive(tr_ASP_RSL_UD(IPAC_PROTO_RSL_TRX0,
-					tr_RSL_REL_REQ(dt.rsl_chan_nr, ?))) {
-		/* FIXME: Why are we getting this for LinkID SACCH? */
-		f_ipa_tx(0, ts_RSL_REL_CONF(dt.rsl_chan_nr, main_dcch));
-		repeat;
-	}
-	/* Expect RF channel release from BSC on Abis */
-	[] IPA_RSL[0].receive(tr_ASP_RSL_UD(IPAC_PROTO_RSL_TRX0,
-						tr_RSL_MsgTypeD(RSL_MT_RF_CHAN_REL))) {
-		/* respond with CHAN REL ACK */
-		f_ipa_tx(0, ts_RSL_RF_CHAN_REL_ACK(dt.rsl_chan_nr));
-		}
-	}
-
+	f_expect_chan_rel(0, dt.rsl_chan_nr);
 	setverdict(pass);
 }
 
 /* Test behavior of channel release after BSSMAP RESET from MSC */
 testcase TC_chan_rel_a_reset() runs on test_CT {
 	var DchanTuple dt;
-	var RslLinkId main_dcch := valueof(ts_RslLinkID_DCCH(0));
 
 	f_init(1);
 	f_bssap_reset();
@@ -712,31 +699,7 @@
 	[] BSSAP.receive(tr_BSSAP_DISC_ind(dt.sccp_conn_id, ?, ?)) { }
 	}
 
-	alt {
-	/* ignore DEACTIVATE SACCH (if any) */
-	[] IPA_RSL[0].receive(tr_ASP_RSL_UD(IPAC_PROTO_RSL_TRX0,
-					tr_RSL_DEACT_SACCH(dt.rsl_chan_nr))) {
-		repeat;
-	}
-	/* acknowledge RLL release (if any)*/
-	[] IPA_RSL[0].receive(tr_ASP_RSL_UD(IPAC_PROTO_RSL_TRX0,
-					tr_RSL_REL_REQ(dt.rsl_chan_nr, ?))) {
-		/* FIXME: Why are we getting this for LinkID SACCH? */
-		f_ipa_tx(0, ts_RSL_REL_CONF(dt.rsl_chan_nr, main_dcch));
-		repeat;
-	}
-	/* Expect RF channel release from BSC on Abis */
-	[] IPA_RSL[0].receive(tr_ASP_RSL_UD(IPAC_PROTO_RSL_TRX0,
-						tr_RSL_MsgTypeD(RSL_MT_RF_CHAN_REL))) {
-		/* respond with CHAN REL ACK */
-		f_ipa_tx(0, ts_RSL_RF_CHAN_REL_ACK(dt.rsl_chan_nr));
-		}
-	/* ignore any user data */
-	[] IPA_RSL[0].receive(tr_ASP_RSL_UD(IPAC_PROTO_RSL_TRX0, tr_RSL_MsgTypeR(?))) {
-		repeat;
-		}
-	}
-
+	f_expect_chan_rel(0, dt.rsl_chan_nr);
 	setverdict(pass);
 }
 

-- 
To view, visit https://gerrit.osmocom.org/6173
To unsubscribe, visit https://gerrit.osmocom.org/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: If74b0838187f60004b7daf6176db259af511bf87
Gerrit-PatchSet: 2
Gerrit-Project: osmo-ttcn3-hacks
Gerrit-Branch: master
Gerrit-Owner: Harald Welte <laforge at gnumonks.org>
Gerrit-Reviewer: Harald Welte <laforge at gnumonks.org>
Gerrit-Reviewer: Jenkins Builder



More information about the gerrit-log mailing list