PCU_Tests: introduce and use f_TC_pcuif_fh_params_gen()

Change-Id: I297b52410afafedad51d5b51734e946c4d62e8d2
Related: SYS#4868, OS#4547
diff --git a/pcu/PCU_Tests.ttcn b/pcu/PCU_Tests.ttcn
index 9bcf9c6..2d20975 100644
--- a/pcu/PCU_Tests.ttcn
+++ b/pcu/PCU_Tests.ttcn
@@ -2161,6 +2161,15 @@
 	f_shutdown(__BFILE__, __LINE__, final := true);
 }
 
+/* Randomly generate a set of hopping parameters for one timeslot */
+private function f_TC_pcuif_fh_params_gen(integer ma_len)
+return template (value) PCUIF_InfoTrxTs {
+	return ts_PCUIF_InfoTrxTsH1(tsc := f_rnd_int(7),
+				    hsn := f_rnd_int(63),
+				    maio := f_rnd_int(63),
+				    ma := f_rnd_bitstring(ma_len));
+}
+
 private function f_TC_pcuif_fh_check_imm_ass(in PCUIF_info_ind info_ind,
 					     in GsmRrMessage rr_msg)
 {
@@ -2210,12 +2219,8 @@
 	var template PCUIF_info_ind info_ind := ts_PCUIF_INFO_default;
 	var GprsMS ms := valueof(t_GprsMS_def);
 
-	/* Enable frequency hopping of TRX0/TS7 */
-	info_ind.trx.v10[0].ts[7] := ts_PCUIF_InfoTrxTsH1(
-		tsc := f_rnd_int(7),
-		hsn := f_rnd_int(63),
-		maio := f_rnd_int(63),
-		ma := f_rnd_bitstring(32));
+	/* Enable frequency hopping on TRX0/TS7 */
+	info_ind.trx.v10[0].ts[7] := f_TC_pcuif_fh_params_gen(32);
 
 	/* Initialize the PCU interface abstraction */
 	f_init_raw(testcasename(), info_ind);
@@ -2235,12 +2240,8 @@
 	var template PCUIF_info_ind info_ind := ts_PCUIF_INFO_default;
 	var GprsMS ms := valueof(t_GprsMS_def);
 
-	/* Enable frequency hopping of TRX0/TS7 */
-	info_ind.trx.v10[0].ts[7] := ts_PCUIF_InfoTrxTsH1(
-		tsc := f_rnd_int(7),
-		hsn := f_rnd_int(63),
-		maio := f_rnd_int(63),
-		ma := f_rnd_bitstring(32));
+	/* Enable frequency hopping on TRX0/TS7 */
+	info_ind.trx.v10[0].ts[7] := f_TC_pcuif_fh_params_gen(32);
 
 	/* Initialize the PCU interface abstraction */
 	f_init_raw(testcasename(), info_ind);
@@ -2257,12 +2258,8 @@
 	var template PCUIF_info_ind info_ind := ts_PCUIF_INFO_default;
 	var GprsMS ms := valueof(t_GprsMS_def);
 
-	/* Enable frequency hopping of TRX0/TS7 */
-	info_ind.trx.v10[0].ts[7] := ts_PCUIF_InfoTrxTsH1(
-		tsc := f_rnd_int(7),
-		hsn := f_rnd_int(63),
-		maio := f_rnd_int(63),
-		ma := f_rnd_bitstring(16));
+	/* Enable frequency hopping on TRX0/TS7 */
+	info_ind.trx.v10[0].ts[7] := f_TC_pcuif_fh_params_gen(16);
 
 	/* Initialize NS/BSSGP side */
 	f_init_bssgp();
@@ -2331,12 +2328,8 @@
 	var GprsMS ms := valueof(t_GprsMS_def);
 	var uint32_t poll_fn;
 
-	/* Enable frequency hopping of TRX0/TS7 */
-	info_ind.trx.v10[0].ts[7] := ts_PCUIF_InfoTrxTsH1(
-		tsc := f_rnd_int(7),
-		hsn := f_rnd_int(63),
-		maio := f_rnd_int(63),
-		ma := f_rnd_bitstring(33));
+	/* Enable frequency hopping on TRX0/TS7 */
+	info_ind.trx.v10[0].ts[7] := f_TC_pcuif_fh_params_gen(33);
 
 	/* Initialize the PCU interface abstraction */
 	f_init_raw(testcasename(), info_ind);
@@ -2377,12 +2370,8 @@
 	var RlcmacDlBlock dl_block;
 	var uint32_t poll_fn;
 
-	/* Enable frequency hopping of TRX0/TS7 */
-	info_ind.trx.v10[0].ts[7] := ts_PCUIF_InfoTrxTsH1(
-		tsc := f_rnd_int(7),
-		hsn := f_rnd_int(63),
-		maio := f_rnd_int(63),
-		ma := f_rnd_bitstring(33));
+	/* Enable frequency hopping on TRX0/TS7 */
+	info_ind.trx.v10[0].ts[7] := f_TC_pcuif_fh_params_gen(33);
 
 	/* Initialize NS/BSSGP side */
 	f_init_bssgp();