diff options
author | Neels Hofmeyr <nhofmeyr@sysmocom.de> | 2023-03-09 02:51:28 +0100 |
---|---|---|
committer | neels <nhofmeyr@sysmocom.de> | 2023-03-28 02:26:06 +0000 |
commit | 735b6563ec95c5ca2a186aaa7051cb62089a0823 (patch) | |
tree | e241c2abe96a3d1e1c4e53efc4ee175cc946409a | |
parent | a9e17b34aef8268deadc4e5dbbbff4202b97ddca (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.ttcn | 44 |
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; |