osmith has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/41226?usp=email )
Change subject: hlr: wrap f_vty_subscr_create and _delete ......................................................................
hlr: wrap f_vty_subscr_create and _delete
Add wrappers as f_subscr_create/_delete (without _vty), and only use the VTY implementation for OsmoHLR. This is in preparation for implementing a different method for PyHSS in a follow-up patch.
Avoid passing the VTY parameter by splitting each function into a normal variant that runs on test_CT, and a _HCH variant that runs on HLR_ConnHdlr.
Change-Id: I6aafa118645346fd709c56de1e38771ed4de93b7 --- M hlr/HLR_Tests.ttcn 1 file changed, 81 insertions(+), 37 deletions(-)
Approvals: daniel: Looks good to me, approved fixeria: Looks good to me, but someone else must approve Jenkins Builder: Verified
diff --git a/hlr/HLR_Tests.ttcn b/hlr/HLR_Tests.ttcn index 97bbada..d324e08 100644 --- a/hlr/HLR_Tests.ttcn +++ b/hlr/HLR_Tests.ttcn @@ -500,6 +500,50 @@ }
/*********************************************************************** + * Subscriber creation wrappers + ***********************************************************************/ + +function f_subscr_create(HlrSubscriber sub) +runs on test_CT { + if (m_hlr_impl == HLR_IMPL_OSMOCOM) { + f_vty_subscr_create(VTY, sub); + } else { + setverdict(fail, "f_subscr_create is not implemented for ", m_hlr_impl); + mtc.stop; + } +} + +function f_ConnHdlr_subscr_create(HlrSubscriber sub) +runs on HLR_ConnHdlr { + if (m_hlr_impl == HLR_IMPL_OSMOCOM) { + f_vty_subscr_create(VTY, sub); + } else { + setverdict(fail, "f_ConnHdlr_subscr_create is not implemented for ", m_hlr_impl); + mtc.stop; + } +} + +function f_subscr_delete(HlrSubscriber sub) +runs on test_CT { + if (m_hlr_impl == HLR_IMPL_OSMOCOM) { + f_vty_subscr_delete(VTY, sub); + } else { + setverdict(fail, "f_subscr_delete is not implemented for ", m_hlr_impl); + mtc.stop; + } +} + +function f_ConnHdlr_subscr_delete(HlrSubscriber sub) +runs on HLR_ConnHdlr { + if (m_hlr_impl == HLR_IMPL_OSMOCOM) { + f_vty_subscr_delete(VTY, sub); + } else { + setverdict(fail, "f_ConnHdlr_subscr_delete is not implemented for ", m_hlr_impl); + mtc.stop; + } +} + +/*********************************************************************** * Helper functions for ConnHdlr ***********************************************************************/
@@ -877,10 +921,10 @@ } var HLR_ConnHdlr vc_conn;
- f_vty_subscr_create(VTY, sub); + f_subscr_create(sub); vc_conn := f_start_handler(fn, pars); vc_conn.done; - f_vty_subscr_delete(VTY, sub); + f_subscr_delete(sub); } }
@@ -1140,21 +1184,21 @@ /* we're not using f_gen_subs() here as the expect pattern for the 'show' are different * from case to case */ sub := valueof(t_Sub2G(f_rnd_imsi('26242'H), '49161'H & f_rnd_hexstring(7, 9), "comp128v1")); - f_vty_subscr_create(VTY, sub); + f_subscr_create(sub); f_vty_subscr_show(VTY, sub, pattern "*IMSI: *2G auth: COMP128v1*"); - f_vty_subscr_delete(VTY, sub); + f_subscr_delete(sub);
sub := valueof(t_Sub3G(f_rnd_imsi('26242'H), '49161'H & f_rnd_hexstring(7, 9), "milenage", false)); - f_vty_subscr_create(VTY, sub); + f_subscr_create(sub); f_vty_subscr_show(VTY, sub, pattern "*IMSI: *3G auth: MILENAGE*"); - f_vty_subscr_delete(VTY, sub); + f_subscr_delete(sub);
sub := valueof(t_Sub2G3G(f_rnd_imsi('26242'H), '49161'H & f_rnd_hexstring(7, 9), "comp128v1", "milenage", false)); - f_vty_subscr_create(VTY, sub); + f_subscr_create(sub); f_vty_subscr_show(VTY, sub, pattern "*IMSI: *2G auth: COMP128v1*3G auth: MILENAGE*"); - f_vty_subscr_delete(VTY, sub); + f_subscr_delete(sub);
setverdict(pass); } @@ -1166,7 +1210,7 @@ timer T := 5.0;
/* Create Subscriber */ - f_vty_subscr_create(VTY, g_pars.sub); + f_ConnHdlr_subscr_create(g_pars.sub);
/* Perform UpdateLocation (VLR now known to HLR) */ res := f_perform_UL(g_pars.sub.imsi, g_pars.sub.msisdn); @@ -1281,7 +1325,7 @@ for (var integer i := 0; i < sizeof(sl); i := i+1) { var HLR_ConnHdlrPars pars := valueof(t_Pars_sub(sl[i])); pars.ussd.sid := f_rnd_octstring(4); - f_vty_subscr_create(VTY, pars.sub); + f_subscr_create(pars.sub); vc_conn := f_start_handler(refers(f_TC_mo_ussd_unknown), pars); vc_conn.done; } @@ -1308,7 +1352,7 @@ for (var integer i := 0; i < sizeof(sl); i := i+1) { var HLR_ConnHdlrPars pars := valueof(t_Pars_sub(sl[i])); pars.ussd.sid := f_rnd_octstring(4); - f_vty_subscr_create(VTY, pars.sub); + f_subscr_create(pars.sub); vc_conn := f_start_handler(refers(f_TC_mo_ussd_euse_disc), pars); vc_conn.done; } @@ -1340,7 +1384,7 @@ for (var integer i := 0; i < sizeof(sl); i := i+1) { var HLR_ConnHdlrPars pars := valueof(t_Pars_sub(sl[i])); pars.ussd.sid := f_rnd_octstring(4); - f_vty_subscr_create(VTY, pars.sub); + f_subscr_create(pars.sub); vc_conn := f_start_handler(refers(f_TC_mo_ussd_iuse_imsi), pars); vc_conn.done; } @@ -1354,7 +1398,7 @@ for (var integer i := 0; i < sizeof(sl); i := i+1) { var HLR_ConnHdlrPars pars := valueof(t_Pars_sub_via_proxy(sl[i])); pars.ussd.sid := f_rnd_octstring(4); - f_vty_subscr_create(VTY, pars.sub); + f_subscr_create(pars.sub); vc_conn := f_start_handler(refers(f_TC_mo_ussd_iuse_imsi), pars); vc_conn.done; } @@ -1386,7 +1430,7 @@ for (var integer i := 0; i < sizeof(sl); i := i+1) { var HLR_ConnHdlrPars pars := valueof(t_Pars_sub(sl[i])); pars.ussd.sid := f_rnd_octstring(4); - f_vty_subscr_create(VTY, pars.sub); + f_subscr_create(pars.sub); vc_conn := f_start_handler(refers(f_TC_mo_ussd_iuse_msisdn), pars); vc_conn.done; } @@ -1400,7 +1444,7 @@ for (var integer i := 0; i < sizeof(sl); i := i+1) { var HLR_ConnHdlrPars pars := valueof(t_Pars_sub_via_proxy(sl[i])); pars.ussd.sid := f_rnd_octstring(4); - f_vty_subscr_create(VTY, pars.sub); + f_subscr_create(pars.sub); vc_conn := f_start_handler(refers(f_TC_mo_ussd_iuse_msisdn), pars); vc_conn.done; } @@ -1433,7 +1477,7 @@ for (var integer i := 0; i < sizeof(sl); i := i+1) { var HLR_ConnHdlrPars pars := valueof(t_Pars_sub(sl[i])); pars.ussd.sid := f_rnd_octstring(4); - f_vty_subscr_create(VTY, pars.sub); + f_subscr_create(pars.sub); vc_conn := f_start_handler(refers(f_TC_mo_ussd_100), pars); vc_conn.done; } @@ -1480,7 +1524,7 @@ for (var integer i := 0; i < sizeof(sl); i := i+1) { var HLR_ConnHdlrPars pars := valueof(t_Pars_sub(sl[i])); pars.ussd.sid := f_rnd_octstring(4); - f_vty_subscr_create(VTY, pars.sub); + f_subscr_create(pars.sub); vc_conn := f_start_handler(refers(f_TC_mo_ussd_100_continue), pars); vc_conn.done; } @@ -1516,7 +1560,7 @@ for (var integer i := 0; i < sizeof(sl); i := i+1) { var HLR_ConnHdlrPars pars := valueof(t_Pars_sub(sl[i])); pars.ussd.sid := f_rnd_octstring(4); - f_vty_subscr_create(VTY, pars.sub); + f_subscr_create(pars.sub); vc_conn := f_start_handler(refers(f_TC_mo_ussd_999), pars); vc_conn.done; } @@ -1567,10 +1611,10 @@ pars := valueof(t_Pars_sub(sub)); pars.ussd.sid := f_rnd_octstring(4);
- f_vty_subscr_create(VTY, sub); + f_subscr_create(sub); vc_conn := f_start_handler(refers(f_TC_mo_sss_reject), pars); vc_conn.done; - f_vty_subscr_delete(VTY, sub); + f_subscr_delete(sub); }
@@ -1668,7 +1712,7 @@ f_vty_subscr_show(VTY, g_pars.sub, pattern "*MSISDN: \d\d\d*"); /* last line, hence not matching "\d\d\d\n" */ f_vty_subscr_show_nomatch(VTY, g_pars.sub, pattern "*[CP]S disabled*"); res := f_perform_UL(g_pars.sub.imsi, ?); - f_vty_subscr_delete(VTY, g_pars.sub); + f_ConnHdlr_subscr_delete(g_pars.sub);
/* Random MSISDN and PS NAM (LU must pass) */ f_vty_config(VTY, "hlr", "subscriber-create-on-demand 3 ps"); @@ -1678,7 +1722,7 @@ f_vty_subscr_show(VTY, g_pars.sub, pattern "*CS disabled*"); f_vty_subscr_show_nomatch(VTY, g_pars.sub, pattern "*PS disabled*"); res := f_perform_UL(g_pars.sub.imsi, ?); - f_vty_subscr_delete(VTY, g_pars.sub); + f_ConnHdlr_subscr_delete(g_pars.sub);
/* Random MSISDN and CS NAM (LU must fail) */ f_vty_config(VTY, "hlr", "subscriber-create-on-demand 3 cs"); @@ -1688,7 +1732,7 @@ f_vty_subscr_show(VTY, g_pars.sub, pattern "*PS disabled*"); f_vty_subscr_show_nomatch(VTY, g_pars.sub, pattern "*CS disabled*"); res := f_perform_UL(g_pars.sub.imsi, ?, 7 /* GPRS services not allowed */); - f_vty_subscr_delete(VTY, g_pars.sub); + f_ConnHdlr_subscr_delete(g_pars.sub);
/* Random MSISDN and no NAM (LU must fail) */ f_vty_config(VTY, "hlr", "subscriber-create-on-demand 3 none"); @@ -1697,7 +1741,7 @@ f_vty_subscr_show(VTY, g_pars.sub, pattern "*MSISDN: \d\d\d*"); f_vty_subscr_show(VTY, g_pars.sub, pattern "*CS disabled*PS disabled*"); res := f_perform_UL(g_pars.sub.imsi, ?, 7 /* GPRS services not allowed */); - f_vty_subscr_delete(VTY, g_pars.sub); + f_ConnHdlr_subscr_delete(g_pars.sub);
/* No MSISDN and no NAM (LU must fail) */ f_vty_config(VTY, "hlr", "subscriber-create-on-demand no-msisdn none"); @@ -1706,7 +1750,7 @@ f_vty_subscr_show(VTY, g_pars.sub, pattern "*MSISDN: none*"); f_vty_subscr_show(VTY, g_pars.sub, pattern "*CS disabled*PS disabled*"); res := f_perform_UL(g_pars.sub.imsi, ?, 7 /* GPRS services not allowed */); - f_vty_subscr_delete(VTY, g_pars.sub); + f_ConnHdlr_subscr_delete(g_pars.sub);
/* No MSISDN and CS+PS NAM (LU must pass) */ f_vty_config(VTY, "hlr", "subscriber-create-on-demand no-msisdn cs+ps"); @@ -1715,7 +1759,7 @@ f_vty_subscr_show(VTY, g_pars.sub, pattern "*MSISDN: none*"); f_vty_subscr_show_nomatch(VTY, g_pars.sub, pattern "*[CP]S disabled*"); res := f_perform_UL(g_pars.sub.imsi, omit); - f_vty_subscr_delete(VTY, g_pars.sub); + f_ConnHdlr_subscr_delete(g_pars.sub);
setverdict(pass); } @@ -1740,7 +1784,7 @@ f_vty_subscr_show(VTY, g_pars.sub, pattern imsi_pattern); f_vty_subscr_show(VTY, g_pars.sub, pattern "*MSISDN: \d\d\d\n*"); f_vty_subscr_show_nomatch(VTY, g_pars.sub, pattern "*[CP]S disabled*"); - f_vty_subscr_delete(VTY, g_pars.sub); + f_ConnHdlr_subscr_delete(g_pars.sub);
/* Random MSISDN and PS NAM (LU must pass) */ f_vty_config(VTY, "hlr", "subscriber-create-on-demand 3 ps"); @@ -1749,7 +1793,7 @@ f_vty_subscr_show(VTY, g_pars.sub, pattern "*MSISDN: \d\d\d\n*"); f_vty_subscr_show(VTY, g_pars.sub, pattern "*CS disabled*"); f_vty_subscr_show_nomatch(VTY, g_pars.sub, pattern "*PS disabled*"); - f_vty_subscr_delete(VTY, g_pars.sub); + f_ConnHdlr_subscr_delete(g_pars.sub);
/* Random MSISDN and CS NAM (LU must fail) */ f_vty_config(VTY, "hlr", "subscriber-create-on-demand 3 cs"); @@ -1758,7 +1802,7 @@ f_vty_subscr_show(VTY, g_pars.sub, pattern "*MSISDN: \d\d\d\n*"); f_vty_subscr_show(VTY, g_pars.sub, pattern "*PS disabled*"); f_vty_subscr_show_nomatch(VTY, g_pars.sub, pattern "*CS disabled*"); - f_vty_subscr_delete(VTY, g_pars.sub); + f_ConnHdlr_subscr_delete(g_pars.sub);
/* Random MSISDN and no NAM (LU must fail) */ f_vty_config(VTY, "hlr", "subscriber-create-on-demand 3 none"); @@ -1766,7 +1810,7 @@ f_vty_subscr_show(VTY, g_pars.sub, pattern imsi_pattern); f_vty_subscr_show(VTY, g_pars.sub, pattern "*MSISDN: \d\d\d\n*"); f_vty_subscr_show(VTY, g_pars.sub, pattern "*CS disabled*PS disabled*"); - f_vty_subscr_delete(VTY, g_pars.sub); + f_ConnHdlr_subscr_delete(g_pars.sub);
/* No MSISDN and no NAM (LU must fail) */ f_vty_config(VTY, "hlr", "subscriber-create-on-demand no-msisdn none"); @@ -1774,7 +1818,7 @@ f_vty_subscr_show(VTY, g_pars.sub, pattern imsi_pattern); f_vty_subscr_show(VTY, g_pars.sub, pattern "*MSISDN: none*"); f_vty_subscr_show(VTY, g_pars.sub, pattern "*CS disabled*PS disabled*"); - f_vty_subscr_delete(VTY, g_pars.sub); + f_ConnHdlr_subscr_delete(g_pars.sub);
/* No MSISDN and CS+PS NAM (LU must pass) */ f_vty_config(VTY, "hlr", "subscriber-create-on-demand no-msisdn cs+ps"); @@ -1782,7 +1826,7 @@ f_vty_subscr_show(VTY, g_pars.sub, pattern imsi_pattern); f_vty_subscr_show(VTY, g_pars.sub, pattern "*MSISDN: none*"); f_vty_subscr_show_nomatch(VTY, g_pars.sub, pattern "*[CP]S disabled*"); - f_vty_subscr_delete(VTY, g_pars.sub); + f_ConnHdlr_subscr_delete(g_pars.sub);
setverdict(pass); } @@ -1814,7 +1858,7 @@
/* Location update */ res := f_perform_UL(g_pars.sub.imsi, ?); - f_vty_subscr_delete(VTY, g_pars.sub); + f_ConnHdlr_subscr_delete(g_pars.sub); setverdict(pass); } testcase TC_subscr_create_on_demand_sai() runs on test_CT { @@ -1838,7 +1882,7 @@
/* Create subscriber */ g_pars.sub.msisdn := msisdn; - f_vty_subscr_create(VTY, g_pars.sub); + f_ConnHdlr_subscr_create(g_pars.sub);
/* Send mDNS query, expect timeout */ mDNS.send(ts_MSLookup_mDNS_query(id, domain)); @@ -1872,7 +1916,7 @@ } }
- f_vty_subscr_delete(VTY, g_pars.sub); + f_ConnHdlr_subscr_delete(g_pars.sub); } testcase TC_MSLookup_mDNS_service_other_home() runs on test_CT { var hexstring imsi := f_rnd_imsi('26242'H); @@ -1922,7 +1966,7 @@
/* Create subscriber */ g_pars.sub.msisdn := '133713381339'H; - f_vty_subscr_create(VTY, g_pars.sub); + f_ConnHdlr_subscr_create(g_pars.sub);
/* Send mDNS query, expect result */ mDNS.send(ts_MSLookup_mDNS_query(id, domain)); @@ -1939,7 +1983,7 @@ } }
- f_vty_subscr_delete(VTY, g_pars.sub); + f_ConnHdlr_subscr_delete(g_pars.sub); } testcase TC_MSLookup_mDNS_service_GSUP_HLR_home() runs on test_CT { var hexstring imsi := f_rnd_imsi('26242'H);