hnbgw: Test behaviour when CRCX times out

Change-Id: Iba219641498aeacbba742de926cd7f15e3fe9d06
Related: OS#5152
diff --git a/hnbgw/HNBGW_Tests.ttcn b/hnbgw/HNBGW_Tests.ttcn
index 314b0df..7b9a49c 100644
--- a/hnbgw/HNBGW_Tests.ttcn
+++ b/hnbgw/HNBGW_Tests.ttcn
@@ -979,6 +979,54 @@
 	vc_conn.done;
 }
 
+friend function f_tc_rab_assign_mgcp_to(charstring id, TestHdlrParams pars) runs on ConnHdlr {
+	var MgcpCommand mgcp_cmd;
+	var RANAP_PDU tx;
+	var template RAB_SetupOrModifyList rab_sml;
+	timer T := 15.0;
+
+	T.start;
+	f_init_handler(pars);
+	f_create_mgcp_expect(ExpectCriteria:{omit,omit,omit});
+
+	tx := f_build_initial_ue(g_pars);
+	f_iuh2iu_connect(tx);
+
+
+	/* Send RAB Assignment Request */
+	rab_sml := ts_RAB_SML(t_RAB_id(23), f_ts_RAB_TLA(pars.mgcp_pars.cn_rtp_ip), t_RAB_binding_port(pars.mgcp_pars.cn_rtp_port));
+	tx := valueof(ts_RANAP_RabAssReq(rab_sml));
+	BSSAP.send(tx);
+
+	/* Ignore MGCP CRCX */
+	alt {
+	[] MGCP.receive(tr_CRCX) -> value mgcp_cmd {
+		log("Ignoreing CRCX1", mgcp_cmd);
+		repeat;
+		}
+	[] BSSAP.receive(tr_RANAP_IuReleaseRequest(?)) { }
+	[] T.timeout {
+		setverdict(fail, "Timeout waiting for IuRelease");
+		}
+	}
+
+	/* Send Iu Release */
+	tx := valueof(ts_RANAP_IuReleaseCommand(ts_RanapCause_om_intervention));
+	f_iu2iuh(tx);
+
+	tx := valueof(ts_RANAP_IuReleaseComplete());
+	f_iuh2iu(tx);
+}
+
+testcase TC_rab_assign_mgcp_to() runs on test_CT {
+	var ConnHdlr vc_conn;
+	f_init();
+	f_start_hnbs();
+
+	vc_conn := f_start_handler_with_pars(refers(f_tc_rab_assign_mgcp_to), t_pars(6));
+	vc_conn.done;
+}
+
 /* Create an Iuh connection; send InitialUE; transceive data both directions */
 friend function f_tc_ranap_bidir(charstring id, TestHdlrParams pars) runs on ConnHdlr {
 	f_init_handler(pars);
@@ -1059,6 +1107,7 @@
 	execute(TC_rab_assignment());
 	execute(TC_rab_release());
 	execute(TC_rab_assign_fail());
+	execute(TC_rab_assign_mgcp_to());
 	execute(TC_ranap_cs_mo_disconnect());
 	execute(TC_ranap_ps_mo_disconnect());
 }