view efr-sid/Unit-test-desc @ 53:637ee027999b

efr-sid/Unit-test-desc: blurb written
author Mychaela Falconia <falcon@freecalypso.org>
date Mon, 12 Aug 2024 03:39:42 +0000
parents
children 0832b5ac62b2
line wrap: on
line source

Unit test for EFR SID detector: test data
=========================================

The test sequence generated here consists of 175 frames in total:

1 perfect (error-free) SID frame: should classify as SID=2
95 frames with 1 bit in the SID field cleared: should classify as SID=2
48 frames with 2 bits in the SID field cleared: should classify as SID=1
11 frames with 15 bits in the SID field cleared: should classify as SID=1
20 frames with 16 bits in the SID field cleared: should classify as SID=0

(The error-free SID frame used as the starting point is frame #71 from
 dtx01.cod in the official test sequence set from ETSI.)

The goal is to ensure perfect agreement among the following parties:

* The program used to generate these test frames;
* EFR_sid_classify() function in Themyscira libgsmefr;
* osmo_efr_sid_classify() function in libosmocodec (part of libosmocore);
* SID classification performed by TI Calypso DSP;
* SID classification performed by Nokia InSite BTS (E1 Abis output).

The official reference (source of truth) is GSM 06.62 spec for the definition
of SID field bits and GSM 06.81 spec for SID classification thresholds; all
implementations listed above are supposed to follow these spec definitions.
However, any time a human developer has to read a spec and write code based on
that spec, errors can occur at any step in that process; a cross-check between
our implementation and those made by others before us will provide an important
assurance of correctness.

The test frames generated here have been chosen with the goal of maximizing
the chance of catching errors in these two areas:

* Wrong bits being set by tools aiming to generate or corrupt the SID field,
  or wrong bits being checked by the SID detector;
* Wrong thresholds being applied for SID classification.

The generator program in this directory and Themyscira libgsmefr are already
in agreement; once we test on TI Calypso DSP and on Nokia InSite, we will have
full confidence in the correctness of our implementation.  The same test data
will then be added to libosmocore as a regression test.