cbc: Enable MMEs and BSCs selectively

Let's only create BSC handlers (no MM handlers) in tests validating CBSP
specific features.
A new test is added to specifically validate scenarios with both an MME
and BSC attached to the CBC.

Change-Id: I79ee41f183ef49e9fd606d2a3efa2767628bf142
diff --git a/cbc/CBC_Tests.ttcn b/cbc/CBC_Tests.ttcn
index 5240d85..9c9c644 100644
--- a/cbc/CBC_Tests.ttcn
+++ b/cbc/CBC_Tests.ttcn
@@ -135,7 +135,7 @@
 	g_vc_conn_MME[idx].start(f_MME_ConnHdlr_main(id, pars));
 }
 
-private function f_init(integer num_bsc := 1, integer num_mme := 1) runs on test_CT {
+private function f_init(integer num_bsc := 0, integer num_mme := 0) runs on test_CT {
 	f_http_init(mp_cbc_host, mp_cbc_ecbe_port);
 
 	g_num_bsc := num_bsc;
@@ -168,7 +168,7 @@
 }
 testcase TC_rx_keepalive() runs on test_CT {
 
-	f_init();
+	f_init(num_bsc := 1);
 	g_pars_BSC[0].start_fn := refers(f_bsc_TC_rx_keepalive);
 	f_start();
 	f_shutdown_helper();
@@ -191,7 +191,7 @@
 	CBSP[0].receive(PortEvent:{connClosed:=?})
 }
 testcase TC_rx_keepalive_timeout() runs on test_CT {
-	f_init();
+	f_init(num_bsc := 1);
 	g_pars_BSC[0].start_fn := refers(f_bsc_TC_rx_keepalive_timeout);
 	f_start();
 	f_shutdown_helper();
@@ -220,7 +220,7 @@
 		}
 	};
 
-	f_init();
+	f_init(num_bsc := 1);
 	g_pars_BSC[0].exp_cbs_msg := msg;
 	g_pars_BSC[0].start_fn := refers(f_bsc_TC_write_replace);
 	f_start();
@@ -330,7 +330,7 @@
 
 /* specify a variety of different Cell Identifier formats to extend test coverage */
 testcase TC_ecbe_create_delete_cgi() runs on test_CT {
-	f_init();
+	f_init(num_bsc := 1);
 	var template (value) BSSMAP_FIELD_CellIdentificationList cell_list_success;
 	var template (value) CBS_Message msg := t_CBSmsg(43, 16752);
 
@@ -342,14 +342,12 @@
 	g_pars_BSC[0].start_fn := refers(f_bsc_create_and_delete);
 	g_pars_BSC[0].exp_cbs_msg := valueof(msg);
 	g_pars_BSC[0].cell_list_success := valueof(cell_list_success);
-	g_pars_MME[0].start_fn := refers(f_mme_create_and_delete);
-	g_pars_MME[0].exp_cbs_msg := valueof(msg);
 	f_start();
 	f_create_and_delete(valueof(msg));
 	f_shutdown_helper();
 }
 testcase TC_ecbe_create_delete_lac_ci() runs on test_CT {
-	f_init();
+	f_init(num_bsc := 1);
 	var template (value) BSSMAP_FIELD_CellIdentificationList cell_list_success;
 	var template (value) CBS_Message msg := t_CBSmsg(44, 16752);
 	cell_list_success := ts_BSSMAP_CIL_LAC_CI({
@@ -360,14 +358,12 @@
 	g_pars_BSC[0].start_fn := refers(f_bsc_create_and_delete);
 	g_pars_BSC[0].exp_cbs_msg := valueof(msg);
 	g_pars_BSC[0].cell_list_success := valueof(cell_list_success);
-	g_pars_MME[0].start_fn := refers(f_mme_create_and_delete);
-	g_pars_MME[0].exp_cbs_msg := valueof(msg);
 	f_start();
 	f_create_and_delete(valueof(msg));
 	f_shutdown_helper();
 }
 testcase TC_ecbe_create_delete_lac() runs on test_CT {
-	f_init();
+	f_init(num_bsc := 1);
 	var template (value) BSSMAP_FIELD_CellIdentificationList cell_list_success;
 	var template (value) CBS_Message msg := t_CBSmsg(45, 16752);
 	cell_list_success := ts_BSSMAP_CIL_LAC({
@@ -378,14 +374,12 @@
 	g_pars_BSC[0].start_fn := refers(f_bsc_create_and_delete);
 	g_pars_BSC[0].exp_cbs_msg := valueof(msg);
 	g_pars_BSC[0].cell_list_success := valueof(cell_list_success);
-	g_pars_MME[0].start_fn := refers(f_mme_create_and_delete);
-	g_pars_MME[0].exp_cbs_msg := valueof(msg);
 	f_start();
 	f_create_and_delete(valueof(msg));
 	f_shutdown_helper();
 }
 testcase TC_ecbe_create_delete_ci() runs on test_CT {
-	f_init();
+	f_init(num_bsc := 1);
 	var template (value) BSSMAP_FIELD_CellIdentificationList cell_list_success;
 	var template (value) CBS_Message msg := t_CBSmsg(46, 16752);
 	cell_list_success := ts_BSSMAP_CIL_CI({
@@ -396,14 +390,12 @@
 	g_pars_BSC[0].start_fn := refers(f_bsc_create_and_delete);
 	g_pars_BSC[0].exp_cbs_msg := valueof(msg);
 	g_pars_BSC[0].cell_list_success := valueof(cell_list_success);
-	g_pars_MME[0].start_fn := refers(f_mme_create_and_delete);
-	g_pars_MME[0].exp_cbs_msg := valueof(msg);
 	f_start();
 	f_create_and_delete(valueof(msg));
 	f_shutdown_helper();
 }
 testcase TC_ecbe_create_delete_lai() runs on test_CT {
-	f_init();
+	f_init(num_bsc := 1);
 	var template (value) BSSMAP_FIELD_CellIdentificationList cell_list_success;
 	var template (value) CBS_Message msg := t_CBSmsg(47, 16752);
 	cell_list_success := ts_BSSMAP_CIL_LAI({
@@ -414,6 +406,25 @@
 	g_pars_BSC[0].start_fn := refers(f_bsc_create_and_delete);
 	g_pars_BSC[0].exp_cbs_msg := valueof(msg);
 	g_pars_BSC[0].cell_list_success := valueof(cell_list_success);
+	f_start();
+	f_create_and_delete(valueof(msg));
+	f_shutdown_helper();
+}
+
+/* Create and delete message with both BSC and MME available */
+testcase TC_ecbe_create_delete_bsc_and_mme() runs on test_CT {
+	f_init(num_bsc := 1, num_mme := 1);
+	var template (value) BSSMAP_FIELD_CellIdentificationList cell_list_success;
+	var template (value) CBS_Message msg := t_CBSmsg(43, 16752);
+
+	cell_list_success := ts_BSSMAP_CIL_CGI({
+		ts_BSSMAP_CI_CGI('901'H, '70'H, 23, 42),
+		ts_BSSMAP_CI_CGI('901'H, '70'H, 24, 42),
+		ts_BSSMAP_CI_CGI('901'H, '70'H, 24, 43)
+	});
+	g_pars_BSC[0].start_fn := refers(f_bsc_create_and_delete);
+	g_pars_BSC[0].exp_cbs_msg := valueof(msg);
+	g_pars_BSC[0].cell_list_success := valueof(cell_list_success);
 	g_pars_MME[0].start_fn := refers(f_mme_create_and_delete);
 	g_pars_MME[0].exp_cbs_msg := valueof(msg);
 	f_start();
@@ -429,6 +440,7 @@
 	execute( TC_ecbe_create_delete_lac() );
 	execute( TC_ecbe_create_delete_ci() );
 	execute( TC_ecbe_create_delete_lai() );
+	execute( TC_ecbe_create_delete_bsc_and_mme() );
 }
 
 }