SGSN_Tests: add test case TC_attach_pdp_act_gmm_detach

MS  -> SGSN: Attach Request
MS <-> SGSN: [..]
MS  -> SGSN: Attach Complete
MS  -> SGSN: PDP Activate Request
MS <-  SGSN: PDP Activate Accept
MS  -> SGSN: GMM Detach Request
MS <-  SGSN: GMM Detach Accept

Related-to: OS#1881
Change-Id: Ibafbbb8ed99357d1e2e13d576b2624939388e85b
diff --git a/sgsn/SGSN_Tests.ttcn b/sgsn/SGSN_Tests.ttcn
index 89401f4..2bdbfb9 100644
--- a/sgsn/SGSN_Tests.ttcn
+++ b/sgsn/SGSN_Tests.ttcn
@@ -2289,6 +2289,31 @@
 	vc_conn.done;
 }
 
+private function f_TC_attach_pdp_act_gmm_detach(charstring id) runs on BSSGP_ConnHdlr {
+	var PdpActPars apars := valueof(t_PdpActPars(mp_ggsn_ip));
+
+	/* first perform regular attach */
+	f_TC_attach(id);
+	/* then activate PDP context */
+	f_pdp_ctx_act(apars);
+	/* do a normal detach */
+	f_detach_mo(c_GMM_DTT_MO_GPRS, false, true);
+}
+
+testcase TC_attach_pdp_act_gmm_detach() runs on test_CT {
+	/* MS  -> SGSN: Attach Request
+	 * MS <-> SGSN: [..]
+	 * MS  -> SGSN: Attach Complete
+	 * MS  -> SGSN: PDP Activate Request
+	 * MS <-  SGSN: PDP Activate Accept
+	 * MS  -> SGSN: GMM Detach Request
+	 * MS <-  SGSN: GMM Detach Accept
+	 */
+	var BSSGP_ConnHdlr vc_conn;
+	f_init();
+	vc_conn := f_start_handler(refers(f_TC_attach_pdp_act_gmm_detach), testcasename(), g_gb, 26);
+	vc_conn.done;
+}
 
 
 control {
@@ -2334,6 +2359,7 @@
 	execute( TC_attach_restart_ctr_create() );
 	execute( TC_attach_pdp_act_deact_mt_t3395_expire() );
 	execute( TC_attach_pdp_act_user_error_ind_ggsn() );
+	execute( TC_attach_pdp_act_gmm_detach() );
 	execute( TC_attach_gmm_attach_req_while_gmm_attach() );
 
 	execute( TC_xid_empty_l3() );