From 5e307b49ab4cfe5d7085fc2839ac4977a3c32d19 Mon Sep 17 00:00:00 2001 From: Alexander Couzens Date: Tue, 22 May 2018 18:12:20 +0200 Subject: SGSN: add TC_hlr_location_cancel_request_update MS <-> SGSN: GMM Attach HLR -> SGSN: Cancel Location Request HLR <- SGSN: Cancel Location Ack Change-Id: I5d3a818eb0a4eb3b0d4bd7bd88874bd2ac6adb11 --- sgsn/SGSN_Tests.ttcn | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) diff --git a/sgsn/SGSN_Tests.ttcn b/sgsn/SGSN_Tests.ttcn index 0685e302..f8ce5e77 100644 --- a/sgsn/SGSN_Tests.ttcn +++ b/sgsn/SGSN_Tests.ttcn @@ -1249,6 +1249,46 @@ testcase TC_attach_second_attempt() runs on test_CT { } +private function f_TC_hlr_location_cancel_request_update(charstring id) runs on BSSGP_ConnHdlr { + /* MS: perform regular attach */ + f_TC_attach(id); + + /* HLR: cancel the location request */ + GSUP.send(ts_GSUP_CL_REQ(g_pars.imsi, OSMO_GSUP_CANCEL_TYPE_UPDATE)); + GSUP.receive(tr_GSUP_CL_RES(g_pars.imsi)); + GSUP.send(ts_GSUP_UL_RES(g_pars.imsi)); + + /* ensure no Detach Request got received */ + timer T := 5.0; + T.start; + alt { + [] BSSGP.receive(tr_BD_L3_MT(tr_GMM_DET_REQ_MT(*, *, *))) { + T.stop; + setverdict(fail, "Unexpected GMM Detach Request"); + } + [] T.timeout { + setverdict(pass); + self.stop; + } + [] BSSGP.receive { + repeat; + } + } +} + +testcase TC_hlr_location_cancel_request_update() runs on test_CT { + /* MS <-> SGSN: GMM Attach + * HLR -> SGSN: Cancel Location Request + * HLR <- SGSN: Cancel Location Ack + */ + var BSSGP_ConnHdlr vc_conn; + f_init(); + f_sleep(1.0); + vc_conn := f_start_handler(refers(f_TC_hlr_location_cancel_request_update), testcasename(), g_gb[0], 31); + vc_conn.done; +} + + private function f_TC_hlr_location_cancel_request_withdraw(charstring id) runs on BSSGP_ConnHdlr { /* MS: perform regular attach */ f_TC_attach(id); @@ -1340,6 +1380,7 @@ control { execute( TC_attach_combined() ); execute( TC_attach_accept_all() ); execute( TC_attach_closed() ); + execute( TC_hlr_location_cancel_request_update(), 10.0 ); execute( TC_hlr_location_cancel_request_withdraw(), 5.0 ); execute( TC_hlr_location_cancel_request_unknown_subscriber_withdraw(), 5.0 ); execute( TC_hlr_location_cancel_request_unknown_subscriber_update(), 5.0 ); -- cgit v1.2.3