Change in osmo-bsc[master]: handover test: add 'expect-ts-use' to clarify tests

This is merely a historical archive of years 2008-2021, before the migration to mailman3.

A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/gerrit-log@lists.osmocom.org/.

neels gerrit-no-reply at lists.osmocom.org
Tue Nov 17 16:27:22 UTC 2020


neels has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21197 )

Change subject: handover test: add 'expect-ts-use' to clarify tests
......................................................................

handover test: add 'expect-ts-use' to clarify tests

In handover tests, it can be hard to follow which lchans are currently
occupied. The expect-ts-use command is like an assertion for a specific
distribution of used lchans, and helps understanding test intentions.

Change-Id: I6f4b573de7faace2d6bfe4f58b568e69c74dd07d
---
M tests/handover/handover_test.c
1 file changed, 187 insertions(+), 0 deletions(-)

Approvals:
  Jenkins Builder: Verified
  laforge: Looks good to me, but someone else must approve
  pespin: Looks good to me, but someone else must approve
  neels: Looks good to me, approved



diff --git a/tests/handover/handover_test.c b/tests/handover/handover_test.c
index 6a24fde..0abe41d 100644
--- a/tests/handover/handover_test.c
+++ b/tests/handover/handover_test.c
@@ -273,6 +273,74 @@
 	return bts;
 }
 
+const char *ts_use_str(struct gsm_bts_trx_ts *ts)
+{
+	switch (ts->pchan_is) {
+	case GSM_PCHAN_CCCH_SDCCH4:
+		return "c+s4";
+
+	case GSM_PCHAN_NONE:
+		return "-";
+
+	case GSM_PCHAN_TCH_F:
+		if (lchan_state_is(&ts->lchan[0], LCHAN_ST_ESTABLISHED))
+			return "TCH/F";
+		else
+			return "-";
+
+	case GSM_PCHAN_TCH_H:
+		if (lchan_state_is(&ts->lchan[0], LCHAN_ST_ESTABLISHED)
+		    && lchan_state_is(&ts->lchan[1], LCHAN_ST_ESTABLISHED))
+			return "TCH/HH";
+		if (lchan_state_is(&ts->lchan[0], LCHAN_ST_ESTABLISHED))
+			return "TCH/H-";
+		if (lchan_state_is(&ts->lchan[1], LCHAN_ST_ESTABLISHED))
+			return "TCH/-H";
+		return "-";
+
+	default:
+		return gsm_pchan_name(ts->pchan_is);
+	}
+}
+
+bool expect_ts_use(int bts_nr, int trx_nr, const char * const *ts_use)
+{
+	struct gsm_bts *bts;
+	struct gsm_bts_trx *trx;
+	int i;
+	int mismatching_ts = -1;
+	bts = gsm_bts_num(bsc_gsmnet, bts_nr);
+	OSMO_ASSERT(bts);
+	trx = gsm_bts_trx_num(bts, trx_nr);
+	OSMO_ASSERT(trx);
+
+	fprintf(stderr, "Expect TS use:");
+	for (i = 0; i < 8; i++)
+		fprintf(stderr, "\t%s", ts_use[i]);
+	fprintf(stderr, "\n");
+	fprintf(stderr, "   Got TS use:");
+
+	for (i = 0; i < 8; i++) {
+		struct gsm_bts_trx_ts *ts = &trx->ts[i];
+		const char *use = ts_use_str(ts);
+
+		fprintf(stderr, "\t%s", use);
+
+		if (!strcmp(ts_use[i], "*"))
+			continue;
+		if (strcmp(ts_use[i], use) && mismatching_ts < 0)
+			mismatching_ts = i;
+	}
+	fprintf(stderr, "\n");
+
+	if (mismatching_ts >= 0) {
+		fprintf(stderr, "Test failed: mismatching TS use in bts %d trx %d ts %d\n",
+		       bts_nr, trx_nr, mismatching_ts);
+		return false;
+	}
+	return true;
+}
+
 void create_conn(struct gsm_lchan *lchan)
 {
 	static unsigned int next_imsi = 0;
@@ -567,6 +635,7 @@
 
 	"create-n-bts", "7",
 	"create-ms", "0", "TCH/F", "AMR",
+	"expect-ts-use", "0", "0", "*", "TCH/F", "-", "-", "-", "-", "-", "-",
 	"meas-rep", "0", "30","0",
 		"6","0","20","1","21","2","18","3","20","4","23","5","19",
 	"expect-no-chan",
@@ -581,12 +650,15 @@
 
 	"create-n-bts", "7",
 	"create-ms", "0", "TCH/F", "AMR",
+	"expect-ts-use", "0", "0", "*", "TCH/F", "-", "-", "-", "-", "-", "-",
 	"meas-rep", "0", "10","0",
 		"6","0","20","1","21","2","18","3","20","4","23","5","19",
 	"expect-chan", "5", "1",
 	"ack-chan",
 	"expect-ho", "0", "1",
 	"ho-complete",
+	"expect-ts-use", "0", "0", "*", "-", "-", "-", "-", "-", "-", "-",
+	"expect-ts-use", "5", "0", "*", "TCH/F", "-", "-", "-", "-", "-", "-",
 	NULL
 };
 
@@ -605,6 +677,7 @@
 	"create-n-bts", "2",
 	"afs-rxlev-improve", "0", "5",
 	"create-ms", "0", "TCH/H", "AMR",
+	"expect-ts-use", "0", "0", "*", "-", "-", "-", "-", "TCH/H-", "-", "-",
 	"as-enable", "0", "0",
 	"ho-enable", "0", "0",
 	"meas-rep", "0", "0","0", "1","0","30",
@@ -615,6 +688,7 @@
 	"ack-chan",
 	"expect-ho", "0", "5",
 	"ho-complete",
+	"expect-ts-use", "0", "0", "*", "TCH/F", "-", "-", "-", "-", "-", "-",
 	"ho-enable", "0", "1",
 	"ho-enable", "1", "0",
 	"meas-rep", "0", "0","0", "1","0","30",
@@ -625,6 +699,8 @@
 	"ack-chan",
 	"expect-ho", "0", "1",
 	"ho-complete",
+	"expect-ts-use", "0", "0", "*", "-", "-", "-", "-", "-", "-", "-",
+	"expect-ts-use", "1", "0", "*", "TCH/F", "-", "-", "-", "-", "-", "-",
 	NULL
 };
 
@@ -638,11 +714,14 @@
 
 	"create-n-bts", "2",
 	"create-ms", "0", "TCH/F", "AMR",
+	"expect-ts-use", "0", "0", "*", "TCH/F", "-", "-", "-", "-", "-", "-",
 	"meas-rep", "0", "20","0", "1","0","30",
 	"expect-chan", "1", "1",
 	"ack-chan",
 	"expect-ho", "0", "1",
 	"ho-failed",
+	"expect-ts-use", "0", "0", "*", "TCH/F", "-", "-", "-", "-", "-", "-",
+	"expect-ts-use", "1", "0", "*", "-", "-", "-", "-", "-", "-", "-",
 	"meas-rep", "0", "20","0", "1","0","30",
 	"expect-no-chan",
 	NULL
@@ -659,6 +738,7 @@
 	"create-n-bts", "2",
 	"set-min-free", "1", "TCH/H", "4",
 	"create-ms", "0", "TCH/H", "HR",
+	"expect-ts-use", "0", "0", "*", "-", "-", "-", "-", "TCH/H-", "-", "-",
 	"meas-rep", "0", "20","0", "1","0","30",
 	"expect-no-chan",
 	"set-min-free", "1", "TCH/H", "3",
@@ -667,6 +747,8 @@
 	"ack-chan",
 	"expect-ho", "0", "5",
 	"ho-complete",
+	"expect-ts-use", "0", "0", "*", "-", "-", "-", "-", "-", "-", "-",
+	"expect-ts-use", "1", "0", "*", "-", "-", "-", "-", "TCH/H-", "-", "-",
 	NULL
 };
 
@@ -681,6 +763,7 @@
 	"create-n-bts", "2",
 	"set-min-free", "1", "TCH/F", "4",
 	"create-ms", "0", "TCH/F", "FR",
+	"expect-ts-use", "0", "0", "*", "TCH/F", "-", "-", "-", "-", "-", "-",
 	"meas-rep", "0", "20","0", "1","0","30",
 	"expect-no-chan",
 	"set-min-free", "1", "TCH/F", "3",
@@ -689,6 +772,8 @@
 	"ack-chan",
 	"expect-ho", "0", "1",
 	"ho-complete",
+	"expect-ts-use", "0", "0", "*", "-", "-", "-", "-", "-", "-", "-",
+	"expect-ts-use", "1", "0", "*", "TCH/F", "-", "-", "-", "-", "-", "-",
 	NULL
 };
 
@@ -703,6 +788,7 @@
 	"create-n-bts", "2",
 	"set-min-free", "1", "TCH/F", "4",
 	"create-ms", "0", "TCH/F", "EFR",
+	"expect-ts-use", "0", "0", "*", "TCH/F", "-", "-", "-", "-", "-", "-",
 	"meas-rep", "0", "20","0", "1","0","30",
 	"expect-no-chan",
 	"set-min-free", "1", "TCH/F", "3",
@@ -711,6 +797,8 @@
 	"ack-chan",
 	"expect-ho", "0", "1",
 	"ho-complete",
+	"expect-ts-use", "0", "0", "*", "-", "-", "-", "-", "-", "-", "-",
+	"expect-ts-use", "1", "0", "*", "TCH/F", "-", "-", "-", "-", "-", "-",
 	NULL
 };
 
@@ -724,11 +812,14 @@
 	"create-n-bts", "2",
 	"set-min-free", "1", "TCH/F", "4",
 	"create-ms", "0", "TCH/F", "AMR",
+	"expect-ts-use", "0", "0", "*", "TCH/F", "-", "-", "-", "-", "-", "-",
 	"meas-rep", "0", "20","0", "1","0","30",
 	"expect-chan", "1", "5",
 	"ack-chan",
 	"expect-ho", "0", "1",
 	"ho-complete",
+	"expect-ts-use", "0", "0", "*", "-", "-", "-", "-", "-", "-", "-",
+	"expect-ts-use", "1", "0", "*", "-", "-", "-", "-", "TCH/H-", "-", "-",
 	NULL
 };
 
@@ -740,6 +831,7 @@
 
 	"create-n-bts", "2",
 	"create-ms", "0", "TCH/F", "AMR",
+	"expect-ts-use", "0", "0", "*", "TCH/F", "-", "-", "-", "-", "-", "-",
 	"create-ms", "1", "TCH/F", "AMR",
 	"create-ms", "1", "TCH/F", "AMR",
 	"create-ms", "1", "TCH/F", "AMR",
@@ -748,6 +840,7 @@
 	"create-ms", "1", "TCH/H", "AMR",
 	"create-ms", "1", "TCH/H", "AMR",
 	"create-ms", "1", "TCH/H", "AMR",
+	"expect-ts-use", "1", "0", "*", "TCH/F", "TCH/F", "TCH/F", "TCH/F", "TCH/HH", "TCH/HH", "-",
 	"meas-rep", "0", "0","0", "1","0","30",
 	"expect-no-chan",
 	NULL
@@ -765,6 +858,7 @@
 	"create-ms", "0", "TCH/F", "AMR",
 	"create-ms", "0", "TCH/F", "AMR",
 	"create-ms", "0", "TCH/F", "AMR",
+	"expect-ts-use", "0", "0", "*", "TCH/F", "TCH/F", "TCH/F", "-", "-", "-", "-",
 	"meas-rep", "0", "0","0", "1","0","30",
 	"expect-chan", "1", "1",
 	"meas-rep", "1", "0","0", "1","0","30",
@@ -783,6 +877,7 @@
 
 	"create-n-bts", "2",
 	"create-ms", "0", "TCH/F", "AMR",
+	"expect-ts-use", "0", "0", "*", "TCH/F", "-", "-", "-", "-", "-", "-",
 	"meas-rep", "0", "27","0", "1","0","30",
 	"expect-no-chan",
 	"meas-rep", "0", "26","0", "1","0","30",
@@ -790,6 +885,8 @@
 	"ack-chan",
 	"expect-ho", "0", "1",
 	"ho-complete",
+	"expect-ts-use", "0", "0", "*", "-", "-", "-", "-", "-", "-", "-",
+	"expect-ts-use", "1", "0", "*", "TCH/F", "-", "-", "-", "-", "-", "-",
 	NULL
 };
 
@@ -807,6 +904,7 @@
 
 	"create-n-bts", "2",
 	"create-ms", "0", "TCH/F", "AMR",
+	"expect-ts-use", "0", "0", "*", "TCH/F", "-", "-", "-", "-", "-", "-",
 	"meas-rep", "0", "10","0", "1","0","11",
 	"expect-no-chan",
 	"meas-rep", "0", "8","0", "1","0","9",
@@ -816,6 +914,8 @@
 	"ack-chan",
 	"expect-ho", "0", "1",
 	"ho-complete",
+	"expect-ts-use", "0", "0", "*", "-", "-", "-", "-", "-", "-", "-",
+	"expect-ts-use", "1", "0", "*", "TCH/F", "-", "-", "-", "-", "-", "-",
 	NULL
 };
 
@@ -828,6 +928,7 @@
 
 	"create-n-bts", "2",
 	"create-ms", "0", "TCH/F", "AMR",
+	"expect-ts-use", "0", "0", "*", "TCH/F", "-", "-", "-", "-", "-", "-",
 	"set-min-free", "1", "TCH/F", "4",
 	"set-min-free", "1", "TCH/H", "4",
 	"meas-rep", "0", "20","0", "1","0","30",
@@ -839,6 +940,8 @@
 	"ack-chan",
 	"expect-ho", "0", "1",
 	"ho-complete",
+	"expect-ts-use", "0", "0", "*", "-", "-", "-", "-", "-", "-", "-",
+	"expect-ts-use", "1", "0", "*", "TCH/F", "-", "-", "-", "-", "-", "-",
 	NULL
 };
 
@@ -853,6 +956,7 @@
 
 	"create-n-bts", "2",
 	"create-ms", "0", "TCH/F", "AMR",
+	"expect-ts-use", "0", "0", "*", "TCH/F", "-", "-", "-", "-", "-", "-",
 	"set-min-free", "0", "TCH/F", "4",
 	"set-min-free", "0", "TCH/H", "4",
 	"set-min-free", "1", "TCH/F", "4",
@@ -860,11 +964,14 @@
 	"meas-rep", "0", "20","0", "1","0","30",
 	"expect-no-chan",
 	"create-ms", "0", "TCH/F", "AMR",
+	"expect-ts-use", "0", "0", "*", "TCH/F", "TCH/F", "-", "-", "-", "-", "-",
 	"meas-rep", "0", "20","0", "1","0","30",
 	"expect-chan", "1", "1",
 	"ack-chan",
 	"expect-ho", "0", "1",
 	"ho-complete",
+	"expect-ts-use", "0", "0", "*", "-", "TCH/F", "-", "-", "-", "-", "-",
+	"expect-ts-use", "1", "0", "*", "TCH/F", "-", "-", "-", "-", "-", "-",
 	NULL
 };
 
@@ -878,6 +985,7 @@
 
 	"create-n-bts", "2",
 	"create-ms", "0", "TCH/F", "AMR",
+	"expect-ts-use", "0", "0", "*", "TCH/F", "-", "-", "-", "-", "-", "-",
 	"set-min-free", "1", "TCH/F", "4",
 	"set-min-free", "1", "TCH/H", "4",
 	"meas-rep", "0", "10","0", "1","0","30",
@@ -887,6 +995,8 @@
 	"ack-chan",
 	"expect-ho", "0", "1",
 	"ho-complete",
+	"expect-ts-use", "0", "0", "*", "-", "-", "-", "-", "-", "-", "-",
+	"expect-ts-use", "1", "0", "*", "TCH/F", "-", "-", "-", "-", "-", "-",
 	NULL
 };
 
@@ -905,6 +1015,7 @@
 
 	"create-n-bts", "2",
 	"create-ms", "0", "TCH/F", "AMR",
+	"expect-ts-use", "0", "0", "*", "TCH/F", "-", "-", "-", "-", "-", "-",
 	"meas-rep", "0", "40","6", "1","0","30",
 	"expect-no-chan",
 	"meas-rep", "0", "40","6", "1","0","30",
@@ -928,6 +1039,8 @@
 	"ack-chan",
 	"expect-ho", "0", "1",
 	"ho-complete",
+	"expect-ts-use", "0", "0", "*", "-", "-", "-", "-", "-", "-", "-",
+	"expect-ts-use", "1", "0", "*", "TCH/F", "-", "-", "-", "-", "-", "-",
 	NULL
 };
 
@@ -943,6 +1056,7 @@
 
 	"create-n-bts", "2",
 	"create-ms", "0", "TCH/F", "AMR",
+	"expect-ts-use", "0", "0", "*", "TCH/F", "-", "-", "-", "-", "-", "-",
 	"set-max-ta", "0", "5", /* of cell */
 	"set-ta", "0", "5", /* of ms */
 	"meas-rep", "0", "30","0", "1","0","20",
@@ -953,6 +1067,8 @@
 	"ack-chan",
 	"expect-ho", "0", "1",
 	"ho-complete",
+	"expect-ts-use", "0", "0", "*", "-", "-", "-", "-", "-", "-", "-",
+	"expect-ts-use", "1", "0", "*", "TCH/F", "-", "-", "-", "-", "-", "-",
 	"meas-rep", "0", "20","0", "1","0","30",
 	"expect-no-chan",
 	NULL
@@ -978,6 +1094,8 @@
 	"create-ms", "0", "TCH/H", "AMR",
 	"create-ms", "1", "TCH/F", "AMR",
 	"create-ms", "1", "TCH/H", "AMR",
+	"expect-ts-use", "0", "0", "*", "TCH/F", "TCH/F", "-", "-", "TCH/HH", "-", "-",
+	"expect-ts-use", "1", "0", "*", "TCH/F", "-", "-", "-", "TCH/H-", "-", "-",
 	"meas-rep", "0", "30","0", "2","0","20","1","20",
 	"expect-no-chan",
 	"meas-rep", "1", "30","0", "2","0","20","1","20",
@@ -992,6 +1110,8 @@
 	"expect-no-chan",
 	"congestion-check",
 	"expect-no-chan",
+	"expect-ts-use", "0", "0", "*", "TCH/F", "TCH/F", "-", "-", "TCH/HH", "-", "-",
+	"expect-ts-use", "1", "0", "*", "TCH/F", "-", "-", "-", "TCH/H-", "-", "-",
 	NULL
 };
 
@@ -1017,6 +1137,8 @@
 	"create-ms", "0", "TCH/H", "AMR",
 	"create-ms", "1", "TCH/F", "AMR",
 	"create-ms", "1", "TCH/H", "AMR",
+	"expect-ts-use", "0", "0", "*", "TCH/F", "TCH/F", "TCH/F", "-", "TCH/HH", "-", "-",
+	"expect-ts-use", "1", "0", "*", "TCH/F", "-", "-", "-", "TCH/H-", "-", "-",
 	"meas-rep", "0", "30","0", "2","0","20","1","20",
 	"expect-no-chan",
 	"meas-rep", "1", "30","0", "2","0","20","1","20",
@@ -1031,11 +1153,15 @@
 	"expect-no-chan",
 	"meas-rep", "6", "30","0", "2","0","20","1","20",
 	"expect-no-chan",
+	"expect-ts-use", "0", "0", "*", "TCH/F", "TCH/F", "TCH/F", "-", "TCH/HH", "-", "-",
+	"expect-ts-use", "1", "0", "*", "TCH/F", "-", "-", "-", "TCH/H-", "-", "-",
 	"congestion-check",
 	"expect-chan", "1", "2",
 	"ack-chan",
 	"expect-ho", "0", "3", /* best candidate is MS 2 at BTS 0, TS 3 */
 	"ho-complete",
+	"expect-ts-use", "0", "0", "*", "TCH/F", "TCH/F", "-", "-", "TCH/HH", "-", "-",
+	"expect-ts-use", "1", "0", "*", "TCH/F", "TCH/F", "-", "-", "TCH/H-", "-", "-",
 	NULL
 };
 
@@ -1053,6 +1179,8 @@
 	"create-ms", "0", "TCH/F", "FR",
 	"create-ms", "0", "TCH/F", "FR",
 	"create-ms", "1", "TCH/F", "FR",
+	"expect-ts-use", "0", "0", "*", "TCH/F", "TCH/F", "TCH/F", "-", "-", "-", "-",
+	"expect-ts-use", "1", "0", "*", "TCH/F", "-", "-", "-", "-", "-", "-",
 	"meas-rep", "0", "30","0", "1","0","20",
 	"expect-no-chan",
 	"meas-rep", "1", "30","0", "1","0","21",
@@ -1066,6 +1194,8 @@
 	"ack-chan",
 	"expect-ho", "0", "2", /* best candidate is MS 1 at BTS 0, TS 2 */
 	"ho-complete",
+	"expect-ts-use", "0", "0", "*", "TCH/F", "-", "TCH/F", "-", "-", "-", "-",
+	"expect-ts-use", "1", "0", "*", "TCH/F", "TCH/F", "-", "-", "-", "-", "-",
 	NULL
 };
 
@@ -1080,6 +1210,7 @@
 	"set-min-free", "0", "TCH/H", "4",
 	"set-min-free", "1", "TCH/F", "4",
 	"create-ms", "0", "TCH/F", "AMR",
+	"expect-ts-use", "0", "0", "*", "TCH/F", "-", "-", "-", "-", "-", "-",
 	"meas-rep", "0", "30","0", "1","0","30",
 	"expect-no-chan",
 	"congestion-check",
@@ -1087,6 +1218,8 @@
 	"ack-chan",
 	"expect-ho", "0", "1",
 	"ho-complete",
+	"expect-ts-use", "0", "0", "*", "-", "-", "-", "-", "-", "-", "-",
+	"expect-ts-use", "1", "0", "*", "-", "-", "-", "-", "TCH/H-", "-", "-",
 	NULL
 };
 
@@ -1104,6 +1237,7 @@
 	"create-ms", "0", "TCH/F", "AMR",
 	"create-ms", "0", "TCH/F", "AMR",
 	"create-ms", "0", "TCH/H", "AMR",
+	"expect-ts-use", "0", "0", "*", "TCH/F", "TCH/F", "-", "-", "TCH/H-", "-", "-",
 	"meas-rep", "0", "30","0", "1","0","30",
 	"expect-no-chan",
 	"congestion-check",
@@ -1111,6 +1245,8 @@
 	"ack-chan",
 	"expect-ho", "0", "1",
 	"ho-complete",
+	"expect-ts-use", "0", "0", "*", "-", "TCH/F", "-", "-", "TCH/H-", "-", "-",
+	"expect-ts-use", "1", "0", "*", "TCH/F", "-", "-", "-", "-", "-", "-",
 	NULL
 };
 
@@ -1128,6 +1264,7 @@
 	"create-ms", "0", "TCH/H", "AMR",
 	"create-ms", "0", "TCH/H", "AMR",
 	"create-ms", "0", "TCH/H", "AMR",
+	"expect-ts-use", "0", "0", "*", "-", "-", "-", "-", "TCH/HH", "TCH/H-", "-",
 	"meas-rep", "0", "30","0", "0",
 	"meas-rep", "1", "34","0", "0",
 	"meas-rep", "2", "20","0", "0",
@@ -1137,6 +1274,7 @@
 	"ack-chan",
 	"expect-ho", "0", "6",
 	"ho-complete",
+	"expect-ts-use", "0", "0", "*", "TCH/F", "-", "-", "-", "TCH/HH", "-", "-",
 	NULL
 };
 
@@ -1156,6 +1294,9 @@
 	"create-ms", "2", "TCH/F", "AMR",
 	/* andreas */
 	"create-ms", "0", "TCH/F", "AMR",
+	"expect-ts-use", "0", "0", "*", "TCH/F", "-", "-", "-", "-", "-", "-",
+	"expect-ts-use", "1", "0", "*", "-", "-", "-", "-", "-", "-", "-",
+	"expect-ts-use", "2", "0", "*", "TCH/F", "-", "-", "-", "-", "-", "-",
 	"meas-rep", "1", "40","0", "1","0","30",
 	"expect-no-chan",
 
@@ -1173,6 +1314,9 @@
 	"ack-chan",
 	"expect-ho", "0", "1",
 	"ho-complete",
+	"expect-ts-use", "0", "0", "*", "-", "-", "-", "-", "-", "-", "-",
+	"expect-ts-use", "1", "0", "*", "TCH/F", "-", "-", "-", "-", "-", "-",
+	"expect-ts-use", "2", "0", "*", "TCH/F", "-", "-", "-", "-", "-", "-",
 
 	"print",
 	"While Andreas is walking into the store, Axel asks, if he could also\n"
@@ -1188,6 +1332,9 @@
 	"ack-chan",
 	"expect-ho", "1", "1",
 	"ho-complete",
+	"expect-ts-use", "0", "0", "*", "TCH/F", "-", "-", "-", "-", "-", "-",
+	"expect-ts-use", "1", "0", "*", "-", "-", "-", "-", "-", "-", "-",
+	"expect-ts-use", "2", "0", "*", "TCH/F", "-", "-", "-", "-", "-", "-",
 
 	"print",
 	"After Andreas bought skewers and beer, he leaves the store.\n"
@@ -1200,6 +1347,9 @@
 	"ack-chan",
 	"expect-ho", "0", "1",
 	"ho-complete",
+	"expect-ts-use", "0", "0", "*", "-", "-", "-", "-", "-", "-", "-",
+	"expect-ts-use", "1", "0", "*", "TCH/F", "-", "-", "-", "-", "-", "-",
+	"expect-ts-use", "2", "0", "*", "TCH/F", "-", "-", "-", "-", "-", "-",
 
 	"print",
 	/* bts 2 becomes better */
@@ -1212,6 +1362,9 @@
 	"ack-chan",
 	"expect-ho", "1", "1",
 	"ho-complete",
+	"expect-ts-use", "0", "0", "*", "-", "-", "-", "-", "-", "-", "-",
+	"expect-ts-use", "1", "0", "*", "-", "-", "-", "-", "-", "-", "-",
+	"expect-ts-use", "2", "0", "*", "TCH/F", "TCH/F", "-", "-", "-", "-", "-",
 
 	"print",
 	"Andreas wonders why he still has good radio coverage: \"Last time it\n"
@@ -1237,6 +1390,7 @@
 	"create-ms", "0", "TCH/F", "AMR",
 	"congestion-check",
 	"expect-no-chan",
+	"expect-ts-use", "0", "0", "*", "TCH/F", "-", "-", "-", "-", "-", "-",
 
 	/* send measurement and trigger congestion check */
 	"meas-rep", "0", "20","0", "1","0","20",
@@ -1246,6 +1400,8 @@
 	"ack-chan",
 	"expect-ho", "0", "1",
 	"ho-complete",
+	"expect-ts-use", "0", "0", "*", "-", "-", "-", "-", "-", "-", "-",
+	"expect-ts-use", "1", "0", "*", "TCH/F", "-", "-", "-", "-", "-", "-",
 
 	/* congest the first cell and remove congestion from second cell */
 	"set-min-free", "0", "TCH/F", "0",
@@ -1263,6 +1419,8 @@
 	"ack-chan",
 	"expect-ho", "1", "1",
 	"ho-complete",
+	"expect-ts-use", "0", "0", "*", "TCH/F", "-", "-", "-", "-", "-", "-",
+	"expect-ts-use", "1", "0", "*", "-", "-", "-", "-", "-", "-", "-",
 	NULL
 };
 
@@ -1275,6 +1433,7 @@
 
 	"create-n-bts", "7",
 	"create-ms", "0", "TCH/F", "AMR",
+	"expect-ts-use", "0", "0", "*", "TCH/F", "-", "-", "-", "-", "-", "-",
 	"meas-rep", "0", "30","0",
 		"6","0","20","1","21","2","18","3","20","4","23","5","19",
 	"expect-no-chan",
@@ -1289,12 +1448,15 @@
 
 	"create-n-bts", "7",
 	"create-ms", "0", "TCH/F", "AMR",
+	"expect-ts-use", "0", "0", "*", "TCH/F", "-", "-", "-", "-", "-", "-",
 	"meas-rep", "0", "10","0",
 		"6","0","20","1","21","2","18","3","20","4","23","5","19",
 	"expect-chan", "5", "1",
 	"ack-chan",
 	"expect-ho", "0", "1",
 	"ho-complete",
+	"expect-ts-use", "0", "0", "*", "-", "-", "-", "-", "-", "-", "-",
+	"expect-ts-use", "5", "0", "*", "TCH/F", "-", "-", "-", "-", "-", "-",
 	NULL
 };
 
@@ -1313,6 +1475,7 @@
 	"create-ms", "0", "TCH/H", "AMR",
 	"create-ms", "0", "TCH/H", "AMR",
 	"create-ms", "0", "TCH/H", "AMR",
+	"expect-ts-use", "0", "0", "*", "-", "-", "-", "-", "TCH/HH", "TCH/H-", "-",
 	"meas-rep", "0", "30","0", "0",
 	"meas-rep", "1", "34","0", "0",
 	"meas-rep", "2", "20","0", "0",
@@ -1322,11 +1485,13 @@
 	"ack-chan",
 	"expect-ho", "0", "6",
 	"ho-complete",
+	"expect-ts-use", "0", "0", "*", "TCH/F", "-", "-", "-", "TCH/HH", "-", "-",
 	"congestion-check",
 	"expect-chan", "0", "2",
 	"ack-chan",
 	"expect-ho", "0", "5",
 	"ho-complete",
+	"expect-ts-use", "0", "0", "*", "TCH/F", "TCH/F", "-", "-", "TCH/-H", "-", "-",
 	"congestion-check",
 	"expect-no-chan",
 	"congestion-check",
@@ -1345,6 +1510,7 @@
 
 	"create-n-bts", "2",
 	"create-ms", "0", "TCH/F", "AMR",
+	"expect-ts-use", "0", "0", "*", "TCH/F", "-", "-", "-", "-", "-", "-",
 	"set-min-free", "1", "TCH/F", "4",
 	"set-min-free", "1", "TCH/H", "4",
 	"meas-rep", "0", "30","6", "1","0","40",
@@ -1370,6 +1536,8 @@
 	"ack-chan",
 	"expect-ho", "0", "1",
 	"ho-complete",
+	"expect-ts-use", "0", "0", "*", "-", "-", "-", "-", "-", "-", "-",
+	"expect-ts-use", "1", "0", "*", "TCH/F", "-", "-", "-", "-", "-", "-",
 	NULL
 };
 
@@ -1385,6 +1553,7 @@
 	"create-ms", "0", "TCH/F", "AMR",
 	"create-ms", "0", "TCH/F", "AMR",
 	"create-ms", "0", "TCH/H", "AMR",
+	"expect-ts-use", "0", "0", "*", "TCH/F", "TCH/F", "-", "-", "TCH/H-", "-", "-",
 	"meas-rep", "0", "30","0", "1","0","30",
 	"expect-no-chan",
 	"congestion-check",
@@ -1392,6 +1561,7 @@
 	"ack-chan",
 	"expect-ho", "0", "1",
 	"ho-complete",
+	"expect-ts-use", "0", "0", "*", "-", "TCH/F", "-", "-", "TCH/HH", "-", "-",
 	NULL
 };
 
@@ -1831,6 +2001,23 @@
 			got_ho_req = 0;
 			send_ho_complete(ho_req_lchan, false);
 		} else
+		if (!strcmp(*test_case, "expect-ts-use")) {
+			/* expect-ts-use <bts-nr> <trx-nr> 8x<ts-use>
+			 * e.g.
+			 * expect-ts-use 0 0  - TCH/F - - TCH/H- TCH/HH TCH/-H PDCH
+			 * TCH/F: one FR call.
+			 * TCH/H-: HR TS with first subslot used as TCH/H, other subslot unused.
+			 * TCH/HH: HR TS with both subslots used as TCH/H
+			 * TCH/-H: HR TS with only second subslot used as TCH/H
+			 * PDCH: TS used for PDCH (e.g. unused dynamic TS)
+			 */
+			int bts_nr = atoi(test_case[1]);
+			int trx_nr = atoi(test_case[2]);
+			const char * const * ts_use = (void*)&test_case[3];
+			if (!expect_ts_use(bts_nr, trx_nr, ts_use))
+				return EXIT_FAILURE;
+			test_case += 1 + 2 + 8;
+		} else
 		if (!strcmp(*test_case, "print")) {
 			fprintf(stderr, "\n%s\n\n", test_case[1]);
 			test_case += 2;

-- 
To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21197
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings

Gerrit-Project: osmo-bsc
Gerrit-Branch: master
Gerrit-Change-Id: I6f4b573de7faace2d6bfe4f58b568e69c74dd07d
Gerrit-Change-Number: 21197
Gerrit-PatchSet: 2
Gerrit-Owner: neels <nhofmeyr at sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: laforge <laforge at osmocom.org>
Gerrit-Reviewer: neels <nhofmeyr at sysmocom.de>
Gerrit-Reviewer: pespin <pespin at sysmocom.de>
Gerrit-MessageType: merged
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20201117/c0b6368c/attachment.htm>


More information about the gerrit-log mailing list