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(a)sysmocom.de>