bsc: Add TC_unsol_ho_fail test case for unsolicited handover failure

Change-Id: Ic3bd71d77d03cb7eebabdf98ba0bfbafd24ec0ea
diff --git a/bsc/BSC_Tests.ttcn b/bsc/BSC_Tests.ttcn
index b9d61dd..7d4a140 100644
--- a/bsc/BSC_Tests.ttcn
+++ b/bsc/BSC_Tests.ttcn
@@ -1454,6 +1454,35 @@
 	vc_conn.done;
 }
 
+/* unsolicited HANDOVER FAIL (without ASSIGN) from MS shouldn't bring BSC down */
+private function f_tc_unsol_ho_fail(charstring id) runs on MSC_ConnHdlr {
+	var TestHdlrParams pars := valueof(t_def_TestHdlrPars);
+	f_create_chan_and_exp(pars);
+	/* we should now have a COMPL_L3 at the MSC */
+	BSSAP.receive(tr_BSSMAP_ComplL3);
+
+	f_rsl_send_l3(ts_RRM_HandoverFailure('00'O));
+	timer T := 5.0;
+	T.start;
+	alt {
+	[] BSSAP.receive {
+		setverdict(fail, "Unexpected BSSMAP");
+		}
+	[] T.timeout {
+		setverdict(pass);
+		}
+	}
+}
+
+testcase TC_unsol_ho_fail() runs on test_CT {
+	var MSC_ConnHdlr vc_conn;
+	f_init(1, true);
+	f_sleep(1.0);
+	vc_conn := f_start_handler(refers(f_tc_unsol_ho_fail), testcasename());
+	vc_conn.done;
+}
+
+
 
 control {
 	/* CTRL interface testing */
@@ -1519,6 +1548,7 @@
 
 	execute( TC_classmark() );
 	execute( TC_unsol_ass_fail() );
+	execute( TC_unsol_ho_fail() );
 }
 
 }