[S] Change in osmo-ttcn3-hacks[master]: WIP: 5gc: Rework init code
pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/40750?usp=email ) Change subject: WIP: 5gc: Rework init code ...................................................................... WIP: 5gc: Rework init code * Move T_Guard to MTC, there's no need to have multiple of them (one per ConnHdlr). * Call f_init_handler() internally so it doesn't need to be called by each ConnHdlr test. * Change function attribute friend to private Change-Id: I71e5d552a6c0089345982a403285f66a92397413 --- M 5gc/C5G_Tests.ttcn 1 file changed, 24 insertions(+), 19 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/50/40750/1 diff --git a/5gc/C5G_Tests.ttcn b/5gc/C5G_Tests.ttcn index f5b0931..76813ae 100644 --- a/5gc/C5G_Tests.ttcn +++ b/5gc/C5G_Tests.ttcn @@ -114,12 +114,13 @@ port NGAP_PT NGAP_UNIT[NUM_NGRAN]; port NGAPEM_PROC_PT NGAP_PROC[NUM_NGRAN]; + timer g_Tguard := 30.0; + var UeParams g_ue_pars[NUM_UE]; } type component ConnHdlr extends NGAP_ConnHdlr { var ConnHdlrPars g_pars; - timer g_Tguard := 30.0; } type record ConnHdlrPars { @@ -134,13 +135,13 @@ } /* send incoming unit data messages (like reset) to global NGAP_UNIT port */ -friend function NGapForwardUnitdataCallback(NGAP_PDU msg) +private function NGapForwardUnitdataCallback(NGAP_PDU msg) runs on NGAP_Emulation_CT return template NGAP_PDU { NGAP_UNIT.send(msg); return omit; } -friend function f_init_one_ngran(integer num := 0) runs on MTC_CT { +private function f_init_one_ngran(integer num := 0) runs on MTC_CT { var charstring id := testcasename() & "-NGAP" & int2str(num); var NGAPOps ops := { create_cb := refers(NGAP_Emulation.ExpectedCreateCallback), @@ -177,12 +178,12 @@ NGAP_UNIT[num].receive(NGAPEM_Event:{up_down:=NGAPEM_EVENT_UP}); } -friend function f_init_one_ue(inout UeParams uep, integer imsi_suffix) { +private function f_init_one_ue(inout UeParams uep, integer imsi_suffix) { uep := valueof(ts_UeParams(imsi_suffix)); } -friend function f_init_ngap(integer imsi_suffix := 0) runs on MTC_CT { +private function f_init_ngap(integer imsi_suffix := 0) runs on MTC_CT { var integer i; for (i := 0; i < NUM_NGRAN; i := i+1) { f_init_one_ngran(i); @@ -192,8 +193,16 @@ } } +private function f_init(integer imsi_suffix := 0, float t_guard := 30.0) runs on MTC_CT { + /* start guard timer and activate it as default */ + g_Tguard.start(t_guard); + activate(as_Tguard()); + + f_init_ngap(imsi_suffix); +} + /* generate parameters for a connection handler */ -friend function f_init_pars(integer ue_idx := 0) +private function f_init_pars(integer ue_idx := 0) runs on MTC_CT return ConnHdlrPars { var ConnHdlrPars pars := { ngran_pars := g_ngran_pars, @@ -204,10 +213,10 @@ 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 ngap_idx := 0) +private function f_start_handler_with_pars(void_fn fn, ConnHdlrPars pars, integer ngap_idx := 0) runs on MTC_CT return ConnHdlr { var ConnHdlr vc_conn; var charstring id := testcasename() & int2str(ngap_idx); @@ -219,24 +228,21 @@ /* 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; } /* altstep for the global guard timer */ -private altstep as_Tguard()runs on ConnHdlr { +private altstep as_Tguard()runs on MTC_CT { [] g_Tguard.timeout { - setverdict(fail, "Tguard timeout"); - mtc.stop; + Misc_Helpers.f_shutdown(__BFILE__, __LINE__, fail, "Tguard timeout"); } } -friend function f_init_handler(ConnHdlrPars pars, float t_guard := 30.0) runs on ConnHdlr { +private function f_init_handler(void_fn fn, ConnHdlrPars pars) runs on ConnHdlr { /* make parameters available via component variable */ g_pars := pars; - /* start guard timre and activate it as default */ - g_Tguard.start(t_guard); - activate(as_Tguard()); + fn.apply(); } private template (value) NGAP_IEs.TAI ts_ngran_NGAP_TAI(NGRANParams ngran_pars) := { @@ -277,7 +283,7 @@ return valueof(p_ueLocInf); } -friend function f_ngap_setup(integer idx := 0, template (omit) NGAP_IEs.Cause cause := omit) runs on MTC_CT { +private function f_ngap_setup(integer idx := 0, template (omit) NGAP_IEs.Cause cause := omit) runs on MTC_CT { var template (present) NGAP_IEs.Cause exp_cause := ?; var boolean exp_fail := false; timer T := 5.0; @@ -581,8 +587,7 @@ f_ngap_setup(0); } -private function f_TC_register(ConnHdlrPars pars) runs on ConnHdlr { - f_init_handler(pars); +private function f_TC_register() runs on ConnHdlr { f_register(); } testcase TC_ng_register() runs on MTC_CT { -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/40750?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: I71e5d552a6c0089345982a403285f66a92397413 Gerrit-Change-Number: 40750 Gerrit-PatchSet: 1 Gerrit-Owner: pespin <pespin@sysmocom.de>
participants (1)
-
pespin