bsc: TC_assignment_csd: expect BSC to handle CSD

Related: OS#4393
Change-Id: Iff19dc704af09d09d2265d8da38fc745a3936ce4
diff --git a/bsc/BSC_Tests.ttcn b/bsc/BSC_Tests.ttcn
index 31b733f..ebcd576 100644
--- a/bsc/BSC_Tests.ttcn
+++ b/bsc/BSC_Tests.ttcn
@@ -1837,13 +1837,37 @@
 	}
 	return dt;
 }
-testcase TC_assignment_csd() runs on test_CT {
-	var template PDU_BSSAP exp_fail := tr_BSSMAP_AssignmentFail;
+
+private function f_tc_assignment_csd(charstring id) runs on MSC_ConnHdlr {
+	var template PDU_BSSAP exp_compl := f_gen_exp_compl();
 	var PDU_BSSAP ass_cmd := f_gen_ass_req();
+
 	ass_cmd.pdu.bssmap.assignmentRequest.channelType := valueof(ts_BSSMAP_IE_ChannelTypeCSD);
-	//exp_fail.pdu.bssmap.assignmentFailure.cause.causeValue := int2bit(enum2int(GSM0808_CAUSE_REQ_CODEC_TYPE_OR_CONFIG_UNAVAIL), 7);
-	var DchanTuple dt := f_assignment_exp(ass_cmd, exp_fail, "BSC accepted Assignment for CSD");
-	f_perform_clear_test_ct(dt);
+	ass_cmd.pdu.bssmap.assignmentRequest.codecList := valueof(ts_BSSMAP_IE_CodecList({ts_CodecCSData}));
+
+	ass_cmd.pdu.bssmap.assignmentRequest.channelType.speechId_DataIndicator := GSM0808_DATA_RATE_TRANSP_4k8;
+
+	f_establish_fully(ass_cmd, exp_compl);
+	f_perform_clear();
+}
+testcase TC_assignment_csd() runs on test_CT {
+	if (Misc_Helpers.f_osmo_repo_is("nightly")) { /* osmo-bsc > 1.10.0 */
+		var MSC_ConnHdlr vc_conn;
+		var TestHdlrParams pars := f_gen_test_hdlr_pars();
+		pars.encr := valueof(t_EncrParams('01'O, f_rnd_octstring(8)));
+
+		f_init(1, true);
+		f_sleep(1.0);
+		vc_conn := f_start_handler(refers(f_tc_assignment_csd), pars);
+		vc_conn.done;
+	} else {
+		var template PDU_BSSAP exp_fail := tr_BSSMAP_AssignmentFail;
+		var PDU_BSSAP ass_cmd := f_gen_ass_req();
+		ass_cmd.pdu.bssmap.assignmentRequest.channelType := valueof(ts_BSSMAP_IE_ChannelTypeCSD);
+		//exp_fail.pdu.bssmap.assignmentFailure.cause.causeValue := int2bit(enum2int(GSM0808_CAUSE_REQ_CODEC_TYPE_OR_CONFIG_UNAVAIL), 7);
+		var DchanTuple dt := f_assignment_exp(ass_cmd, exp_fail, "BSC accepted Assignment for CSD");
+		f_perform_clear_test_ct(dt);
+	}
 	f_shutdown_helper();
 }