pespin has uploaded this change for review. (
https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/41064?usp=email )
Change subject: mme: Call f_init_handler() inside f_start_handler_with_pars()
......................................................................
mme: Call f_init_handler() inside f_start_handler_with_pars()
Change-Id: I9d05c340b173cbab08bbd066d7261341d902d455
---
M mme/MME_Tests.ttcn
M mme/MME_Tests_SGsAP.ttcn
2 files changed, 20 insertions(+), 33 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/64/41064/1
diff --git a/mme/MME_Tests.ttcn b/mme/MME_Tests.ttcn
index cf464b5..915cc14 100644
--- a/mme/MME_Tests.ttcn
+++ b/mme/MME_Tests.ttcn
@@ -436,7 +436,7 @@
return pars;
}
-type function void_fn(ConnHdlrPars pars) runs on ConnHdlr;
+type function void_fn() runs on ConnHdlr;
/* start a connection handler with given parameters */
friend function f_start_handler_with_pars(void_fn fn, ConnHdlrPars pars, integer s1ap_idx
:= 0)
@@ -466,9 +466,7 @@
connect(vc_conn:GTP2_PROC, vc_GTP2:CLIENT_PROC);
}
- /* We cannot use vc_conn.start(f_init_handler(fn, id, pars)); as we cannot have
- * a stand-alone 'derefers()' call, see
https://www.eclipse.org/forums/index.php/t/1091364/ */
- vc_conn.start(derefers(fn)(pars));
+ vc_conn.start(f_init_handler(fn, pars));
return vc_conn;
}
@@ -479,7 +477,7 @@
}
}
-friend function f_init_handler(ConnHdlrPars pars) runs on ConnHdlr {
+friend function f_init_handler(void_fn fn, ConnHdlrPars pars) runs on ConnHdlr {
/* make parameters available via component variable */
g_pars := pars;
if (DIAMETER_PROC.checkstate("Connected")) {
@@ -487,8 +485,10 @@
}
if (SGsAP_PROC.checkstate("Connected")) {
/* Route all SGsAP mesages for our IMSIto us */
- f_create_sgsap_expect(pars.ue_pars.imsi);
+ f_create_sgsap_expect(g_pars.ue_pars.imsi);
}
+
+ fn.apply();
}
@@ -1120,8 +1120,7 @@
}
}
-private function f_TC_attach(ConnHdlrPars pars) runs on ConnHdlr {
- f_init_handler(pars);
+private function f_TC_attach() runs on ConnHdlr {
f_attach();
}
testcase TC_s1ap_attach() runs on MTC_CT {
@@ -1134,9 +1133,8 @@
vc_conn.done;
}
-private function f_TC_gn_echo_request(ConnHdlrPars pars) runs on ConnHdlr {
+private function f_TC_gn_echo_request() runs on ConnHdlr {
timer T := 5.0;
- f_init_handler(pars);
f_gtp_register_teic('00000000'O);
GTP[0].send(ts_GTPC_PING(g_gn_iface_peer, 1));
@@ -1335,9 +1333,8 @@
return msg;
}
-private function f_TC_RIM_RAN_INF(ConnHdlrPars pars) runs on ConnHdlr {
+private function f_TC_RIM_RAN_INF() runs on ConnHdlr {
timer T := 5.0;
- f_init_handler(pars);
f_gtp_register_teic('00000000'O);
var Gtp1cUnitdata req_gtpc_pdu;
var Gtp1cUnitdata resp_gtpc_pdu;
@@ -1427,10 +1424,8 @@
/* Tracking area update with a GUTI (TMSI) that is unknown to the MME. The MME is
expected to reject this TAU
* request. */
-private function f_TC_tau_unknown_guti(ConnHdlrPars pars) runs on ConnHdlr {
-
- f_init_handler(pars);
- var template (value) EPS_MobileIdentityV mi := ts_NAS_MobileId_IMSI(pars.ue_pars.imsi);
+private function f_TC_tau_unknown_guti() runs on ConnHdlr {
+ var template (value) EPS_MobileIdentityV mi :=
ts_NAS_MobileId_IMSI(g_pars.ue_pars.imsi);
var template (value) S1AP_PDU tx;
var template (value) PDU_NAS_EPS nas_tau;
timer T := 5.0;
@@ -1471,8 +1466,7 @@
vc_conn.done;
}
-private function f_TC_ue_cell_reselect_eutran_to_geran(ConnHdlrPars pars) runs on
ConnHdlr {
- f_init_handler(pars);
+private function f_TC_ue_cell_reselect_eutran_to_geran() runs on ConnHdlr {
f_gtp_register_imsi(g_pars.ue_pars.imsi);
f_attach();
@@ -1528,8 +1522,7 @@
* new MME will attempt to obtain information of the UE from the old SGSN
* through Gn interface using SGSN Context Request/Response procedure (OS#6294). */
/* 3GPP TS 23.401 D.3.6, TS 23.003 2.8.2.2.2 */
-private function f_TC_ue_cell_reselect_geran_to_eutran(ConnHdlrPars pars) runs on
ConnHdlr {
- f_init_handler(pars);
+private function f_TC_ue_cell_reselect_geran_to_eutran() runs on ConnHdlr {
f_gtp_register_imsi(g_pars.ue_pars.imsi);
f_gtp2_register_imsi(g_pars.ue_pars.imsi);
/* SGSN Context Req doesn't necessarily contain IMSI, hence expect it through TEID=0
*/
@@ -1538,7 +1531,7 @@
const OCT4 new_sgsn_teid := 'ABABABAB'O;
f_gtp_register_teic(new_sgsn_teid);
- var template (value) EPS_MobileIdentityV mi := ts_NAS_MobileId_IMSI(pars.ue_pars.imsi);
+ var template (value) EPS_MobileIdentityV mi :=
ts_NAS_MobileId_IMSI(g_pars.ue_pars.imsi);
var template (value) S1AP_PDU tx;
var template (value) PDU_NAS_EPS nas_tau;
var RoutingAreaIdentity rai;
diff --git a/mme/MME_Tests_SGsAP.ttcn b/mme/MME_Tests_SGsAP.ttcn
index e416109..cc8d4bc 100644
--- a/mme/MME_Tests_SGsAP.ttcn
+++ b/mme/MME_Tests_SGsAP.ttcn
@@ -104,8 +104,7 @@
}
/* Test if MME responds to VLR-originated RESET procedure as expected */
-private function f_TC_sgsap_vlr_reset(ConnHdlrPars pars) runs on ConnHdlr {
- f_init_handler(pars);
+private function f_TC_sgsap_vlr_reset() runs on ConnHdlr {
f_sgsap_vlr_reset();
}
testcase TC_sgsap_vlr_reset() runs on MTC_CT {
@@ -118,8 +117,7 @@
}
/* Page known subscriber for SMS */
-private function f_TC_sgsap_paging_sms(ConnHdlrPars pars) runs on ConnHdlr {
- f_init_handler(pars);
+private function f_TC_sgsap_paging_sms() runs on ConnHdlr {
/* TODO: register subscriber on S1 */
f_sgsap_page(SMS_indicator, omit, omit);
}
@@ -133,8 +131,7 @@
}
/* Page known subscriber for CS call */
-private function f_TC_sgsap_paging_cs(ConnHdlrPars pars) runs on ConnHdlr {
- f_init_handler(pars);
+private function f_TC_sgsap_paging_cs() runs on ConnHdlr {
/* TODO: register subscriber on S1 */
f_sgsap_page(CS_call_indicator, omit, omit);
}
@@ -149,8 +146,7 @@
/* Page unknown subscriber; expect PAGING REJECT from MME */
-private function f_TC_sgsap_paging_reject(ConnHdlrPars pars) runs on ConnHdlr {
- f_init_handler(pars);
+private function f_TC_sgsap_paging_reject() runs on ConnHdlr {
f_sgsap_page(SMS_indicator, omit, IMSI_unknown);
}
testcase TC_sgsap_paging_reject() runs on MTC_CT {
@@ -163,8 +159,7 @@
}
/* Send ALERT-REQ to MME; perform S1AP activity; expect ALERT-ACK on SGs */
-private function f_TC_sgsap_alert(ConnHdlrPars pars) runs on ConnHdlr {
- f_init_handler(pars);
+private function f_TC_sgsap_alert() runs on ConnHdlr {
/* TODO: register subscriber on S1 */
f_sgsap_alert(omit);
/* TOOD: do something on S1 triggering UE ACT IND */
@@ -180,8 +175,7 @@
}
/* Send ALERT-REQ to MME for unidentified IMSI; expect ALERT-REJ on SGs */
-private function f_TC_sgsap_alert_rej(ConnHdlrPars pars) runs on ConnHdlr {
- f_init_handler(pars);
+private function f_TC_sgsap_alert_rej() runs on ConnHdlr {
/* IMSI doesn't register and is hence unknown */
f_sgsap_alert(IMSI_unknown);
}
--
To view, visit
https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/41064?usp=email
To unsubscribe, or for help writing mail filters, visit
https://gerrit.osmocom.org/settings?usp=email
Gerrit-MessageType: newchange
Gerrit-Project: osmo-ttcn3-hacks
Gerrit-Branch: master
Gerrit-Change-Id: I9d05c340b173cbab08bbd066d7261341d902d455
Gerrit-Change-Number: 41064
Gerrit-PatchSet: 1
Gerrit-Owner: pespin <pespin(a)sysmocom.de>