Review at  https://gerrit.osmocom.org/6039

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
---
M msc_tests/MSC_Tests.ttcn
1 file changed, 33 insertions(+), 30 deletions(-)


  git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks 
refs/changes/39/6039/1

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

-- 
To view, visit https://gerrit.osmocom.org/6039
To unsubscribe, visit https://gerrit.osmocom.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I54d05e8ec7aeecc48666d3b369351212a6a0ea6f
Gerrit-PatchSet: 1
Gerrit-Project: osmo-ttcn3-hacks
Gerrit-Branch: master
Gerrit-Owner: Harald Welte <[email protected]>

Reply via email to