aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNeels Hofmeyr <nhofmeyr@sysmocom.de>2023-03-09 02:51:28 +0100
committerneels <nhofmeyr@sysmocom.de>2023-03-28 02:26:06 +0000
commit735b6563ec95c5ca2a186aaa7051cb62089a0823 (patch)
treee241c2abe96a3d1e1c4e53efc4ee175cc946409a
parenta9e17b34aef8268deadc4e5dbbbff4202b97ddca (diff)
hnbgw: add f_rua_expect()
End the guessing when seeing "timeout of T_guard": set a precise failure verdict when an expected RUA message did not arrive as expected. Change-Id: I29e6b7659ba53efee9f676197b502f79780ead7e
-rw-r--r--hnbgw/HNBGW_Tests.ttcn44
1 files changed, 21 insertions, 23 deletions
diff --git a/hnbgw/HNBGW_Tests.ttcn b/hnbgw/HNBGW_Tests.ttcn
index 5a2c72e3..cf0cd073 100644
--- a/hnbgw/HNBGW_Tests.ttcn
+++ b/hnbgw/HNBGW_Tests.ttcn
@@ -501,24 +501,35 @@ runs on ConnHdlr return RANAP_PDU {
/* send RANAP on Iu and expect it to show up on Iuh */
function f_iu2iuh(template (present) RANAP_PDU tx, template RANAP_PDU exp_rx := omit)
runs on ConnHdlr return RANAP_PDU {
- var RANAP_PDU rx;
- timer T := 5.0;
-
if (istemplatekind(exp_rx, "omit")) {
exp_rx := tx;
}
BSSAP.send(tx);
- T.start;
+ return f_rua_expect(exp_rx)
+}
+
+/* expect to receive a specific RUA message on Iuh */
+private function f_rua_expect(template (present) RANAP_PDU exp_rx) runs on ConnHdlr return RANAP_PDU
+{
+ var RANAP_PDU rx;
+ timer T := 5.0;
+ T.start;
alt {
[] RUA.receive(exp_rx) -> value rx {
setverdict(pass);
}
+ [] RUA.receive(RANAP_PDU:?) {
+ setverdict(fail, "Got an unexpected RUA message, was waiting for ", exp_rx);
+ mtc.stop;
+ }
[] T.timeout {
setverdict(fail, "Timeout waiting for Iuh ", exp_rx);
+ mtc.stop;
}
}
+ T.stop;
return rx;
}
@@ -945,19 +956,13 @@ friend function f_rab_ass_req(inout MgcpParameters pars) runs on ConnHdlr {
setverdict(fail, "Timeout waiting for MGCP");
}
}
+ T.stop;
/* Expect RAB Assignment Request with IP/port from CRCX ACK via Iuh */
rab_sml := ts_RAB_SML(t_RAB_id(23), f_ts_RAB_TLA(pars.mgw_conn_1.mgw_rtp_ip), t_RAB_binding_port(pars.mgw_conn_1.mgw_rtp_port));
tx := valueof(ts_RANAP_RabAssReq(rab_sml));
- alt {
- [] RUA.receive(tx) {
- setverdict(pass);
- }
- [] T.timeout {
- setverdict(fail, "Timeout waiting for Iuh ", tx);
- }
- }
+ f_rua_expect(tx);
}
friend function f_rab_ass_resp(inout MgcpParameters pars) runs on ConnHdlr {
@@ -1119,16 +1124,9 @@ friend function f_tc_rab_release(charstring id, TestHdlrParams pars) runs on Con
setverdict(fail, "Timeout waiting for DLCX");
}
}
+ T.stop;
- alt {
- [] RUA.receive(tx) {
- setverdict(pass);
- }
- [] T.timeout {
- setverdict(fail, "Timeout waiting for Iuh ", tx);
- }
- }
-
+ f_rua_expect(tx);
}
testcase TC_rab_release() runs on test_CT {
@@ -1365,7 +1363,7 @@ friend function f_tc_ps_rab_assignment_with_pfcp(charstring id, TestHdlrParams p
rab_sml := ts_RAB_SML_ps(t_RAB_id(23), f_ts_RAB_TLA(gtp_pars.access.local.addr),
gtp_pars.access.local.teid);
rx := valueof(ts_RANAP_RabAssReq(rab_sml));
- RUA.receive(rx);
+ f_rua_expect(rx);
/* Send back RAB Assignment Response via Iuh */
var template RAB_SetupOrModifiedList rab_smdl;
@@ -1436,7 +1434,7 @@ friend function f_tc_ps_rab_assignment_without_pfcp(charstring id, TestHdlrParam
/* Expect on Iuh: unmodified RAB Assignment Request */
rx := valueof(ts_RANAP_RabAssReq(rab_sml));
- RUA.receive(rx);
+ f_rua_expect(rx);
/* Send back RAB Assignment Response via Iuh */
var template RAB_SetupOrModifiedList rab_smdl;