Add test for RABAssingResponse with FailedList
Change-Id: I043014929de5145f06d0a650f36d59c15e0d4044
Related: OS#5152
diff --git a/hnbgw/HNBGW_Tests.ttcn b/hnbgw/HNBGW_Tests.ttcn
index 959fe87..314b0df 100644
--- a/hnbgw/HNBGW_Tests.ttcn
+++ b/hnbgw/HNBGW_Tests.ttcn
@@ -758,11 +758,15 @@
return mgcp_resp;
}
-friend function f_create_rab(MgcpParameters pars) runs on ConnHdlr {
+friend function f_create_rab(inout MgcpParameters pars) runs on ConnHdlr {
+ f_rab_ass_req(pars);
+ f_rab_ass_resp(pars);
+}
+
+friend function f_rab_ass_req(inout MgcpParameters pars) runs on ConnHdlr {
var MgcpCommand mgcp_cmd;
var RANAP_PDU tx;
var template RAB_SetupOrModifyList rab_sml;
- var template RAB_SetupOrModifiedList rab_smdl;
timer T := 5.0;
/* Send RAB Assignment Request */
@@ -795,6 +799,13 @@
setverdict(fail, "Timeout waiting for Iuh ", tx);
}
}
+}
+
+friend function f_rab_ass_resp(inout MgcpParameters pars) runs on ConnHdlr {
+ var MgcpCommand mgcp_cmd;
+ var RANAP_PDU tx;
+ var template RAB_SetupOrModifiedList rab_smdl;
+ timer T := 5.0;
/* Send back RAB Assignment Response via Iuh */
rab_smdl := ts_RAB_SMdL(t_RAB_id(23), f_ts_RAB_TLA(pars.hnb_rtp_ip), t_RAB_binding_port(pars.hnb_rtp_port));
@@ -842,7 +853,7 @@
log("DLCX", mgcp_cmd);
MGCP.send(ts_DLCX_ACK2(mgcp_cmd.line.trans_id));
pars.mgcp_pars.got_dlcx_count := pars.mgcp_pars.got_dlcx_count + 1;
- if (pars.mgcp_pars.got_dlcx_count == 1) {
+ if (pars.mgcp_pars.got_dlcx_count != pars.mgcp_pars.got_crcx_count) {
repeat;
}
setverdict(pass);
@@ -887,6 +898,41 @@
vc_conn.done;
}
+friend function f_tc_rab_assign_fail(charstring id, TestHdlrParams pars) runs on ConnHdlr {
+ var MgcpCommand mgcp_cmd;
+ var RANAP_PDU tx;
+ timer T := 5.0;
+
+ f_init_handler(pars);
+ f_create_mgcp_expect(ExpectCriteria:{omit,omit,omit});
+
+ tx := f_build_initial_ue(g_pars);
+ f_iuh2iu_connect(tx);
+
+ f_rab_ass_req(pars.mgcp_pars);
+
+ /* Send RAB failed list in response */
+ tx := valueof(ts_RANAP_RabAssResp(rab_fl := ts_RAB_FL(t_RAB_id(23), ts_RanapCause_om_intervention)));
+ f_iuh2iu(tx);
+
+ T.start;
+ alt {
+ [] as_mgcp_dlcx(pars) {}
+ [] T.timeout {
+ setverdict(fail, "Timeout waiting for DLCX");
+ }
+ }
+}
+
+testcase TC_rab_assign_fail() 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_fail), t_pars(4));
+ vc_conn.done;
+}
+
friend function f_tc_rab_release(charstring id, TestHdlrParams pars) runs on ConnHdlr {
var MgcpCommand mgcp_cmd;
var RANAP_PDU tx;
@@ -1012,6 +1058,7 @@
execute(TC_ranap_ps_bidir());
execute(TC_rab_assignment());
execute(TC_rab_release());
+ execute(TC_rab_assign_fail());
execute(TC_ranap_cs_mo_disconnect());
execute(TC_ranap_ps_mo_disconnect());
}