bts: Add TC_sms_cb_cmd_cbch_sdcch{4,8}_multi()

These new tests verify that multiple SMSCB commands are equeued,
and that each related message is sent exactly once.

Change-Id: Ice22fd2689a42c3b1951a02e65664102d4eaccc2
Related: OS#4011
diff --git a/bts/BTS_Tests_SMSCB.ttcn b/bts/BTS_Tests_SMSCB.ttcn
index 6cb257c..6835f02 100644
--- a/bts/BTS_Tests_SMSCB.ttcn
+++ b/bts/BTS_Tests_SMSCB.ttcn
@@ -242,6 +242,24 @@
 	  omit }
 }
 
+private const CbchTestMsgs msgs_3m_4b_norm := {
+	{ RSL_CB_CMD_NORMAL, 3, '001000320f1141660c344dd3cba09a0c000000000000'O &
+				'000102030405060708090a0b0c0d0e0f101213141516'O &
+				'101112131415161718191a1b1c1d1e1f202223242526'O &
+				'201122232425262728292a2b2c2d2e2f303233343536'O,
+	  omit },
+	{ RSL_CB_CMD_NORMAL, 3, '002000320f1141660c344dd3cba09a0c000000000000'O &
+				'002102030405060708090a0b0c0d0e0f101213141516'O &
+				'102112131415161718191a1b1c1d1e1f202223242526'O &
+				'202122232425262728292a2b2c2d2e2f303233343536'O,
+	  omit },
+	{ RSL_CB_CMD_NORMAL, 3, '003000320f1141660c344dd3cba09a0c000000000000'O &
+				'003102030405060708090a0b0c0d0e0f101213141516'O &
+				'103112131415161718191a1b1c1d1e1f202223242526'O &
+				'203122232425262728292a2b2c2d2e2f303233343536'O,
+	  omit }
+}
+
 /* transmit single-block SMSCB COMMAND */
 testcase TC_sms_cb_cmd_sdcch4_1block() runs on test_CT {
 	var CbchTestPars pars := {
@@ -306,6 +324,22 @@
 	f_TC_smscb(pars);
 }
 
+/* transmit multiple commands of each 4 blocks */
+testcase TC_sms_cb_cmd_sdcch4_multi() runs on test_CT {
+	var CbchTestPars pars := {
+		use_sdcch4 := true,
+		msgs := msgs_3m_4b_norm
+	};
+	f_TC_smscb(pars);
+}
+testcase TC_sms_cb_cmd_sdcch8_multi() runs on test_CT {
+	var CbchTestPars pars := {
+		use_sdcch4 := false,
+		msgs := msgs_3m_4b_norm
+	};
+	f_TC_smscb(pars);
+}
+
 /* transmit SMSCB COMMAND with SCHEDULE payload */
 testcase TC_sms_cb_cmd_sdcch4_schedule() runs on test_CT {
 	var CbchTestPars pars := {
@@ -333,12 +367,14 @@
 	execute( TC_sms_cb_cmd_sdcch4_2block() );
 	execute( TC_sms_cb_cmd_sdcch4_3block() );
 	execute( TC_sms_cb_cmd_sdcch4_4block() );
+	execute( TC_sms_cb_cmd_sdcch4_multi() );
 	execute( TC_sms_cb_cmd_sdcch4_schedule() );
 	if (false) { /* FIXME: SDCCH/8 support broken, needs trxcon + L1CTL work */
 	execute( TC_sms_cb_cmd_sdcch8_1block() );
 	execute( TC_sms_cb_cmd_sdcch8_2block() );
 	execute( TC_sms_cb_cmd_sdcch8_3block() );
 	execute( TC_sms_cb_cmd_sdcch8_4block() );
+	execute( TC_sms_cb_cmd_sdcch8_multi() );
 	execute( TC_sms_cb_cmd_sdcch8_schedule() );
 	}
 }