pespin has submitted this change. ( 
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(-)

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




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 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: merged
Gerrit-Project: osmo-ttcn3-hacks
Gerrit-Branch: master
Gerrit-Change-Id: I9d05c340b173cbab08bbd066d7261341d902d455
Gerrit-Change-Number: 41064
Gerrit-PatchSet: 3
Gerrit-Owner: pespin <pes...@sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: fixeria <vyanits...@sysmocom.de>
Gerrit-Reviewer: laforge <lafo...@osmocom.org>
Gerrit-Reviewer: pespin <pes...@sysmocom.de>

Reply via email to