osmith submitted this change.

View Change

Approvals: daniel: Looks good to me, approved fixeria: Looks good to me, but someone else must approve Jenkins Builder: Verified
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(-)

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);

To view, visit change 41226. To unsubscribe, or for help writing mail filters, visit settings.

Gerrit-MessageType: merged
Gerrit-Project: osmo-ttcn3-hacks
Gerrit-Branch: master
Gerrit-Change-Id: I6aafa118645346fd709c56de1e38771ed4de93b7
Gerrit-Change-Number: 41226
Gerrit-PatchSet: 2
Gerrit-Owner: osmith <osmith@sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: daniel <dwillmann@sysmocom.de>
Gerrit-Reviewer: dexter <pmaier@sysmocom.de>
Gerrit-Reviewer: fixeria <vyanitskiy@sysmocom.de>
Gerrit-Reviewer: osmith <osmith@sysmocom.de>