pespin submitted this change.

View Change

Approvals: Jenkins Builder: Verified pespin: Looks good to me, approved fixeria: Looks good to me, but someone else must approve laforge: Looks good to me, but someone else must approve
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(-)

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 d20479c..5d5668b 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 change 41064. To unsubscribe, or for help writing mail filters, visit settings.

Gerrit-MessageType: merged
Gerrit-Project: osmo-ttcn3-hacks
Gerrit-Branch: master
Gerrit-Change-Id: I9d05c340b173cbab08bbd066d7261341d902d455
Gerrit-Change-Number: 41064
Gerrit-PatchSet: 3
Gerrit-Owner: pespin <pespin@sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: fixeria <vyanitskiy@sysmocom.de>
Gerrit-Reviewer: laforge <laforge@osmocom.org>
Gerrit-Reviewer: pespin <pespin@sysmocom.de>