diff options
author | Harald Welte <laforge@gnumonks.org> | 2018-03-01 22:42:22 +0100 |
---|---|---|
committer | Harald Welte <laforge@gnumonks.org> | 2018-03-01 22:42:22 +0100 |
commit | 09b3c50e8507f9fc026ef48deca85609fa8158c0 (patch) | |
tree | f7365463a1c06166a2e9236d1b0a22082de07bf2 /hlr | |
parent | 7029606aa3164119e012db552d6371b22c7c1817 (diff) |
hlr: Add TC_vty_msisdn_isd
This tests whether the HLR is sending an InsertSubscriberData to the VLR
of an active/registered subscriber after the MSISDN is updated in the
HLR.
Change-Id: I597a3c2d49aa6fa65007304105363a3e99fa4ae9
Related: OS#2785
Diffstat (limited to 'hlr')
-rw-r--r-- | hlr/HLR_Tests.ttcn | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/hlr/HLR_Tests.ttcn b/hlr/HLR_Tests.ttcn index 44e713ec..bb417a5f 100644 --- a/hlr/HLR_Tests.ttcn +++ b/hlr/HLR_Tests.ttcn @@ -210,6 +210,12 @@ function f_vty_subscr_create(HlrSubscriber sub) runs on test_CT { } } +function f_vty_subscr_update_msisdn(HlrSubscriber sub, hexstring new_msisdn) runs on test_CT { + var charstring prefix := valueof(t_subscr_prefix(sub.imsi)); + f_vty_transceive_match(VTY, prefix & "update msisdn " & hex2str(new_msisdn), + pattern "% Updated subscriber *"); +} + /* perform 'delete' on subscriber */ function f_vty_subscr_delete(HlrSubscriber sub) runs on test_CT { var charstring prefix := valueof(t_subscr_prefix(sub.imsi)); @@ -394,6 +400,40 @@ testcase TC_vty() runs on test_CT { setverdict(pass); } +/* VTY changes to MSISDN should result in ISD to current VLR */ +testcase TC_vty_msisdn_isd() runs on test_CT { + var HlrSubscriber sub; + var hexstring new_msisdn; + var GSUP_PDU res; + timer T := 5.0; + + f_init(); + + /* Create Subscriber */ + sub := valueof(t_Sub2G(f_rnd_imsi('26242'H), '49161'H & f_rnd_hexstring(7, 9), "comp128v1")); + f_vty_subscr_create(sub); + + /* Perform UpdateLocation (VLR now known to HLR) */ + res := f_perform_UL(sub.imsi, sub.msisdn); + + /* Then change IMSI via VTY */ + new_msisdn := '49161'H & f_rnd_hexstring(7, 9); + f_vty_subscr_update_msisdn(sub, new_msisdn); + /* And expect InsertSubscriberData as result */ + T.start; + alt { + [] GSUP.receive(tr_GSUP_ISD_REQ(sub.imsi, new_msisdn)) { + GSUP.send(ts_GSUP_ISD_RES(sub.imsi)); + sub.msisdn := new_msisdn; + setverdict(pass); + } + [] GSUP.receive { repeat; } + [] T.timeout { + setverdict(fail, "Timeout waiting for ISD.req"); + } + } +} + /* TODO: * UL with ISD error * UL with ISD timeout @@ -415,6 +455,7 @@ control { execute( TC_gsup_ul_unknown_imsi() ); execute( TC_gsup_ul() ); execute( TC_vty() ); + execute( TC_vty_msisdn_isd() ); }; }; |