[MERGED] osmo-ttcn3-hacks[master]: BSC_Tests: Update readme + source code comments

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
Sun Dec 17 18:49:26 UTC 2017


Harald Welte has submitted this change and it was merged.

Change subject: BSC_Tests: Update readme + source code comments
......................................................................


BSC_Tests: Update readme + source code comments

Change-Id: I7b7d0e504e3e94077d674b464f39bd8851941922
---
M bsc/BSC_Tests.ttcn
M bsc/README.txt
2 files changed, 75 insertions(+), 5 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 c66dda7..0fec42b 100644
--- a/bsc/BSC_Tests.ttcn
+++ b/bsc/BSC_Tests.ttcn
@@ -1,5 +1,23 @@
 module BSC_Tests {
 
+/* Integration Tests for OsmoBSC
+ * (C) 2017 by Harald Welte <laforge at gnumonks.org>
+ * All rights reserved.
+ *
+ * Released under the terms of GNU General Public License, Version 2 or
+ * (at your option) any later version.
+ *
+ * This test suite tests OsmoBSC while emulating both multiple BTS + MS as
+ * well as the MSC. See README for more details.
+ *
+ * There are test cases that run in so-called 'handler mode' and test cases
+ * that run directly on top of the BSSAP and RSL CodecPorts.  The "handler mode"
+ * tests abstract the multiplexing/demultiplexing of multiple SCCP connections
+ * and/or RSL channels and are hence suitable for higher-level test cases, while
+ * the "raw" tests directly on top of the CodecPorts are more suitable for lower-
+ * level testing.
+ */
+
 import from General_Types all;
 import from Osmocom_Types all;
 import from GSM_Types all;
@@ -50,37 +68,57 @@
 }
 
 
-
+/* per-BTS state which we keep */
 type record BTS_State {
+	/* component reference to the IPA_Client component used for RSL */
 	IPA_Client rsl
 }
 
 type component test_CT extends BSSAP_Adapter_CT {
+	/* Array of per-BTS state */
 	var BTS_State bts[NUM_BTS];
+	/* array of per-BTS RSL test ports */
 	port IPA_RSL_PT IPA_RSL[NUM_BTS];
 
+	/* component reference to the IPA_Client component used for CTRL to BSC */
 	var IPA_Client ctrl;
+	/* test port for the CTRL interface of the BSC */
 	port IPA_CTRL_PT IPA_CTRL;
 
+	/* are we initialized yet */
 	var boolean g_initialized := false;
+
+	/* global test case guard timer */
 	timer T_guard := 30.0;
 
 }
 
 modulepar {
+	/* IP address at which the BSC can be reached */
 	charstring mp_bsc_ip := "127.0.0.1";
+	/* port number to which to establish the IPA RSL connections */
 	integer mp_bsc_rsl_port := 3003;
+	/* port number to which to establish the IPA CTRL connection */
 	integer mp_bsc_ctrl_port := 4249;
 }
 
 type record IPA_Client {
+	/* IPA Emulation component reference */
 	IPA_Emulation_CT vc_IPA,
+	/* Unit-ID and other CCM parameters to use for IPA client emulation */
 	IPA_CCM_Parameters ccm_pars,
+	/* String identifier for this IPA Client */
 	charstring id,
-
+	/* Associated RSL Emulation Component (if any). Only used in "Handler mode" */
 	RSL_Emulation_CT vc_RSL optional
 }
 
+/*! Start the IPA/RSL related bits for one IPA_Client.
+ *  \param clnt IPA_Client for which to establish
+ *  \param bsc_host IP address / hostname of the BSC
+ *  \param bsc_port TCP port number of the BSC
+ *  \param i number identifying this BTS
+ *  \param handler_mode Start an RSL_Emulation_CT component (true) or not (false) */
 function f_ipa_rsl_start(inout IPA_Client clnt, charstring bsc_host, PortNumber bsc_port, integer i,
 			 boolean handler_mode := false)
 runs on test_CT {
@@ -124,6 +162,7 @@
 	}
 }
 
+/*! Start the CTRL connection to the specified BSC IP+Port */
 function f_ipa_ctrl_start(inout IPA_Client clnt, charstring bsc_host, PortNumber bsc_port, integer i)
 runs on test_CT {
 	timer T := 10.0;
@@ -147,7 +186,7 @@
 	}
 }
 
-
+/* Wait for the OML connection to be brought up by the external osmo-bts-omldummy */
 function f_wait_oml(integer bts_nr, charstring status, float secs_max) runs on test_CT {
 	timer T := secs_max;
 	T.start;
@@ -168,12 +207,14 @@
 	}
 }
 
+/* sleep for given number of (fractional) seconds */
 function f_sleep(float seconds) {
 	timer T := seconds;
 	T.start;
 	T.timeout;
 }
 
+/* global altstep for global guard timer; also takes care of responding RESET witH RESET-ACK */
 altstep as_Tguard() runs on test_CT {
 	var BSSAP_N_UNITDATA_ind ud_ind;
 	[] T_guard.timeout { setverdict(fail, "Timeout of T_guard"); }
@@ -185,6 +226,9 @@
 		}
 }
 
+/* global initialization function
+ * \param nr_bts Number of BTSs we should start/bring up
+ * \param handler_mode Start an RSL_Emulation_CT component (true) or not (false) */
 function f_init(integer nr_bts := NUM_BTS, boolean handler_mode := false) runs on test_CT {
 	var integer i;
 
@@ -211,6 +255,7 @@
 	activate(as_Tguard());
 }
 
+/* expect to receive a RSL message matching a specified templaten on a given BTS / stream */
 function f_exp_ipa_rx(integer bts_nr, template RSL_Message t_rx, float t_secs := 2.0, IpaStreamId sid := IPAC_PROTO_RSL_TRX0)
 runs on test_CT return RSL_Message {
 	var ASP_RSL_Unitdata rx_rsl_ud;
@@ -230,6 +275,7 @@
 	return rx_rsl_ud.rsl;
 }
 
+/* helper function to transmit RSL on a given BTS/stream */
 function f_ipa_tx(integer bts_nr, template RSL_Message t_tx, IpaStreamId sid := IPAC_PROTO_RSL_TRX0)
 runs on test_CT {
 	IPA_RSL[bts_nr].send(ts_ASP_RSL_UD(sid, t_tx));
diff --git a/bsc/README.txt b/bsc/README.txt
index 52e212b..aa785ad 100644
--- a/bsc/README.txt
+++ b/bsc/README.txt
@@ -1,4 +1,24 @@
-Integration Tests for OsmoBSC which we can perform from TTCN-3
+Integration Tests for OsmoBSC
+-----------------------------
+
+This test suite tests OsmoBSC while emulating both multiple BTS + MS as
+well as the MSC.
+
+In terms of external entities, you will need to run
+* osmo-mgw in order to properly terminate the MGCP commands by the BSC
+* osmo-stp as STP between the simulated MSC and osmo-bsc
+* 3x osmo-bts-omldummy as this test suite only implements RSL and no OML
+
+The included jenkins.sh script, together with the Dockerfiles from
+http://git.osmocom.org/docker-playground/ can be used to run both the
+osmo-bsc-under-test as well as the extenal entities and the tester.
+
+
+Further Test Ideas
+------------------
+
+This is a random list of things about things possible to test.
+Asterisks '*' are TODO, while 'x' means already implemented.
 
 = exhaustion of resources
 
@@ -28,7 +48,7 @@
 * with no CIC and no AoIP
 * with IPv6 Address in AoIP
 * with LCLS information
-* supported/unsupported/invalid ciphers
+x supported/unsupported/invalid ciphers
 * supported/unsupported/invalid codecs
 * inconsistent channel type + codec + codec-list
 * on full BTS -> fail
@@ -85,3 +105,7 @@
 * changes in BCCH FILLING
 * changes in SACCH FILLING
 
+= dynamic TS switching
+
+* TBD
+

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

Gerrit-MessageType: merged
Gerrit-Change-Id: I7b7d0e504e3e94077d674b464f39bd8851941922
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