aboutsummaryrefslogtreecommitdiffstats
path: root/sgsn/SGSN_Tests.ttcn
diff options
context:
space:
mode:
authorHarald Welte <laforge@gnumonks.org>2018-02-16 21:53:48 +0100
committerHarald Welte <laforge@gnumonks.org>2018-02-18 10:18:14 +0100
commit3823e2ea77beb5b4c5e3fe668c7ec2b81cf19007 (patch)
tree7c26efe4d42f8269b7fb903af54b712c66854cc0 /sgsn/SGSN_Tests.ttcn
parent5b7c812e03b37413aa598486397484d076903cac (diff)
sgsn: Add TC_attach_combined
Diffstat (limited to 'sgsn/SGSN_Tests.ttcn')
-rw-r--r--sgsn/SGSN_Tests.ttcn33
1 files changed, 33 insertions, 0 deletions
diff --git a/sgsn/SGSN_Tests.ttcn b/sgsn/SGSN_Tests.ttcn
index fd5a6640..d6674820 100644
--- a/sgsn/SGSN_Tests.ttcn
+++ b/sgsn/SGSN_Tests.ttcn
@@ -387,6 +387,38 @@ testcase TC_attach_gsup_lu_timeout() runs on test_CT {
vc_conn.done;
}
+/* Attempt of combined GPRS + IMSI attach: network should ACK only GPRS attach */
+private function f_TC_attach_combined(charstring id) runs on BSSGP_ConnHdlr {
+ var MobileIdentityLV mi;
+ var RoutingAreaIdentificationV old_ra := f_random_RAI();
+
+ if (ispresent(g_pars.p_tmsi)) {
+ mi := valueof(ts_MI_TMSI_LV(g_pars.p_tmsi));
+ } else {
+ mi := valueof(ts_MI_IMSI_LV(g_pars.imsi));
+ }
+
+ BSSGP.send(ts_GMM_ATTACH_REQ(mi, old_ra, true, false, omit, omit));
+ f_gmm_auth();
+ /* Expect MSC to perform LU with HLR */
+ GSUP.receive(tr_GSUP_UL_REQ(g_pars.imsi));
+ GSUP.send(ts_GSUP_ISD_REQ(g_pars.imsi, g_pars.msisdn));
+ GSUP.receive(tr_GSUP_ISD_RES(g_pars.imsi));
+ GSUP.send(ts_GSUP_UL_RES(g_pars.imsi));
+
+ BSSGP.receive(tr_BD_L3(tr_GMM_ATTACH_ACCEPT('001'B, ?, ?)));
+ BSSGP.send(ts_GMM_ATTACH_COMPL);
+ setverdict(pass);
+}
+
+testcase TC_attach_combined() runs on test_CT {
+ var BSSGP_ConnHdlr vc_conn;
+ f_init();
+ f_sleep(1.0);
+ vc_conn := f_start_handler(refers(f_TC_attach_combined), testcasename(), g_gb[0], 5);
+ vc_conn.done;
+}
+
control {
@@ -394,6 +426,7 @@ control {
execute( TC_attach_auth_id_timeout() );
execute( TC_attach_auth_sai_timeout() );
execute( TC_attach_gsup_lu_timeout() );
+ execute( TC_attach_combined() );
}