msc: Fix generation of IMSI/IMEI/MSISDN
Now each test case uses unique IMSI/IMEI/MSISDN numbers, which helps
to identify test cases from traces or from VTY introspection
Change-Id: I54d05e8ec7aeecc48666d3b369351212a6a0ea6f
diff --git a/msc_tests/MSC_Tests.ttcn b/msc_tests/MSC_Tests.ttcn
index e0ee84c..5976b45 100644
--- a/msc_tests/MSC_Tests.ttcn
+++ b/msc_tests/MSC_Tests.ttcn
@@ -299,21 +299,24 @@
type function void_fn(charstring id, BSC_ConnHdlrPars pars) runs on BSC_ConnHdlr;
-function f_gen_imei(hexstring prefix, integer suffix) return hexstring {
- var integer suffix_len := 15 - lengthof(prefix);
- suffix_len := suffix_len;
- return prefix & int2hex(suffix, suffix_len);
+private function f_concat_pad(integer tot_len, hexstring prefix, integer suffix) return hexstring {
+ var integer suffix_len := tot_len - lengthof(prefix);
+ var charstring suffix_ch := int2str(suffix);
+ var integer pad_len := suffix_len - lengthof(suffix_ch);
+
+ return prefix & int2hex(0, pad_len) & str2hex(suffix_ch);
}
-function f_gen_imsi(hexstring prefix, integer suffix) return hexstring {
- var integer suffix_len := 15 - lengthof(prefix);
- suffix_len := suffix_len-1; /* FIXME: fix odd IMSI length */
- return prefix & int2hex(suffix, suffix_len);
+function f_gen_imei(integer suffix) return hexstring {
+ return f_concat_pad(15, '49999'H, suffix);
}
-function f_gen_msisdn(hexstring prefix, integer suffix) return hexstring {
- var integer suffix_len := 12 - lengthof(prefix);
- return prefix & int2hex(suffix, suffix_len);
+function f_gen_imsi(integer suffix) return hexstring {
+ return f_concat_pad(15, '26242'H, suffix);
+}
+
+function f_gen_msisdn(integer suffix) return hexstring {
+ return f_concat_pad(12, '49123'H, suffix);
}
/* FIXME: move into BSC_ConnectionHandler? */
@@ -323,9 +326,9 @@
sccp_addr_own := g_sccp_addr_own,
sccp_addr_peer := g_sccp_addr_peer,
cell_id := valueof(ts_CellId_CGI('262'H, '042'H, 23, 42)),
- imei := f_gen_imei('49999'H, imsi_suffix),
- imsi := f_gen_imsi('26242'H, imsi_suffix),
- msisdn := f_gen_msisdn('491239999'H, imsi_suffix),
+ imei := f_gen_imei(imsi_suffix),
+ imsi := f_gen_imsi(imsi_suffix),
+ msisdn := f_gen_msisdn(imsi_suffix),
tmsi := omit,
cm2 := valueof(ts_CM2_default),
cm3 := omit
@@ -503,7 +506,7 @@
var BSC_ConnHdlr vc_conn;
f_init();
f_vty_config(MSCVTY, "network", "authentication optional");
- vc_conn := f_start_handler(refers(f_tc_cmserv_imsi_unknown), testcasename(), 5);
+ vc_conn := f_start_handler(refers(f_tc_cmserv_imsi_unknown), testcasename(), 6);
vc_conn.done;
}
@@ -555,7 +558,7 @@
f_init();
f_vty_config(MSCVTY, "network", "authentication optional");
- vc_conn := f_start_handler(refers(f_tc_lu_and_mo_call), testcasename(), 6);
+ vc_conn := f_start_handler(refers(f_tc_lu_and_mo_call), testcasename(), 7);
vc_conn.done;
}
@@ -589,7 +592,7 @@
f_init();
f_vty_config(MSCVTY, "network", "authentication required");
- vc_conn := f_start_handler(refers(f_tc_lu_auth_sai_timeout), testcasename(), 7);
+ vc_conn := f_start_handler(refers(f_tc_lu_auth_sai_timeout), testcasename(), 8);
vc_conn.done;
}
@@ -623,7 +626,7 @@
f_init();
f_vty_config(MSCVTY, "network", "authentication required");
- vc_conn := f_start_handler(refers(f_tc_lu_auth_sai_err), testcasename(), 8);
+ vc_conn := f_start_handler(refers(f_tc_lu_auth_sai_err), testcasename(), 9);
vc_conn.done;
}
@@ -655,7 +658,7 @@
var BSC_ConnHdlr vc_conn;
f_init();
- vc_conn := f_start_handler(refers(f_tc_lu_clear_request), testcasename(), 8);
+ vc_conn := f_start_handler(refers(f_tc_lu_clear_request), testcasename(), 10);
vc_conn.done;
}
@@ -684,7 +687,7 @@
var BSC_ConnHdlr vc_conn;
f_init();
- vc_conn := f_start_handler(refers(f_tc_lu_disconnect), testcasename(), 9);
+ vc_conn := f_start_handler(refers(f_tc_lu_disconnect), testcasename(), 11);
vc_conn.done;
}
@@ -720,7 +723,7 @@
f_init();
f_vty_config(MSCVTY, "network", "authentication optional");
- vc_conn := f_start_handler(refers(f_tc_lu_by_imei), testcasename(), 9);
+ vc_conn := f_start_handler(refers(f_tc_lu_by_imei), testcasename(), 12);
vc_conn.done;
}
@@ -768,7 +771,7 @@
f_init();
f_vty_config(MSCVTY, "network", "authentication optional");
- vc_conn := f_start_handler(refers(f_tc_lu_tmsi_noauth_unknown), testcasename(), 1);
+ vc_conn := f_start_handler(refers(f_tc_lu_tmsi_noauth_unknown), testcasename(), 13);
vc_conn.done;
}
@@ -795,7 +798,7 @@
var BSC_ConnHdlr vc_conn;
f_init();
- vc_conn := f_start_handler(refers(f_tc_imsi_detach_by_imsi), testcasename(), 2);
+ vc_conn := f_start_handler(refers(f_tc_imsi_detach_by_imsi), testcasename(), 14);
vc_conn.done;
}
@@ -821,7 +824,7 @@
var BSC_ConnHdlr vc_conn;
f_init();
- vc_conn := f_start_handler(refers(f_tc_imsi_detach_by_tmsi), testcasename(), 3);
+ vc_conn := f_start_handler(refers(f_tc_imsi_detach_by_tmsi), testcasename(), 15);
vc_conn.done;
}
@@ -847,7 +850,7 @@
var BSC_ConnHdlr vc_conn;
f_init();
- vc_conn := f_start_handler(refers(f_tc_imsi_detach_by_imei), testcasename(), 4);
+ vc_conn := f_start_handler(refers(f_tc_imsi_detach_by_imei), testcasename(), 16);
vc_conn.done;
}
@@ -911,7 +914,7 @@
var BSC_ConnHdlr vc_conn;
f_init();
- vc_conn := f_start_handler(refers(f_tc_emerg_call_imei_reject), testcasename(), 5);
+ vc_conn := f_start_handler(refers(f_tc_emerg_call_imei_reject), testcasename(), 17);
vc_conn.done;
}
@@ -928,7 +931,7 @@
f_init();
f_vty_config(MSCVTY, "network", "authentication optional");
- vc_conn := f_start_handler(refers(f_tc_emerg_call_imsi), testcasename(), 6);
+ vc_conn := f_start_handler(refers(f_tc_emerg_call_imsi), testcasename(), 18);
vc_conn.done;
}
@@ -949,7 +952,7 @@
var BSC_ConnHdlr vc_conn;
f_init();
- vc_conn := f_start_handler(refers(f_tc_cm_serv_req_vgcs_reject), testcasename(), 7);
+ vc_conn := f_start_handler(refers(f_tc_cm_serv_req_vgcs_reject), testcasename(), 19);
vc_conn.done;
}
@@ -970,7 +973,7 @@
var BSC_ConnHdlr vc_conn;
f_init();
- vc_conn := f_start_handler(refers(f_tc_cm_serv_req_vbs_reject), testcasename(), 8);
+ vc_conn := f_start_handler(refers(f_tc_cm_serv_req_vbs_reject), testcasename(), 20);
vc_conn.done;
}
@@ -991,7 +994,7 @@
var BSC_ConnHdlr vc_conn;
f_init();
- vc_conn := f_start_handler(refers(f_tc_cm_serv_req_lcs_reject), testcasename(), 9);
+ vc_conn := f_start_handler(refers(f_tc_cm_serv_req_lcs_reject), testcasename(), 21);
vc_conn.done;
}