[MERGED] osmo-ttcn3-hacks[master]: bsc: reduce code duplication; add new test case on too short...

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
Wed Jan 31 23:36:07 UTC 2018


Harald Welte has submitted this change and it was merged.

Change subject: bsc: reduce code duplication; add new test case on too short messages
......................................................................


bsc: reduce code duplication; add new test case on too short messages

Change-Id: I8232ee58c14a4358a01b5428ff2b4e559491b185
---
M bsc/BSC_Tests.ttcn
M library/L3_Templates.ttcn
2 files changed, 78 insertions(+), 45 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 08a5510..dee41d2 100644
--- a/bsc/BSC_Tests.ttcn
+++ b/bsc/BSC_Tests.ttcn
@@ -38,6 +38,7 @@
 import from Osmocom_CTRL_Adapter all;
 
 import from MobileL3_CommonIE_Types all;
+import from MobileL3_Types all;
 import from L3_Templates all;
 import from GSM_RR_Types all;
 
@@ -1423,22 +1424,24 @@
 	vc_conn.done;
 }
 
-/* unsolicited ASSIGNMENT FAIL (without ASSIGN) from MS shouldn't bring BSC down */
-private function f_tc_unsol_ass_fail(charstring id) runs on MSC_ConnHdlr {
+private function f_est_single_l3(template PDU_ML3_MS_NW l3) runs on MSC_ConnHdlr {
 	var TestHdlrParams pars := valueof(t_def_TestHdlrPars);
 	f_create_chan_and_exp(pars);
 	/* we should now have a COMPL_L3 at the MSC */
 	BSSAP.receive(tr_BSSMAP_ComplL3);
 
-	f_rsl_send_l3(ts_RRM_AssignmentFailure('00'O));
-	timer T := 5.0;
+	/* send the single message we want to send */
+	f_rsl_send_l3(l3);
+}
+
+private function f_bssap_expect_nothing(float sec := 5.00) runs on MSC_ConnHdlr {
+	timer T := sec;
+	var PDU_BSSAP bssap;
 	T.start;
 	alt {
-	[] BSSAP.receive(tr_BSSMAP_AssignmentFail) {
-		setverdict(fail, "Unexpeted BSSMAP Assignment Failure");
-		}
-	[] BSSAP.receive(tr_BSSMAP_ClearRequest) {
-		setverdict(fail, "Unexpected BSSMAP Clear Requst");
+	[] BSSAP.receive(PDU_BSSAP:?) -> value bssap {
+		setverdict(fail, "Unexpected BSSMAP ", bssap);
+		self.stop;
 		}
 	[] T.timeout {
 		setverdict(pass);
@@ -1446,6 +1449,11 @@
 	}
 }
 
+/* unsolicited ASSIGNMENT FAIL (without ASSIGN) from MS shouldn't bring BSC down */
+private function f_tc_unsol_ass_fail(charstring id) runs on MSC_ConnHdlr {
+	f_est_single_l3(ts_RRM_AssignmentFailure('00'O));
+	f_bssap_expect_nothing();
+}
 testcase TC_unsol_ass_fail() runs on test_CT {
 	var MSC_ConnHdlr vc_conn;
 	f_init(1, true);
@@ -1457,25 +1465,8 @@
 
 /* unsolicited ASSIGNMENT COMPLETE (without ASSIGN) from MS shouldn't bring BSC down */
 private function f_tc_unsol_ass_compl(charstring id) runs on MSC_ConnHdlr {
-	var TestHdlrParams pars := valueof(t_def_TestHdlrPars);
-	f_create_chan_and_exp(pars);
-	/* we should now have a COMPL_L3 at the MSC */
-	BSSAP.receive(tr_BSSMAP_ComplL3);
-
-	f_rsl_send_l3(ts_RRM_AssignmentComplete('00'O));
-	timer T := 5.0;
-	T.start;
-	alt {
-	[] BSSAP.receive(tr_BSSMAP_AssignmentComplete) {
-		setverdict(fail, "Unexpeted BSSMAP Assignment Complet");
-		}
-	[] BSSAP.receive {
-		setverdict(fail, "Unexpected BSSAP");
-		}
-	[] T.timeout {
-		setverdict(pass);
-		}
-	}
+	f_est_single_l3(ts_RRM_AssignmentComplete('00'O));
+	f_bssap_expect_nothing();
 }
 testcase TC_unsol_ass_compl() runs on test_CT {
 	var MSC_ConnHdlr vc_conn;
@@ -1488,29 +1479,34 @@
 
 /* unsolicited HANDOVER FAIL (without ASSIGN) from MS shouldn't bring BSC down */
 private function f_tc_unsol_ho_fail(charstring id) runs on MSC_ConnHdlr {
-	var TestHdlrParams pars := valueof(t_def_TestHdlrPars);
-	f_create_chan_and_exp(pars);
-	/* we should now have a COMPL_L3 at the MSC */
-	BSSAP.receive(tr_BSSMAP_ComplL3);
-
-	f_rsl_send_l3(ts_RRM_HandoverFailure('00'O));
-	timer T := 5.0;
-	T.start;
-	alt {
-	[] BSSAP.receive {
-		setverdict(fail, "Unexpected BSSMAP");
-		}
-	[] T.timeout {
-		setverdict(pass);
-		}
-	}
+	f_est_single_l3(ts_RRM_HandoverFailure('00'O));
+	f_bssap_expect_nothing();
 }
-
 testcase TC_unsol_ho_fail() runs on test_CT {
 	var MSC_ConnHdlr vc_conn;
 	f_init(1, true);
 	f_sleep(1.0);
 	vc_conn := f_start_handler(refers(f_tc_unsol_ho_fail), testcasename());
+	vc_conn.done;
+}
+
+
+/* short message from MS should be ignored */
+private function f_tc_err_82_short_msg(charstring id) runs on MSC_ConnHdlr {
+	var TestHdlrParams pars := valueof(t_def_TestHdlrPars);
+	f_create_chan_and_exp(pars);
+	/* we should now have a COMPL_L3 at the MSC */
+	BSSAP.receive(tr_BSSMAP_ComplL3);
+
+	/* send short message */
+	RSL.send(ts_RSL_DATA_IND(g_chan_nr, valueof(ts_RslLinkID_DCCH(0)), ''O));
+	f_bssap_expect_nothing();
+}
+testcase TC_err_82_short_msg() runs on test_CT {
+	var MSC_ConnHdlr vc_conn;
+	f_init(1, true);
+	f_sleep(1.0);
+	vc_conn := f_start_handler(refers(f_tc_err_82_short_msg), testcasename());
 	vc_conn.done;
 }
 
@@ -1582,6 +1578,7 @@
 	execute( TC_unsol_ass_fail() );
 	execute( TC_unsol_ass_compl() );
 	execute( TC_unsol_ho_fail() );
+	execute( TC_err_82_short_msg() );
 }
 
 }
diff --git a/library/L3_Templates.ttcn b/library/L3_Templates.ttcn
index 948565d..47e1f62 100644
--- a/library/L3_Templates.ttcn
+++ b/library/L3_Templates.ttcn
@@ -349,6 +349,42 @@
 	}
 }
 
+template (value) PDU_ML3_MS_NW ts_RRM_UL_REL(OCT1 cause) := {
+	discriminator := '0110'B,
+	tiOrSkip := {
+		skipIndicator := '0000'B
+	},
+	msgs := {
+		rrm := {
+			uplinkRelease := {
+				messageType := '00001110'B,
+				rR_Cause := {
+					valuePart := cause
+				}
+			}
+		}
+	}
+}
+
+template PDU_ML3_MS_NW tr_RRM_RR_STATUS(template OCT1 cause := ?) := {
+	discriminator := '0110'B,
+	tiOrSkip := {
+		skipIndicator := '0000'B
+	},
+	msgs := {
+		rrm := {
+			rR_Status := {
+				messageType := '00010010'B,
+				rR_Cause := {
+					valuePart := cause
+				}
+			}
+		}
+	}
+}
+
+
+
 template PDU_ML3_MS_NW ts_ML3_MO := {
 	discriminator := '0000'B,
 	tiOrSkip := {

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

Gerrit-MessageType: merged
Gerrit-Change-Id: I8232ee58c14a4358a01b5428ff2b4e559491b185
Gerrit-PatchSet: 1
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