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>