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
This commit is contained in:
parent
4e76926683
commit
28dba3aa6e
|
@ -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 @@ type component MTC_CT {
|
|||
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 @@ type record D2G_ConnHdlrPars {
|
|||
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 @@ modulepar {
|
|||
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_gsup(charstring id) runs on MTC_CT {
|
|||
}
|
||||
}
|
||||
|
||||
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 @@ runs on MTC_CT return D2G_ConnHdlr {
|
|||
|
||||
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 @@ private function f_init_diameter(charstring id) runs on MTC_CT {
|
|||
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 @@ private function f_DIA_AI() runs on D2G_ConnHdlr {
|
|||
[] 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() );
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue