aboutsummaryrefslogtreecommitdiffstats
path: root/tests/meas
diff options
context:
space:
mode:
authorPhilipp Maier <pmaier@sysmocom.de>2018-09-06 16:04:13 +0200
committerHarald Welte <laforge@gnumonks.org>2018-09-13 14:27:12 +0000
commitc78759055a223b9f48bdfd5523a9825e16cf0658 (patch)
treea371379fdd8c966a05d4f1a2c722111150f0c750 /tests/meas
parent6d701d0e051ec1c876f6cab1c5e60e67ca3fd3f6 (diff)
measurement: remove missed interval end detection
The function is_meas_overdue() was introduced to allow lchan_meas_process_measurement() to detect when the end of a measurement interval has been missed. Interval ends may be missed when the SACCH block of the related measurement interval gets lost. This is due to the fact that the SACCH block is used as a trigger to start the measurement result computation. The idea behind is_meas_overdue() was to check the frame number of the current measurement against the frame number of the previous measurement in order to see if there was a measurement for SACCH in between or not. Unfortunately SACCH and TCH Voice data is not necessarly processed in order by each phy. Depending on the phy there may be a jitter between the timing of SACCH and TCH Voice. Depending on the phy this jitter may be enough to mess up the timing so that we see a SACCH block earlier than expected. So we can not use the current frame number of TCH Voice measurements to check for missed SACCH blocks. Change-Id: Idfdbf64c1f965f35c12559b3995e2b746c74ee9e Related: OS#3502 Related: OS#2975
Diffstat (limited to 'tests/meas')
-rw-r--r--tests/meas/meas_test.c583
-rw-r--r--tests/meas/meas_test.ok4
2 files changed, 0 insertions, 587 deletions
diff --git a/tests/meas/meas_test.c b/tests/meas/meas_test.c
index a33a8084..8f504795 100644
--- a/tests/meas/meas_test.c
+++ b/tests/meas/meas_test.c
@@ -125,588 +125,6 @@ static void test_meas_compute(const struct meas_testcase *mtc)
}
-static void test_is_meas_overdue(void)
-{
- struct gsm_lchan *lchan;
- bool rc;
- uint32_t fn_missed_end;
- unsigned int i;
-
- printf("\n\n");
- printf("===========================================================\n");
- printf("Testing is_meas_overdue()\n");
-
- /* Missing period-end-trigger at fn=12, TCH/F, TS0 */
- fn_missed_end = LCHAN_FN_DUMMY;
- lchan = &trx->ts[0].lchan[0];
- lchan->ts->pchan = GSM_PCHAN_TCH_F;
- lchan->meas.last_fn = 95;
- rc = is_meas_overdue(lchan, &fn_missed_end, 17 + 104);
- OSMO_ASSERT(rc);
- OSMO_ASSERT(fn_missed_end == 12 + 104);
-
- /* Missing period-end-trigger at fn=12, TCH/H, TS0 */
- fn_missed_end = LCHAN_FN_DUMMY;
- lchan = &trx->ts[0].lchan[0];
- lchan->ts->pchan = GSM_PCHAN_TCH_H;
- lchan->meas.last_fn = 95;
- rc = is_meas_overdue(lchan, &fn_missed_end, 17 + 104);
- OSMO_ASSERT(rc);
- OSMO_ASSERT(fn_missed_end == 12 + 104);
-
- /* Missing period-end-trigger at fn=12, TCH/H, TS1 */
- fn_missed_end = LCHAN_FN_DUMMY;
- lchan = &trx->ts[1].lchan[0];
- lchan->ts->pchan = GSM_PCHAN_TCH_H;
- lchan->meas.last_fn = 95;
- rc = is_meas_overdue(lchan, &fn_missed_end, 17 + 104);
- OSMO_ASSERT(rc);
- OSMO_ASSERT(fn_missed_end == 12 + 104);
-
- /* Missing period-end-trigger at fn=25, TCH/F, TS1 */
- fn_missed_end = LCHAN_FN_DUMMY;
- lchan = &trx->ts[1].lchan[0];
- lchan->ts->pchan = GSM_PCHAN_TCH_F;
- lchan->meas.last_fn = 21;
- rc = is_meas_overdue(lchan, &fn_missed_end, 30);
- OSMO_ASSERT(rc);
- OSMO_ASSERT(fn_missed_end == 25);
-
- /* Missing period-end-trigger at fn=25, TCH/H, TS0 */
- fn_missed_end = LCHAN_FN_DUMMY;
- lchan = &trx->ts[0].lchan[1];
- lchan->ts->pchan = GSM_PCHAN_TCH_H;
- lchan->meas.last_fn = 21;
- rc = is_meas_overdue(lchan, &fn_missed_end, 30);
- OSMO_ASSERT(rc);
- OSMO_ASSERT(fn_missed_end == 25);
-
- /* Missing period-end-trigger at fn=25, TCH/H, TS1 */
- fn_missed_end = LCHAN_FN_DUMMY;
- lchan = &trx->ts[1].lchan[1];
- lchan->ts->pchan = GSM_PCHAN_TCH_H;
- lchan->meas.last_fn = 21;
- rc = is_meas_overdue(lchan, &fn_missed_end, 30);
- OSMO_ASSERT(rc);
- OSMO_ASSERT(fn_missed_end == 25);
-
- /* Missing period-end-trigger at fn=38, TCH/F, TS2 */
- fn_missed_end = LCHAN_FN_DUMMY;
- lchan = &trx->ts[2].lchan[0];
- lchan->ts->pchan = GSM_PCHAN_TCH_F;
- lchan->meas.last_fn = 34;
- rc = is_meas_overdue(lchan, &fn_missed_end, 43);
- OSMO_ASSERT(rc);
- OSMO_ASSERT(fn_missed_end == 38);
-
- /* Missing period-end-trigger at fn=38, TCH/H, TS2 */
- fn_missed_end = LCHAN_FN_DUMMY;
- lchan = &trx->ts[2].lchan[0];
- lchan->ts->pchan = GSM_PCHAN_TCH_H;
- lchan->meas.last_fn = 34;
- rc = is_meas_overdue(lchan, &fn_missed_end, 43);
- OSMO_ASSERT(rc);
- OSMO_ASSERT(fn_missed_end == 38);
-
- /* Missing period-end-trigger at fn=38, TCH/H, TS3 */
- fn_missed_end = LCHAN_FN_DUMMY;
- lchan = &trx->ts[3].lchan[0];
- lchan->ts->pchan = GSM_PCHAN_TCH_H;
- lchan->meas.last_fn = 34;
- rc = is_meas_overdue(lchan, &fn_missed_end, 43);
- OSMO_ASSERT(rc);
- OSMO_ASSERT(fn_missed_end == 38);
-
- /* Missing period-end-trigger at fn=51, TCH/F, TS3 */
- fn_missed_end = LCHAN_FN_DUMMY;
- lchan = &trx->ts[3].lchan[0];
- lchan->ts->pchan = GSM_PCHAN_TCH_F;
- lchan->meas.last_fn = 47;
- rc = is_meas_overdue(lchan, &fn_missed_end, 52);
- OSMO_ASSERT(rc);
- OSMO_ASSERT(fn_missed_end == 51);
-
- /* Missing period-end-trigger at fn=51, TCH/H, TS2 */
- fn_missed_end = LCHAN_FN_DUMMY;
- lchan = &trx->ts[2].lchan[1];
- lchan->ts->pchan = GSM_PCHAN_TCH_H;
- lchan->meas.last_fn = 47;
- rc = is_meas_overdue(lchan, &fn_missed_end, 52);
- OSMO_ASSERT(rc);
- OSMO_ASSERT(fn_missed_end == 51);
-
- /* Missing period-end-trigger at fn=51, TCH/H, TS3 */
- fn_missed_end = LCHAN_FN_DUMMY;
- lchan = &trx->ts[3].lchan[1];
- lchan->ts->pchan = GSM_PCHAN_TCH_H;
- lchan->meas.last_fn = 47;
- rc = is_meas_overdue(lchan, &fn_missed_end, 52);
- OSMO_ASSERT(rc);
- OSMO_ASSERT(fn_missed_end == 51);
-
- /* Missing period-end-trigger at fn=64, TCH/F, TS4 */
- fn_missed_end = LCHAN_FN_DUMMY;
- lchan = &trx->ts[4].lchan[0];
- lchan->ts->pchan = GSM_PCHAN_TCH_F;
- lchan->meas.last_fn = 60;
- rc = is_meas_overdue(lchan, &fn_missed_end, 69);
- OSMO_ASSERT(rc);
- OSMO_ASSERT(fn_missed_end == 64);
-
- /* Missing period-end-trigger at fn=64, TCH/H, TS4 */
- fn_missed_end = LCHAN_FN_DUMMY;
- lchan = &trx->ts[4].lchan[0];
- lchan->ts->pchan = GSM_PCHAN_TCH_H;
- lchan->meas.last_fn = 60;
- rc = is_meas_overdue(lchan, &fn_missed_end, 69);
- OSMO_ASSERT(rc);
- OSMO_ASSERT(fn_missed_end == 64);
-
- /* Missing period-end-trigger at fn=64, TCH/H, TS4 */
- fn_missed_end = LCHAN_FN_DUMMY;
- lchan = &trx->ts[5].lchan[0];
- lchan->ts->pchan = GSM_PCHAN_TCH_H;
- lchan->meas.last_fn = 60;
- rc = is_meas_overdue(lchan, &fn_missed_end, 69);
- OSMO_ASSERT(rc);
- OSMO_ASSERT(fn_missed_end == 64);
-
- /* Missing period-end-trigger at fn=77, TCH/F, TS5 */
- fn_missed_end = LCHAN_FN_DUMMY;
- lchan = &trx->ts[5].lchan[0];
- lchan->ts->pchan = GSM_PCHAN_TCH_F;
- lchan->meas.last_fn = 73;
- rc = is_meas_overdue(lchan, &fn_missed_end, 78);
- OSMO_ASSERT(rc);
- OSMO_ASSERT(fn_missed_end == 77);
-
- /* Missing period-end-trigger at fn=77, TCH/H, TS4 */
- fn_missed_end = LCHAN_FN_DUMMY;
- lchan = &trx->ts[4].lchan[1];
- lchan->ts->pchan = GSM_PCHAN_TCH_H;
- lchan->meas.last_fn = 73;
- rc = is_meas_overdue(lchan, &fn_missed_end, 78);
- OSMO_ASSERT(rc);
- OSMO_ASSERT(fn_missed_end == 77);
-
- /* Missing period-end-trigger at fn=77, TCH/H, TS5 */
- fn_missed_end = LCHAN_FN_DUMMY;
- lchan = &trx->ts[5].lchan[1];
- lchan->ts->pchan = GSM_PCHAN_TCH_H;
- lchan->meas.last_fn = 73;
- rc = is_meas_overdue(lchan, &fn_missed_end, 78);
- OSMO_ASSERT(rc);
- OSMO_ASSERT(fn_missed_end == 77);
-
- /* Missing period-end-trigger at fn=90, TCH/F, TS6 */
- fn_missed_end = LCHAN_FN_DUMMY;
- lchan = &trx->ts[6].lchan[0];
- lchan->ts->pchan = GSM_PCHAN_TCH_F;
- lchan->meas.last_fn = 86;
- rc = is_meas_overdue(lchan, &fn_missed_end, 91);
- OSMO_ASSERT(rc);
- OSMO_ASSERT(fn_missed_end == 90);
-
- /* Missing period-end-trigger at fn=90, TCH/H, TS6 */
- fn_missed_end = LCHAN_FN_DUMMY;
- lchan = &trx->ts[6].lchan[0];
- lchan->ts->pchan = GSM_PCHAN_TCH_H;
- lchan->meas.last_fn = 86;
- rc = is_meas_overdue(lchan, &fn_missed_end, 91);
- OSMO_ASSERT(rc);
- OSMO_ASSERT(fn_missed_end == 90);
-
- /* Missing period-end-trigger at fn=90, TCH/H, TS7 */
- fn_missed_end = LCHAN_FN_DUMMY;
- lchan = &trx->ts[7].lchan[0];
- lchan->ts->pchan = GSM_PCHAN_TCH_H;
- lchan->meas.last_fn = 86;
- rc = is_meas_overdue(lchan, &fn_missed_end, 91);
- OSMO_ASSERT(rc);
- OSMO_ASSERT(fn_missed_end == 90);
-
- /* Missing period-end-trigger at fn=103, TCH/F, TS7 */
- fn_missed_end = LCHAN_FN_DUMMY;
- lchan = &trx->ts[7].lchan[0];
- lchan->ts->pchan = GSM_PCHAN_TCH_F;
- lchan->meas.last_fn = 99;
- rc = is_meas_overdue(lchan, &fn_missed_end, 0 + 104);
- OSMO_ASSERT(rc);
- OSMO_ASSERT(fn_missed_end == 103);
-
- /* Missing period-end-trigger at fn=103, TCH/H, TS6 */
- fn_missed_end = LCHAN_FN_DUMMY;
- lchan = &trx->ts[6].lchan[1];
- lchan->ts->pchan = GSM_PCHAN_TCH_H;
- lchan->meas.last_fn = 99;
- rc = is_meas_overdue(lchan, &fn_missed_end, 0 + 104);
- OSMO_ASSERT(rc);
- OSMO_ASSERT(fn_missed_end == 103);
-
- /* Missing period-end-trigger at fn=103, TCH/H, TS7 */
- fn_missed_end = LCHAN_FN_DUMMY;
- lchan = &trx->ts[7].lchan[1];
- lchan->ts->pchan = GSM_PCHAN_TCH_H;
- lchan->meas.last_fn = 99;
- rc = is_meas_overdue(lchan, &fn_missed_end, 0 + 104);
- OSMO_ASSERT(rc);
- OSMO_ASSERT(fn_missed_end == 103);
-
- /* Dropout inside the interval, no period-end-trigger missed */
- fn_missed_end = LCHAN_FN_DUMMY;
- lchan = &trx->ts[2].lchan[0];
- lchan->ts->pchan = GSM_PCHAN_TCH_H;
- lchan->meas.last_fn = 56;
- rc = is_meas_overdue(lchan, &fn_missed_end, 69);
- OSMO_ASSERT(!rc);
- OSMO_ASSERT(fn_missed_end == LCHAN_FN_DUMMY);
-
- /* No dropout, but right after period-end-trigger */
- fn_missed_end = LCHAN_FN_DUMMY;
- lchan = &trx->ts[2].lchan[0];
- lchan->ts->pchan = GSM_PCHAN_TCH_H;
- lchan->meas.last_fn = 38;
- rc = is_meas_overdue(lchan, &fn_missed_end, 39);
- OSMO_ASSERT(!rc);
- OSMO_ASSERT(fn_missed_end == LCHAN_FN_DUMMY);
-
- /* No dropout, two neigbouring frames at random position
- * (should not happen in the real world) */
- fn_missed_end = LCHAN_FN_DUMMY;
- lchan = &trx->ts[2].lchan[0];
- lchan->ts->pchan = GSM_PCHAN_TCH_H;
- lchan->meas.last_fn = 43;
- rc = is_meas_overdue(lchan, &fn_missed_end, 44);
- OSMO_ASSERT(!rc);
- OSMO_ASSERT(fn_missed_end == LCHAN_FN_DUMMY);
-
- /* No dropout, Two neigbouring frames (period end, right side) */
- fn_missed_end = LCHAN_FN_DUMMY;
- lchan = &trx->ts[2].lchan[0];
- lchan->ts->pchan = GSM_PCHAN_TCH_H;
- lchan->meas.last_fn = 38;
- rc = is_meas_overdue(lchan, &fn_missed_end, 39);
- OSMO_ASSERT(!rc);
- OSMO_ASSERT(fn_missed_end == LCHAN_FN_DUMMY);
-
- /* No dropout, Two neigbouring frames (period end, left side,
- * should not happen in the real world) */
- fn_missed_end = LCHAN_FN_DUMMY;
- lchan = &trx->ts[2].lchan[0];
- lchan->ts->pchan = GSM_PCHAN_TCH_H;
- lchan->meas.last_fn = 37;
- rc = is_meas_overdue(lchan, &fn_missed_end, 38);
- OSMO_ASSERT(!rc);
- OSMO_ASSERT(fn_missed_end == LCHAN_FN_DUMMY);
-
- /* No dropout, test directly on a the trigger frame */
- fn_missed_end = LCHAN_FN_DUMMY;
- lchan = &trx->ts[2].lchan[0];
- lchan->ts->pchan = GSM_PCHAN_TCH_H;
- lchan->meas.last_fn = 34;
- rc = is_meas_overdue(lchan, &fn_missed_end, 38);
- OSMO_ASSERT(!rc);
- OSMO_ASSERT(fn_missed_end == LCHAN_FN_DUMMY);
-
- /* No dropout, previous frame is trigger frame
- * (should not happen in the real world) */
- fn_missed_end = LCHAN_FN_DUMMY;
- lchan = &trx->ts[2].lchan[0];
- lchan->ts->pchan = GSM_PCHAN_TCH_H;
- lchan->meas.last_fn = 38;
- rc = is_meas_overdue(lchan, &fn_missed_end, 38);
- OSMO_ASSERT(!rc);
- OSMO_ASSERT(fn_missed_end == LCHAN_FN_DUMMY);
-
- /* Missing period-end-trigger at fn=38+i*104, TCH/F, TS2 to
- * see the modulus is correct. */
- for (i = 0; i < 100; i++) {
- fn_missed_end = LCHAN_FN_DUMMY;
- lchan = &trx->ts[2].lchan[0];
- lchan->ts->pchan = GSM_PCHAN_TCH_F;
- lchan->meas.last_fn = 34 + 104 * 1;
- rc = is_meas_overdue(lchan, &fn_missed_end, 43 + 104 * 1);
- OSMO_ASSERT(rc);
- OSMO_ASSERT(fn_missed_end == 38 + 104 * 1);
- }
-
- /* See whats happening if we miss a period-end-triggerend at the
- * hyperframe beginning. */
- fn_missed_end = LCHAN_FN_DUMMY;
- lchan = &trx->ts[0].lchan[0];
- lchan->ts->pchan = GSM_PCHAN_TCH_F;
- lchan->meas.last_fn = GSM_MAX_FN - 104 + 95;
- rc = is_meas_overdue(lchan, &fn_missed_end, 17);
- OSMO_ASSERT(rc);
- OSMO_ASSERT(fn_missed_end == 12);
-
- /* See whats happening if we miss a period-end-triggerend at the
- * hyperframe ending. */
- fn_missed_end = LCHAN_FN_DUMMY;
- lchan = &trx->ts[6].lchan[0];
- lchan->ts->pchan = GSM_PCHAN_TCH_F;
- lchan->meas.last_fn = GSM_MAX_FN - 104 + 86;
- rc = is_meas_overdue(lchan, &fn_missed_end, 8);
- OSMO_ASSERT(rc);
- OSMO_ASSERT(fn_missed_end == GSM_MAX_FN - 104 + 90);
-
- /* See whats happening if we miss a period-end-triggerend exactly at the
- * hyperframe ending. */
- fn_missed_end = LCHAN_FN_DUMMY;
- lchan = &trx->ts[7].lchan[0];
- lchan->ts->pchan = GSM_PCHAN_TCH_F;
- lchan->meas.last_fn = GSM_MAX_FN - 104 + 99;
- rc = is_meas_overdue(lchan, &fn_missed_end, 0);
- OSMO_ASSERT(rc);
- OSMO_ASSERT(fn_missed_end == GSM_MAX_FN - 1);
-
- /* Test a wrap around at the hyperframe ending, while no measurements
- * are lost */
- fn_missed_end = LCHAN_FN_DUMMY;
- lchan = &trx->ts[0].lchan[0];
- lchan->ts->pchan = GSM_PCHAN_TCH_F;
- lchan->meas.last_fn = GSM_MAX_FN - 104 + 99;
- rc = is_meas_overdue(lchan, &fn_missed_end, 0);
- OSMO_ASSERT(!rc);
- OSMO_ASSERT(fn_missed_end == LCHAN_FN_DUMMY);
-
- /* Test a wrap around at the hyperframe ending, measurements are lost,
- * but not the one that triggers the period end */
- fn_missed_end = LCHAN_FN_DUMMY;
- lchan = &trx->ts[0].lchan[0];
- lchan->ts->pchan = GSM_PCHAN_TCH_F;
- lchan->meas.last_fn = GSM_MAX_FN - 104 + 95;
- rc = is_meas_overdue(lchan, &fn_missed_end, 4);
- OSMO_ASSERT(!rc);
- OSMO_ASSERT(fn_missed_end == LCHAN_FN_DUMMY);
-
- /* Test a wrap around right before the hyperframe ending, while no
- * measurements are lost. */
- fn_missed_end = LCHAN_FN_DUMMY;
- lchan = &trx->ts[7].lchan[0];
- lchan->ts->pchan = GSM_PCHAN_TCH_F;
- lchan->meas.last_fn = GSM_MAX_FN - 104 + 99;
- rc = is_meas_overdue(lchan, &fn_missed_end, GSM_MAX_FN - 1);
- OSMO_ASSERT(!rc);
- OSMO_ASSERT(fn_missed_end == LCHAN_FN_DUMMY);
-
- /* Missing period-end-trigger at fn=66, SDCCH/8, TS0, SS0 */
- fn_missed_end = LCHAN_FN_DUMMY;
- lchan = &trx->ts[0].lchan[0];
- lchan->ts->pchan = GSM_PCHAN_SDCCH8_SACCH8C;
- lchan->meas.last_fn = 47;
- rc = is_meas_overdue(lchan, &fn_missed_end, 15 + 102);
- OSMO_ASSERT(rc);
- OSMO_ASSERT(fn_missed_end == 66);
-
- /* Missing period-end-trigger at fn=70, SDCCH/8, TS0, SS1 */
- fn_missed_end = LCHAN_FN_DUMMY;
- lchan = &trx->ts[0].lchan[1];
- lchan->ts->pchan = GSM_PCHAN_SDCCH8_SACCH8C;
- lchan->meas.last_fn = 51;
- rc = is_meas_overdue(lchan, &fn_missed_end, 19 + 102);
- OSMO_ASSERT(rc);
- OSMO_ASSERT(fn_missed_end == 70);
-
- /* Missing period-end-trigger at fn=74, SDCCH/8, TS0, SS2 */
- fn_missed_end = LCHAN_FN_DUMMY;
- lchan = &trx->ts[0].lchan[2];
- lchan->ts->pchan = GSM_PCHAN_SDCCH8_SACCH8C;
- lchan->meas.last_fn = 55;
- rc = is_meas_overdue(lchan, &fn_missed_end, 23 + 102);
- OSMO_ASSERT(rc);
- OSMO_ASSERT(fn_missed_end == 74);
-
- /* Missing period-end-trigger at fn=78, SDCCH/8, TS0, SS3 */
- fn_missed_end = LCHAN_FN_DUMMY;
- lchan = &trx->ts[0].lchan[3];
- lchan->ts->pchan = GSM_PCHAN_SDCCH8_SACCH8C;
- lchan->meas.last_fn = 59;
- rc = is_meas_overdue(lchan, &fn_missed_end, 27 + 102);
- OSMO_ASSERT(rc);
- OSMO_ASSERT(fn_missed_end == 78);
-
- /* Missing period-end-trigger at fn=98, SDCCH/8, TS0, SS4 */
- fn_missed_end = LCHAN_FN_DUMMY;
- lchan = &trx->ts[0].lchan[4];
- lchan->ts->pchan = GSM_PCHAN_SDCCH8_SACCH8C;
- lchan->meas.last_fn = 82;
- rc = is_meas_overdue(lchan, &fn_missed_end, 31 + 102);
- OSMO_ASSERT(rc);
- OSMO_ASSERT(fn_missed_end == 98);
-
- /* Missing period-end-trigger at fn=102, SDCCH/8, TS0, SS5 */
- fn_missed_end = LCHAN_FN_DUMMY;
- lchan = &trx->ts[0].lchan[5];
- lchan->ts->pchan = GSM_PCHAN_SDCCH8_SACCH8C;
- lchan->meas.last_fn = 86;
- rc = is_meas_overdue(lchan, &fn_missed_end, 35 + 102);
- OSMO_ASSERT(rc);
- OSMO_ASSERT(fn_missed_end == 102);
-
- /* Missing period-end-trigger at fn=106, SDCCH/8, TS0, SS6 */
- fn_missed_end = LCHAN_FN_DUMMY;
- lchan = &trx->ts[0].lchan[6];
- lchan->ts->pchan = GSM_PCHAN_SDCCH8_SACCH8C;
- lchan->meas.last_fn = 90;
- rc = is_meas_overdue(lchan, &fn_missed_end, 39 + 102);
- OSMO_ASSERT(rc);
- OSMO_ASSERT(fn_missed_end == 4 + 102);
-
- /* Missing period-end-trigger at fn=200, SDCCH/8, TS0, SS7 */
- fn_missed_end = LCHAN_FN_DUMMY;
- lchan = &trx->ts[0].lchan[7];
- lchan->ts->pchan = GSM_PCHAN_SDCCH8_SACCH8C;
- lchan->meas.last_fn = 94;
- rc = is_meas_overdue(lchan, &fn_missed_end, 43 + 102);
- OSMO_ASSERT(rc);
- OSMO_ASSERT(fn_missed_end == 8 + 102);
-
- /* No dropout, SDCCH/8, TS0, SS0 */
- fn_missed_end = LCHAN_FN_DUMMY;
- lchan = &trx->ts[0].lchan[0];
- lchan->ts->pchan = GSM_PCHAN_SDCCH8_SACCH8C;
- lchan->meas.last_fn = 47;
- rc = is_meas_overdue(lchan, &fn_missed_end, 66);
- OSMO_ASSERT(!rc);
- OSMO_ASSERT(fn_missed_end == LCHAN_FN_DUMMY);
-
- /* No dropout, SDCCH/8, TS0, SS1 */
- fn_missed_end = LCHAN_FN_DUMMY;
- lchan = &trx->ts[0].lchan[1];
- lchan->ts->pchan = GSM_PCHAN_SDCCH8_SACCH8C;
- lchan->meas.last_fn = 51;
- rc = is_meas_overdue(lchan, &fn_missed_end, 70);
- OSMO_ASSERT(!rc);
- OSMO_ASSERT(fn_missed_end == LCHAN_FN_DUMMY);
-
- /* No dropout, SDCCH/8, TS0, SS2 */
- fn_missed_end = LCHAN_FN_DUMMY;
- lchan = &trx->ts[0].lchan[2];
- lchan->ts->pchan = GSM_PCHAN_SDCCH8_SACCH8C;
- lchan->meas.last_fn = 55;
- rc = is_meas_overdue(lchan, &fn_missed_end, 74);
- OSMO_ASSERT(!rc);
- OSMO_ASSERT(fn_missed_end == LCHAN_FN_DUMMY);
-
- /* No dropout, SDCCH/8, TS0, SS3 */
- fn_missed_end = LCHAN_FN_DUMMY;
- lchan = &trx->ts[0].lchan[3];
- lchan->ts->pchan = GSM_PCHAN_SDCCH8_SACCH8C;
- lchan->meas.last_fn = 59;
- rc = is_meas_overdue(lchan, &fn_missed_end, 78);
- OSMO_ASSERT(!rc);
- OSMO_ASSERT(fn_missed_end == LCHAN_FN_DUMMY);
-
- /* No dropout, SDCCH/8, TS0, SS4 */
- fn_missed_end = LCHAN_FN_DUMMY;
- lchan = &trx->ts[0].lchan[4];
- lchan->ts->pchan = GSM_PCHAN_SDCCH8_SACCH8C;
- lchan->meas.last_fn = 82;
- rc = is_meas_overdue(lchan, &fn_missed_end, 98);
- OSMO_ASSERT(!rc);
- OSMO_ASSERT(fn_missed_end == LCHAN_FN_DUMMY);
-
- /* No dropout, SDCCH/8, TS0, SS5 */
- fn_missed_end = LCHAN_FN_DUMMY;
- lchan = &trx->ts[0].lchan[5];
- lchan->ts->pchan = GSM_PCHAN_SDCCH8_SACCH8C;
- lchan->meas.last_fn = 86;
- rc = is_meas_overdue(lchan, &fn_missed_end, 102);
- OSMO_ASSERT(!rc);
- OSMO_ASSERT(fn_missed_end == LCHAN_FN_DUMMY);
-
- /* No dropout, SDCCH/8, TS0, SS6 */
- fn_missed_end = LCHAN_FN_DUMMY;
- lchan = &trx->ts[0].lchan[6];
- lchan->ts->pchan = GSM_PCHAN_SDCCH8_SACCH8C;
- lchan->meas.last_fn = 90;
- rc = is_meas_overdue(lchan, &fn_missed_end, 4 + 102);
- OSMO_ASSERT(!rc);
- OSMO_ASSERT(fn_missed_end == LCHAN_FN_DUMMY);
-
- /* No dropout, SDCCH/8, TS0, SS7 */
- fn_missed_end = LCHAN_FN_DUMMY;
- lchan = &trx->ts[0].lchan[7];
- lchan->ts->pchan = GSM_PCHAN_SDCCH8_SACCH8C;
- lchan->meas.last_fn = 94;
- rc = is_meas_overdue(lchan, &fn_missed_end, 8 + 102);
- OSMO_ASSERT(!rc);
- OSMO_ASSERT(fn_missed_end == LCHAN_FN_DUMMY);
-
- /* Missing period-end-trigger at fn=88, SDCCH/4, TS0, SS0 */
- fn_missed_end = LCHAN_FN_DUMMY;
- lchan = &trx->ts[0].lchan[0];
- lchan->ts->pchan = GSM_PCHAN_CCCH_SDCCH4;
- lchan->meas.last_fn = 57;
- rc = is_meas_overdue(lchan, &fn_missed_end, 37 + 102);
- OSMO_ASSERT(rc);
- OSMO_ASSERT(fn_missed_end == 88);
-
- /* Missing period-end-trigger at fn=92, SDCCH/4, TS0, SS1 */
- fn_missed_end = LCHAN_FN_DUMMY;
- lchan = &trx->ts[0].lchan[1];
- lchan->ts->pchan = GSM_PCHAN_CCCH_SDCCH4;
- lchan->meas.last_fn = 61;
- rc = is_meas_overdue(lchan, &fn_missed_end, 41 + 102);
- OSMO_ASSERT(rc);
- OSMO_ASSERT(fn_missed_end == 92);
-
- /* Missing period-end-trigger at fn=6, SDCCH/4, TS0, SS2 */
- fn_missed_end = LCHAN_FN_DUMMY;
- lchan = &trx->ts[0].lchan[2];
- lchan->ts->pchan = GSM_PCHAN_CCCH_SDCCH4;
- lchan->meas.last_fn = GSM_MAX_FN - 102 + 98;
- rc = is_meas_overdue(lchan, &fn_missed_end, 47);
- OSMO_ASSERT(rc);
- OSMO_ASSERT(fn_missed_end == 6);
-
- /* Missing period-end-trigger at fn=10, SDCCH/4, TS0, SS3 */
- fn_missed_end = LCHAN_FN_DUMMY;
- lchan = &trx->ts[0].lchan[3];
- lchan->ts->pchan = GSM_PCHAN_CCCH_SDCCH4;
- lchan->meas.last_fn = 0;
- rc = is_meas_overdue(lchan, &fn_missed_end, 51);
- OSMO_ASSERT(rc);
- OSMO_ASSERT(fn_missed_end == 10);
-
- /* No dropout, SDCCH/4, TS0, SS0 */
- fn_missed_end = LCHAN_FN_DUMMY;
- lchan = &trx->ts[0].lchan[0];
- lchan->ts->pchan = GSM_PCHAN_CCCH_SDCCH4;
- lchan->meas.last_fn = 57;
- rc = is_meas_overdue(lchan, &fn_missed_end, 88);
- OSMO_ASSERT(!rc);
- OSMO_ASSERT(fn_missed_end == LCHAN_FN_DUMMY);
-
- /* No dropout, SDCCH/4, TS0, SS1 */
- fn_missed_end = LCHAN_FN_DUMMY;
- lchan = &trx->ts[0].lchan[1];
- lchan->ts->pchan = GSM_PCHAN_CCCH_SDCCH4;
- lchan->meas.last_fn = 61;
- rc = is_meas_overdue(lchan, &fn_missed_end, 92);
- OSMO_ASSERT(!rc);
- OSMO_ASSERT(fn_missed_end == LCHAN_FN_DUMMY);
-
- /* No dropout, SDCCH/4, TS0, SS2 */
- fn_missed_end = LCHAN_FN_DUMMY;
- lchan = &trx->ts[0].lchan[2];
- lchan->ts->pchan = GSM_PCHAN_CCCH_SDCCH4;
- lchan->meas.last_fn = GSM_MAX_FN - 102 + 98;
- rc = is_meas_overdue(lchan, &fn_missed_end, 6);
- OSMO_ASSERT(!rc);
- OSMO_ASSERT(fn_missed_end == LCHAN_FN_DUMMY);
-
- /* No dropout, SDCCH/4, TS0, SS3 */
- fn_missed_end = LCHAN_FN_DUMMY;
- lchan = &trx->ts[0].lchan[3];
- lchan->ts->pchan = GSM_PCHAN_CCCH_SDCCH4;
- lchan->meas.last_fn = 0;
- rc = is_meas_overdue(lchan, &fn_missed_end, 10);
- OSMO_ASSERT(!rc);
- OSMO_ASSERT(fn_missed_end == LCHAN_FN_DUMMY);
-}
-
static void test_is_meas_complete_single(struct gsm_lchan *lchan,
uint32_t fn_end, uint8_t intv_len)
{
@@ -1152,7 +570,6 @@ int main(int argc, char **argv)
printf("*** MEASUREMENT INTERVAL ENDING DETECTION TESTS ***\n");
printf("***************************************************\n");
- test_is_meas_overdue();
test_is_meas_complete();
test_lchan_meas_process_measurement(false, false);
test_lchan_meas_process_measurement(true, false);
diff --git a/tests/meas/meas_test.ok b/tests/meas/meas_test.ok
index 3d4f4308..e62bb42f 100644
--- a/tests/meas/meas_test.ok
+++ b/tests/meas/meas_test.ok
@@ -714,10 +714,6 @@ meas.ul_res.full.rx_qual | 0 | 0
===========================================================
-Testing is_meas_overdue()
-
-
-===========================================================
Testing is_meas_complete()