pespin has submitted this change. ( 
https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/34254 )

Change subject: dia2gsup: initial refactoring
......................................................................

dia2gsup: initial refactoring

Do some refactoring to the core infrastructure of the tests before
adding new testsi. Among others:
- Move Tguard to main component
- Avoid having to call f_init_handler in each handler (do it
  automatically during f_start_handler()).

Change-Id: I4a1bf6ca03549688704815e3fec4e5152d0181a6
---
M dia2gsup/DIA2GSUP_Tests.ttcn
1 file changed, 40 insertions(+), 21 deletions(-)

Approvals:
  fixeria: Looks good to me, but someone else must approve
  pespin: Looks good to me, approved
  osmith: Looks good to me, but someone else must approve
  Jenkins Builder: Verified




diff --git a/dia2gsup/DIA2GSUP_Tests.ttcn b/dia2gsup/DIA2GSUP_Tests.ttcn
index d709512..6a3f85c 100644
--- a/dia2gsup/DIA2GSUP_Tests.ttcn
+++ b/dia2gsup/DIA2GSUP_Tests.ttcn
@@ -1,5 +1,6 @@
 module DIA2GSUP_Tests {

+import from Misc_Helpers all;
 import from General_Types all;
 import from Osmocom_Types all;
 import from L3_Common all;
@@ -21,11 +22,11 @@
        var IPA_Emulation_CT vc_GSUP_IPA;
        port IPA_CTRL_PT GSUP_IPA_EVENT;

+       timer g_Tguard;
 };

 type component D2G_ConnHdlr extends DIAMETER_ConnHdlr, GSUP_ConnHdlr {
        var D2G_ConnHdlrPars g_pars;
-       timer g_Tguard := 30.0;
 };
 
 type record D2G_ConnHdlrPars {
@@ -33,7 +34,7 @@
        AuthVector vec optional
 };

-private function f_init_pars(integer imsi_suffix)
+private function f_init_pars(integer imsi_suffix := 1)
 runs on MTC_CT return D2G_ConnHdlrPars {
        var D2G_ConnHdlrPars pars := {
                imsi := f_gen_imsi(imsi_suffix),
@@ -59,10 +60,9 @@
        charstring mp_diam_realm := "localdomain";
 }

-private altstep as_Tguard() runs on D2G_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");
        }
 }

@@ -95,18 +95,18 @@
        }
 }

-private function f_init_handler(D2G_ConnHdlrPars pars, float t_guard := 20.0) 
runs on D2G_ConnHdlr {
+private type function void_fn(charstring id) runs on D2G_ConnHdlr;
+
+private function f_init_handler(void_fn fn, charstring id, D2G_ConnHdlrPars 
pars) runs on D2G_ConnHdlr {
        g_pars := pars;
-       activate(as_Tguard());
-       g_Tguard.start(t_guard);

        /* tell GSUP dispatcher to send this IMSI to us */
        f_create_gsup_expect(hex2str(g_pars.imsi));
+
+       fn.apply(id);
 }

-private type function void_fn(charstring id, D2G_ConnHdlrPars pars) runs on 
D2G_ConnHdlr;
-
-private function f_start_handler_with_pars(void_fn fn, D2G_ConnHdlrPars pars)
+private function f_start_handler(void_fn fn, D2G_ConnHdlrPars pars)
 runs on MTC_CT return D2G_ConnHdlr {
        var D2G_ConnHdlr vc_conn;
        var charstring id := testcasename();
@@ -121,7 +121,7 @@

        DIAMETER_UNIT.receive(DiameterCapabilityExchgInd:?);

-       vc_conn.start(derefers(fn)(id, pars));
+       vc_conn.start(f_init_handler(fn, id, pars));
        return vc_conn;
 }

@@ -154,13 +154,17 @@
        vc_DIAMETER.start(DIAMETER_Emulation.main(ops, pars, id));
 }

-private function f_init() runs on MTC_CT {
+private function f_init(float t_guard := 40.0) runs on MTC_CT {
+
+       g_Tguard.start(t_guard);
+       activate(as_Tguard());
+
        f_init_gsup(testcasename());
        f_init_diameter(testcasename());
 }


-private function f_DIA_AI() runs on D2G_ConnHdlr {
+private function f_DIA_AI_success() runs on D2G_ConnHdlr {
        var PDU_DIAMETER rx_dia;
        var UINT32 hbh_id := f_rnd_octstring(4);
        var UINT32 ete_id := f_rnd_octstring(4);
@@ -191,25 +195,25 @@
        [] DIAMETER.receive(tr_DIA_AIA) {
                setverdict(pass);
                }
+       [] DIAMETER.receive(PDU_DIAMETER:?) -> value rx_dia {
+               Misc_Helpers.f_shutdown(__BFILE__, __LINE__, fail, 
log2str("Unexpected Diameter msg rx: ", rx_dia));
+               }
        }
 }

-private function f_TC_authinfo_normal(charstring id, D2G_ConnHdlrPars pars) 
runs on D2G_ConnHdlr {
-       f_init_handler(pars);
-       f_DIA_AI();
+private function f_TC_authinfo_normal(charstring id) runs on D2G_ConnHdlr {
+       f_DIA_AI_success();
 }

 testcase TC_authinfo_normal() runs on MTC_CT {
-       var D2G_ConnHdlrPars pars := f_init_pars(1);
+       var D2G_ConnHdlrPars pars := f_init_pars();
        var D2G_ConnHdlr vc_conn;
        f_init();
-       f_sleep(10.0);
-       vc_conn := f_start_handler_with_pars(refers(f_TC_authinfo_normal), 
pars);
+       vc_conn := f_start_handler(refers(f_TC_authinfo_normal), pars);
        vc_conn.done;
        setverdict(pass);
 }

-
 control {
        execute ( TC_authinfo_normal() );
 }

--
To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/34254
To unsubscribe, or for help writing mail filters, visit 
https://gerrit.osmocom.org/settings

Gerrit-Project: osmo-ttcn3-hacks
Gerrit-Branch: master
Gerrit-Change-Id: I4a1bf6ca03549688704815e3fec4e5152d0181a6
Gerrit-Change-Number: 34254
Gerrit-PatchSet: 2
Gerrit-Owner: pespin <[email protected]>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: fixeria <[email protected]>
Gerrit-Reviewer: osmith <[email protected]>
Gerrit-Reviewer: pespin <[email protected]>
Gerrit-MessageType: merged

Reply via email to