pcu: Introduce test TC_cs_max_dl and TC_dl_cs1_to_cs4

Change-Id: If847d091f3f4e6a7c77fbadc7280423637c50b35
diff --git a/pcu/GPRS_Components.ttcn b/pcu/GPRS_Components.ttcn
index 7093f31..1cbca4c 100644
--- a/pcu/GPRS_Components.ttcn
+++ b/pcu/GPRS_Components.ttcn
@@ -949,19 +949,12 @@
 	}
 }
 
-/* High level (task specific) helper for receiving and matching GPRS/EGPRS data blocks */
-function f_rx_rlcmac_dl_block_exp_data(out RlcmacDlBlock dl_block, out uint32_t dl_fn,
+/* High level (task specific) helper for  matching GPRS/EGPRS data blocks */
+function f_rlcmac_dl_block_exp_data(in RlcmacDlBlock dl_block,
 				       template (present) octetstring data := ?,
 				       template (present) uint7_t exp_bsn := ?,
-				       template (present) CodingScheme exp_cs := ?,
-				       template (value) TsTrxBtsNum nr := ts_TsTrxBtsNum)
+				       template (present) CodingScheme exp_cs := ?)
 runs on MS_BTS_IFACE_CT {
-	/* FIXME: ideally we should use an alt statement with timeout here, rather than
-	 * having +100500 layers of abstraction. This would facilitate developing the
-	 * multi-TBF/-TRX/-BTS tests, where you cannot expect that the first received
-	 * block is exactly what you need. */
-	f_rx_rlcmac_dl_block(dl_block, dl_fn, nr := nr);
-
 	/* Make sure it's either GPRS or EGPRS data block */
 	if (not match(dl_block, tr_RLCMAC_DATA)) {
 		setverdict(fail, "Failed to match DL DATA: ", dl_block, " vs ", tr_RLCMAC_DATA);
@@ -979,6 +972,22 @@
 	}
 }
 
+/* High level (task specific) helper for receiving and matching GPRS/EGPRS data blocks */
+function f_rx_rlcmac_dl_block_exp_data(out RlcmacDlBlock dl_block, out uint32_t dl_fn,
+				       template (present) octetstring data := ?,
+				       template (present) uint7_t exp_bsn := ?,
+				       template (present) CodingScheme exp_cs := ?,
+				       template (value) TsTrxBtsNum nr := ts_TsTrxBtsNum)
+runs on MS_BTS_IFACE_CT {
+	/* FIXME: ideally we should use an alt statement with timeout here, rather than
+	 * having +100500 layers of abstraction. This would facilitate developing the
+	 * multi-TBF/-TRX/-BTS tests, where you cannot expect that the first received
+	 * block is exactly what you need. */
+	f_rx_rlcmac_dl_block(dl_block, dl_fn, nr := nr);
+
+	f_rlcmac_dl_block_exp_data(dl_block, data, exp_bsn, exp_cs);
+}
+
 function f_dl_block_ack_fn(in RlcmacDlBlock dl_block, uint32_t dl_fn)
 runs on MS_BTS_IFACE_CT return uint32_t {
 	var boolean rrbp_valid;