laforge has submitted this change. (
https://gerrit.osmocom.org/c/libosmocore/+/37912?usp=email )
Change subject: tests: add unit test for osmo_fr_sid_classify()
......................................................................
tests: add unit test for osmo_fr_sid_classify()
The bit patterns used to construct this unit test have been
generated here:
https://www.freecalypso.org/hg/vband-misc/file/tip/fr-sid
These test patterns have been used successfully to reveal
an off-by-one bug in the implementation of FRv1 Rx SID
classification in Nokia InSite BTS:
https://osmocom.org/projects/retro-gsm/wiki/InSite_UL_captures
The implementation in TI Calypso DSP has also been tested
with these patterns and found to be correct per GSM 06.31 spec,
unlike the Nokia BTS.
Related: OS#6538
Change-Id: Ie3f5339cdfecf39e359d635d58864dd323f41fff
---
M tests/Makefile.am
A tests/codec/codec_fr_sid_test.c
A tests/codec/codec_fr_sid_test.in
A tests/codec/codec_fr_sid_test.ok
M tests/testsuite.at
5 files changed, 469 insertions(+), 1 deletion(-)
Approvals:
laforge: Looks good to me, but someone else must approve
pespin: Looks good to me, approved
Jenkins Builder: Verified
diff --git a/tests/Makefile.am b/tests/Makefile.am
index c82e924..48242c3 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -27,7 +27,7 @@
prbs/prbs_test gsm23003/gsm23003_test \
gsm23236/gsm23236_test \
codec/codec_ecu_fr_test codec/codec_efr_sid_test \
- codec/codec_hr_sid_test \
+ codec/codec_fr_sid_test codec/codec_hr_sid_test \
timer/clk_override_test \
oap/oap_client_test gsm29205/gsm29205_test \
logging/logging_vty_test \
@@ -270,6 +270,9 @@
codec_codec_efr_sid_test_SOURCES = codec/codec_efr_sid_test.c
codec_codec_efr_sid_test_LDADD = $(top_builddir)/src/codec/libosmocodec.la $(LDADD)
+codec_codec_fr_sid_test_SOURCES = codec/codec_fr_sid_test.c
+codec_codec_fr_sid_test_LDADD = $(top_builddir)/src/codec/libosmocodec.la $(LDADD)
+
codec_codec_hr_sid_test_SOURCES = codec/codec_hr_sid_test.c
codec_codec_hr_sid_test_LDADD = $(top_builddir)/src/codec/libosmocodec.la $(LDADD)
@@ -447,6 +450,7 @@
codec/codec_test.ok \
codec/codec_ecu_fr_test.ok \
codec/codec_efr_sid_test.ok codec/codec_efr_sid_test.in \
+ codec/codec_fr_sid_test.ok codec/codec_fr_sid_test.in \
codec/codec_hr_sid_test.ok codec/codec_hr_sid_test.in \
vty/vty_test.ok vty/vty_test.err \
vty/fail_not_de-indented.cfg \
@@ -610,6 +614,8 @@
$(srcdir)/codec/codec_ecu_fr_test.ok
codec/codec_efr_sid_test $(srcdir)/codec/codec_efr_sid_test.in \
$(srcdir)/codec/codec_efr_sid_test.ok
+ codec/codec_fr_sid_test $(srcdir)/codec/codec_fr_sid_test.in \
+ >$(srcdir)/codec/codec_fr_sid_test.ok
codec/codec_hr_sid_test $(srcdir)/codec/codec_hr_sid_test.in \
$(srcdir)/codec/codec_hr_sid_test.ok
if
ENABLE_GB
diff --git a/tests/codec/codec_fr_sid_test.c b/tests/codec/codec_fr_sid_test.c
new file mode 100644
index 0000000..25c1b3f
--- /dev/null
+++ b/tests/codec/codec_fr_sid_test.c
@@ -0,0 +1,97 @@
+/*
+ * This program is a test for osmo_fr_sid_classify(). It reads a set of
+ * FRv1 codec frames in hex format (TS 101 318 RTP format represented in hex,
+ * each frame as its own hex line) and feeds each test frame to
+ * osmo_fr_sid_classify(). It then prints the output next to each input.
+ *
+ * Author: Mychaela N. Falconia <falcon(a)freecalypso.org>rg>, 2024 - however,
+ * Mother Mychaela's contributions are NOT subject to copyright.
+ * No rights reserved, all rights relinquished.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ */
+
+#include <ctype.h>
+#include <stdio.h>
+#include <stdint.h>
+#include <stdbool.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include <osmocom/core/utils.h>
+#include <osmocom/codec/codec.h>
+
+static void process_record(const char *hex_str)
+{
+ uint8_t frame_bytes[GSM_FR_BYTES];
+ enum osmo_gsm631_sid_class sidc;
+
+ osmo_hexparse(hex_str, frame_bytes, GSM_FR_BYTES);
+ sidc = osmo_fr_sid_classify(frame_bytes);
+ printf("%s ==> %d\n", hex_str, (int) sidc);
+}
+
+static void process_line(char *linebuf, const char *infname, int lineno)
+{
+ char *cp = linebuf, *hex_str;
+ int ndig;
+
+ while (isspace(*cp))
+ cp++;
+ if (*cp == '\0' || *cp == '#')
+ return;
+ /* expect string of 66 hex digits */
+ hex_str = cp;
+ for (ndig = 0; ndig < GSM_FR_BYTES * 2; ndig++) {
+ if (!isxdigit(*cp))
+ goto inv;
+ cp++;
+ }
+ if (*cp) {
+ if (!isspace(*cp))
+ goto inv;
+ *cp++ = '\0';
+ }
+ /* must be end of non-comment line */
+ while (isspace(*cp))
+ cp++;
+ if (*cp != '\0' && *cp != '#')
+ goto inv;
+
+ process_record(hex_str);
+ return;
+
+inv: fprintf(stderr, "%s line %d: invalid syntax\n", infname, lineno);
+ exit(1);
+}
+
+int main(int argc, char **argv)
+{
+ const char *infname;
+ FILE *inf;
+ char linebuf[128];
+ int lineno;
+
+ if (argc != 2) {
+ fprintf(stderr, "usage: %s input-file\n", argv[0]);
+ exit(1);
+ }
+ infname = argv[1];
+ inf = fopen(infname, "r");
+ if (!inf) {
+ perror(infname);
+ exit(1);
+ }
+ for (lineno = 1; fgets(linebuf, sizeof(linebuf), inf); lineno++)
+ process_line(linebuf, infname, lineno);
+ fclose(inf);
+ exit(0);
+}
diff --git a/tests/codec/codec_fr_sid_test.in b/tests/codec/codec_fr_sid_test.in
new file mode 100644
index 0000000..d5930e2
--- /dev/null
+++ b/tests/codec/codec_fr_sid_test.in
@@ -0,0 +1,184 @@
+# This file is input for the FRv1 SID classifier test program.
+# It has been generated here:
+#
+#
https://www.freecalypso.org/hg/vband-misc/file/tip/fr-sid
+#
+# It is based on the same principle as the EFR version:
+#
+#
https://www.freecalypso.org/hg/vband-misc/file/tip/efr-sid/Unit-test-desc
+
+DAE6DB659B00010000000000000100000000000001000000000000010000000000
+DAE6DB659B00014000000000000100000000000001000000000000010000000000
+DAE6DB659B00012000000000000100000000000001000000000000010000000000
+DAE6DB659B00010800000000000100000000000001000000000000010000000000
+DAE6DB659B00010400000000000100000000000001000000000000010000000000
+DAE6DB659B00010100000000000100000000000001000000000000010000000000
+DAE6DB659B00010080000000000100000000000001000000000000010000000000
+DAE6DB659B00010020000000000100000000000001000000000000010000000000
+DAE6DB659B00010010000000000100000000000001000000000000010000000000
+DAE6DB659B00010004000000000100000000000001000000000000010000000000
+DAE6DB659B00010002000000000100000000000001000000000000010000000000
+DAE6DB659B00010000800000000100000000000001000000000000010000000000
+DAE6DB659B00010000400000000100000000000001000000000000010000000000
+DAE6DB659B00010000100000000100000000000001000000000000010000000000
+DAE6DB659B00010000080000000100000000000001000000000000010000000000
+DAE6DB659B00010000020000000100000000000001000000000000010000000000
+DAE6DB659B00010000010000000100000000000001000000000000010000000000
+DAE6DB659B00010000004000000100000000000001000000000000010000000000
+DAE6DB659B00010000002000000100000000000001000000000000010000000000
+DAE6DB659B00010000000800000100000000000001000000000000010000000000
+DAE6DB659B00010000000400000100000000000001000000000000010000000000
+DAE6DB659B00010000000100000100000000000001000000000000010000000000
+DAE6DB659B00010000000080000100000000000001000000000000010000000000
+DAE6DB659B00010000000020000100000000000001000000000000010000000000
+DAE6DB659B00010000000010000100000000000001000000000000010000000000
+DAE6DB659B00010000000004000100000000000001000000000000010000000000
+DAE6DB659B00010000000002000100000000000001000000000000010000000000
+DAE6DB659B00010000000000000140000000000001000000000000010000000000
+DAE6DB659B00010000000000000120000000000001000000000000010000000000
+DAE6DB659B00010000000000000108000000000001000000000000010000000000
+DAE6DB659B00010000000000000104000000000001000000000000010000000000
+DAE6DB659B00010000000000000101000000000001000000000000010000000000
+DAE6DB659B00010000000000000100800000000001000000000000010000000000
+DAE6DB659B00010000000000000100200000000001000000000000010000000000
+DAE6DB659B00010000000000000100100000000001000000000000010000000000
+DAE6DB659B00010000000000000100040000000001000000000000010000000000
+DAE6DB659B00010000000000000100020000000001000000000000010000000000
+DAE6DB659B00010000000000000100008000000001000000000000010000000000
+DAE6DB659B00010000000000000100004000000001000000000000010000000000
+DAE6DB659B00010000000000000100001000000001000000000000010000000000
+DAE6DB659B00010000000000000100000800000001000000000000010000000000
+DAE6DB659B00010000000000000100000200000001000000000000010000000000
+DAE6DB659B00010000000000000100000100000001000000000000010000000000
+DAE6DB659B00010000000000000100000040000001000000000000010000000000
+DAE6DB659B00010000000000000100000020000001000000000000010000000000
+DAE6DB659B00010000000000000100000008000001000000000000010000000000
+DAE6DB659B00010000000000000100000004000001000000000000010000000000
+DAE6DB659B00010000000000000100000001000001000000000000010000000000
+DAE6DB659B00010000000000000100000000800001000000000000010000000000
+DAE6DB659B00010000000000000100000000200001000000000000010000000000
+DAE6DB659B00010000000000000100000000100001000000000000010000000000
+DAE6DB659B00010000000000000100000000040001000000000000010000000000
+DAE6DB659B00010000000000000100000000020001000000000000010000000000
+DAE6DB659B00010000000000000100000000000001400000000000010000000000
+DAE6DB659B00010000000000000100000000000001200000000000010000000000
+DAE6DB659B00010000000000000100000000000001080000000000010000000000
+DAE6DB659B00010000000000000100000000000001040000000000010000000000
+DAE6DB659B00010000000000000100000000000001010000000000010000000000
+DAE6DB659B00010000000000000100000000000001008000000000010000000000
+DAE6DB659B00010000000000000100000000000001002000000000010000000000
+DAE6DB659B00010000000000000100000000000001001000000000010000000000
+DAE6DB659B00010000000000000100000000000001000400000000010000000000
+DAE6DB659B00010000000000000100000000000001000200000000010000000000
+DAE6DB659B00010000000000000100000000000001000080000000010000000000
+DAE6DB659B00010000000000000100000000000001000040000000010000000000
+DAE6DB659B00010000000000000100000000000001000010000000010000000000
+DAE6DB659B00010000000000000100000000000001000008000000010000000000
+DAE6DB659B00010000000000000100000000000001000002000000010000000000
+DAE6DB659B00010000000000000100000000000001000001000000010000000000
+DAE6DB659B00010000000000000100000000000001000000400000010000000000
+DAE6DB659B00010000000000000100000000000001000000200000010000000000
+DAE6DB659B00010000000000000100000000000001000000080000010000000000
+DAE6DB659B00010000000000000100000000000001000000040000010000000000
+DAE6DB659B00010000000000000100000000000001000000010000010000000000
+DAE6DB659B00010000000000000100000000000001000000008000010000000000
+DAE6DB659B00010000000000000100000000000001000000002000010000000000
+DAE6DB659B00010000000000000100000000000001000000001000010000000000
+DAE6DB659B00010000000000000100000000000001000000000400010000000000
+DAE6DB659B00010000000000000100000000000001000000000200010000000000
+DAE6DB659B00010000000000000100000000000001000000000000014000000000
+DAE6DB659B00010000000000000100000000000001000000000000012000000000
+DAE6DB659B00010000000000000100000000000001000000000000010800000000
+DAE6DB659B00010000000000000100000000000001000000000000010400000000
+DAE6DB659B00010000000000000100000000000001000000000000010100000000
+DAE6DB659B00010000000000000100000000000001000000000000010080000000
+DAE6DB659B00010000000000000100000000000001000000000000010020000000
+DAE6DB659B00010000000000000100000000000001000000000000010010000000
+DAE6DB659B00010000000000000100000000000001000000000000010004000000
+DAE6DB659B00010000000000000100000000000001000000000000010000800000
+DAE6DB659B00010000000000000100000000000001000000000000010000100000
+DAE6DB659B00010000000000000100000000000001000000000000010000020000
+DAE6DB659B00010000000000000100000000000001000000000000010000004000
+DAE6DB659B00010000000000000100000000000001000000000000010000000800
+DAE6DB659B00010000000000000100000000000001000000000000010000000100
+DAE6DB659B00010000000000000100000000000001000000000000010000000020
+DAE6DB659B00010000000000000100000000000001000000000000010000000004
+DAE6DB659B00014000000000000100000000800001000000000000010000000000
+DAE6DB659B00012000000000000100000000200001000000000000010000000000
+DAE6DB659B00010800000000000100000000100001000000000000010000000000
+DAE6DB659B00010400000000000100000000040001000000000000010000000000
+DAE6DB659B00010100000000000100000000020001000000000000010000000000
+DAE6DB659B00010080000000000100000000000001400000000000010000000000
+DAE6DB659B00010020000000000100000000000001200000000000010000000000
+DAE6DB659B00010010000000000100000000000001080000000000010000000000
+DAE6DB659B00010004000000000100000000000001040000000000010000000000
+DAE6DB659B00010002000000000100000000000001010000000000010000000000
+DAE6DB659B00010000800000000100000000000001008000000000010000000000
+DAE6DB659B00010000400000000100000000000001002000000000010000000000
+DAE6DB659B00010000100000000100000000000001001000000000010000000000
+DAE6DB659B00010000080000000100000000000001000400000000010000000000
+DAE6DB659B00010000020000000100000000000001000200000000010000000000
+DAE6DB659B00010000010000000100000000000001000080000000010000000000
+DAE6DB659B00010000004000000100000000000001000040000000010000000000
+DAE6DB659B00010000002000000100000000000001000010000000010000000000
+DAE6DB659B00010000000800000100000000000001000008000000010000000000
+DAE6DB659B00010000000400000100000000000001000002000000010000000000
+DAE6DB659B00010000000100000100000000000001000001000000010000000000
+DAE6DB659B00010000000080000100000000000001000000400000010000000000
+DAE6DB659B00010000000020000100000000000001000000200000010000000000
+DAE6DB659B00010000000010000100000000000001000000080000010000000000
+DAE6DB659B00010000000004000100000000000001000000040000010000000000
+DAE6DB659B00010000000002000100000000000001000000010000010000000000
+DAE6DB659B00010000000000000140000000000001000000008000010000000000
+DAE6DB659B00010000000000000120000000000001000000002000010000000000
+DAE6DB659B00010000000000000108000000000001000000001000010000000000
+DAE6DB659B00010000000000000104000000000001000000000400010000000000
+DAE6DB659B00010000000000000101000000000001000000000200010000000000
+DAE6DB659B00010000000000000100800000000001000000000000014000000000
+DAE6DB659B00010000000000000100200000000001000000000000012000000000
+DAE6DB659B00010000000000000100100000000001000000000000010800000000
+DAE6DB659B00010000000000000100040000000001000000000000010400000000
+DAE6DB659B00010000000000000100020000000001000000000000010100000000
+DAE6DB659B00010000000000000100008000000001000000000000010080000000
+DAE6DB659B00010000000000000100004000000001000000000000010020000000
+DAE6DB659B00010000000000000100001000000001000000000000010010000000
+DAE6DB659B00010000000000000100000800000001000000000000010004000000
+DAE6DB659B00010000000000000100000200000001000000000000010000800000
+DAE6DB659B00010000000000000100000100000001000000000000010000100000
+DAE6DB659B00010000000000000100000040000001000000000000010000020000
+DAE6DB659B00010000000000000100000020000001000000000000010000004000
+DAE6DB659B00010000000000000100000008000001000000000000010000000800
+DAE6DB659B00010000000000000100000004000001000000000000010000000100
+DAE6DB659B00010000000000000100000001000001000000000000010000000020
+DAE6DB659B00010000000000000100000000800001000000000000010000000004
+DAE6DB659B00014020100804000101008040200001080402010000014020000000
+DAE6DB659B00012010080402000100804020100001040201008000012010000000
+DAE6DB659B00010804020100000140201008040001010080402000010804000000
+DAE6DB659B00010402010080000120100804020001008040201000010400800000
+DAE6DB659B00010100804020000108040201000001402010080400010100100000
+DAE6DB659B00010080402010000104020100800001201008040200010080020000
+DAE6DB659B00010020100804000101008040200001080402010000014020004000
+DAE6DB659B00010010080402000100804020100001040201008000012010000800
+DAE6DB659B00010004020100000140201008040001010080402000010804000100
+DAE6DB659B00010002010080000120100804020001008040201000010400800020
+DAE6DB659B00010000804020000108040201000001402010080400010100100004
+DAE6DB659B00014080810102000101020204040001040408081000010000000000
+DAE6DB659B00012020404080000140808101020001010202040400010000000000
+DAE6DB659B00010810102020000120204040800001408081010200010000000000
+DAE6DB659B00010404080810000108101020200001202040408000014000000000
+DAE6DB659B00010102020404000104040808100001081010202000012000000000
+DAE6DB659B00010080810102000101020204040001040408081000010800000000
+DAE6DB659B00010020404080000140808101020001010202040400010400000000
+DAE6DB659B00010010102020000120204040800001408081010200010100000000
+DAE6DB659B00010004080810000108101020200001202040408000014080000000
+DAE6DB659B00010002020404000104040808100001081010202000012020000000
+DAE6DB659B00010000810102000101020204040001040408081000010810000000
+DAE6DB659B00010000404080000140808101020001010202040400010404000000
+DAE6DB659B00010000102020000120204040800001408081010200010100800000
+DAE6DB659B00010000080810000108101020200001202040408000014080100000
+DAE6DB659B00010000020404000104040808100001081010202000012020020000
+DAE6DB659B00010000010102000101020204040001040408081000010810004000
+DAE6DB659B00010000004080000140808101020001010202040400010404000800
+DAE6DB659B00010000002020000120204040800001408081010200010100800100
+DAE6DB659B00010000000810000108101020200001202040408000014080100020
+DAE6DB659B00010000000404000104040808100001081010202000012020020004
diff --git a/tests/codec/codec_fr_sid_test.ok b/tests/codec/codec_fr_sid_test.ok
new file mode 100644
index 0000000..8dcaa34
--- /dev/null
+++ b/tests/codec/codec_fr_sid_test.ok
@@ -0,0 +1,175 @@
+DAE6DB659B00010000000000000100000000000001000000000000010000000000 ==> 2
+DAE6DB659B00014000000000000100000000000001000000000000010000000000 ==> 2
+DAE6DB659B00012000000000000100000000000001000000000000010000000000 ==> 2
+DAE6DB659B00010800000000000100000000000001000000000000010000000000 ==> 2
+DAE6DB659B00010400000000000100000000000001000000000000010000000000 ==> 2
+DAE6DB659B00010100000000000100000000000001000000000000010000000000 ==> 2
+DAE6DB659B00010080000000000100000000000001000000000000010000000000 ==> 2
+DAE6DB659B00010020000000000100000000000001000000000000010000000000 ==> 2
+DAE6DB659B00010010000000000100000000000001000000000000010000000000 ==> 2
+DAE6DB659B00010004000000000100000000000001000000000000010000000000 ==> 2
+DAE6DB659B00010002000000000100000000000001000000000000010000000000 ==> 2
+DAE6DB659B00010000800000000100000000000001000000000000010000000000 ==> 2
+DAE6DB659B00010000400000000100000000000001000000000000010000000000 ==> 2
+DAE6DB659B00010000100000000100000000000001000000000000010000000000 ==> 2
+DAE6DB659B00010000080000000100000000000001000000000000010000000000 ==> 2
+DAE6DB659B00010000020000000100000000000001000000000000010000000000 ==> 2
+DAE6DB659B00010000010000000100000000000001000000000000010000000000 ==> 2
+DAE6DB659B00010000004000000100000000000001000000000000010000000000 ==> 2
+DAE6DB659B00010000002000000100000000000001000000000000010000000000 ==> 2
+DAE6DB659B00010000000800000100000000000001000000000000010000000000 ==> 2
+DAE6DB659B00010000000400000100000000000001000000000000010000000000 ==> 2
+DAE6DB659B00010000000100000100000000000001000000000000010000000000 ==> 2
+DAE6DB659B00010000000080000100000000000001000000000000010000000000 ==> 2
+DAE6DB659B00010000000020000100000000000001000000000000010000000000 ==> 2
+DAE6DB659B00010000000010000100000000000001000000000000010000000000 ==> 2
+DAE6DB659B00010000000004000100000000000001000000000000010000000000 ==> 2
+DAE6DB659B00010000000002000100000000000001000000000000010000000000 ==> 2
+DAE6DB659B00010000000000000140000000000001000000000000010000000000 ==> 2
+DAE6DB659B00010000000000000120000000000001000000000000010000000000 ==> 2
+DAE6DB659B00010000000000000108000000000001000000000000010000000000 ==> 2
+DAE6DB659B00010000000000000104000000000001000000000000010000000000 ==> 2
+DAE6DB659B00010000000000000101000000000001000000000000010000000000 ==> 2
+DAE6DB659B00010000000000000100800000000001000000000000010000000000 ==> 2
+DAE6DB659B00010000000000000100200000000001000000000000010000000000 ==> 2
+DAE6DB659B00010000000000000100100000000001000000000000010000000000 ==> 2
+DAE6DB659B00010000000000000100040000000001000000000000010000000000 ==> 2
+DAE6DB659B00010000000000000100020000000001000000000000010000000000 ==> 2
+DAE6DB659B00010000000000000100008000000001000000000000010000000000 ==> 2
+DAE6DB659B00010000000000000100004000000001000000000000010000000000 ==> 2
+DAE6DB659B00010000000000000100001000000001000000000000010000000000 ==> 2
+DAE6DB659B00010000000000000100000800000001000000000000010000000000 ==> 2
+DAE6DB659B00010000000000000100000200000001000000000000010000000000 ==> 2
+DAE6DB659B00010000000000000100000100000001000000000000010000000000 ==> 2
+DAE6DB659B00010000000000000100000040000001000000000000010000000000 ==> 2
+DAE6DB659B00010000000000000100000020000001000000000000010000000000 ==> 2
+DAE6DB659B00010000000000000100000008000001000000000000010000000000 ==> 2
+DAE6DB659B00010000000000000100000004000001000000000000010000000000 ==> 2
+DAE6DB659B00010000000000000100000001000001000000000000010000000000 ==> 2
+DAE6DB659B00010000000000000100000000800001000000000000010000000000 ==> 2
+DAE6DB659B00010000000000000100000000200001000000000000010000000000 ==> 2
+DAE6DB659B00010000000000000100000000100001000000000000010000000000 ==> 2
+DAE6DB659B00010000000000000100000000040001000000000000010000000000 ==> 2
+DAE6DB659B00010000000000000100000000020001000000000000010000000000 ==> 2
+DAE6DB659B00010000000000000100000000000001400000000000010000000000 ==> 2
+DAE6DB659B00010000000000000100000000000001200000000000010000000000 ==> 2
+DAE6DB659B00010000000000000100000000000001080000000000010000000000 ==> 2
+DAE6DB659B00010000000000000100000000000001040000000000010000000000 ==> 2
+DAE6DB659B00010000000000000100000000000001010000000000010000000000 ==> 2
+DAE6DB659B00010000000000000100000000000001008000000000010000000000 ==> 2
+DAE6DB659B00010000000000000100000000000001002000000000010000000000 ==> 2
+DAE6DB659B00010000000000000100000000000001001000000000010000000000 ==> 2
+DAE6DB659B00010000000000000100000000000001000400000000010000000000 ==> 2
+DAE6DB659B00010000000000000100000000000001000200000000010000000000 ==> 2
+DAE6DB659B00010000000000000100000000000001000080000000010000000000 ==> 2
+DAE6DB659B00010000000000000100000000000001000040000000010000000000 ==> 2
+DAE6DB659B00010000000000000100000000000001000010000000010000000000 ==> 2
+DAE6DB659B00010000000000000100000000000001000008000000010000000000 ==> 2
+DAE6DB659B00010000000000000100000000000001000002000000010000000000 ==> 2
+DAE6DB659B00010000000000000100000000000001000001000000010000000000 ==> 2
+DAE6DB659B00010000000000000100000000000001000000400000010000000000 ==> 2
+DAE6DB659B00010000000000000100000000000001000000200000010000000000 ==> 2
+DAE6DB659B00010000000000000100000000000001000000080000010000000000 ==> 2
+DAE6DB659B00010000000000000100000000000001000000040000010000000000 ==> 2
+DAE6DB659B00010000000000000100000000000001000000010000010000000000 ==> 2
+DAE6DB659B00010000000000000100000000000001000000008000010000000000 ==> 2
+DAE6DB659B00010000000000000100000000000001000000002000010000000000 ==> 2
+DAE6DB659B00010000000000000100000000000001000000001000010000000000 ==> 2
+DAE6DB659B00010000000000000100000000000001000000000400010000000000 ==> 2
+DAE6DB659B00010000000000000100000000000001000000000200010000000000 ==> 2
+DAE6DB659B00010000000000000100000000000001000000000000014000000000 ==> 2
+DAE6DB659B00010000000000000100000000000001000000000000012000000000 ==> 2
+DAE6DB659B00010000000000000100000000000001000000000000010800000000 ==> 2
+DAE6DB659B00010000000000000100000000000001000000000000010400000000 ==> 2
+DAE6DB659B00010000000000000100000000000001000000000000010100000000 ==> 2
+DAE6DB659B00010000000000000100000000000001000000000000010080000000 ==> 2
+DAE6DB659B00010000000000000100000000000001000000000000010020000000 ==> 2
+DAE6DB659B00010000000000000100000000000001000000000000010010000000 ==> 2
+DAE6DB659B00010000000000000100000000000001000000000000010004000000 ==> 2
+DAE6DB659B00010000000000000100000000000001000000000000010000800000 ==> 2
+DAE6DB659B00010000000000000100000000000001000000000000010000100000 ==> 2
+DAE6DB659B00010000000000000100000000000001000000000000010000020000 ==> 2
+DAE6DB659B00010000000000000100000000000001000000000000010000004000 ==> 2
+DAE6DB659B00010000000000000100000000000001000000000000010000000800 ==> 2
+DAE6DB659B00010000000000000100000000000001000000000000010000000100 ==> 2
+DAE6DB659B00010000000000000100000000000001000000000000010000000020 ==> 2
+DAE6DB659B00010000000000000100000000000001000000000000010000000004 ==> 2
+DAE6DB659B00014000000000000100000000800001000000000000010000000000 ==> 1
+DAE6DB659B00012000000000000100000000200001000000000000010000000000 ==> 1
+DAE6DB659B00010800000000000100000000100001000000000000010000000000 ==> 1
+DAE6DB659B00010400000000000100000000040001000000000000010000000000 ==> 1
+DAE6DB659B00010100000000000100000000020001000000000000010000000000 ==> 1
+DAE6DB659B00010080000000000100000000000001400000000000010000000000 ==> 1
+DAE6DB659B00010020000000000100000000000001200000000000010000000000 ==> 1
+DAE6DB659B00010010000000000100000000000001080000000000010000000000 ==> 1
+DAE6DB659B00010004000000000100000000000001040000000000010000000000 ==> 1
+DAE6DB659B00010002000000000100000000000001010000000000010000000000 ==> 1
+DAE6DB659B00010000800000000100000000000001008000000000010000000000 ==> 1
+DAE6DB659B00010000400000000100000000000001002000000000010000000000 ==> 1
+DAE6DB659B00010000100000000100000000000001001000000000010000000000 ==> 1
+DAE6DB659B00010000080000000100000000000001000400000000010000000000 ==> 1
+DAE6DB659B00010000020000000100000000000001000200000000010000000000 ==> 1
+DAE6DB659B00010000010000000100000000000001000080000000010000000000 ==> 1
+DAE6DB659B00010000004000000100000000000001000040000000010000000000 ==> 1
+DAE6DB659B00010000002000000100000000000001000010000000010000000000 ==> 1
+DAE6DB659B00010000000800000100000000000001000008000000010000000000 ==> 1
+DAE6DB659B00010000000400000100000000000001000002000000010000000000 ==> 1
+DAE6DB659B00010000000100000100000000000001000001000000010000000000 ==> 1
+DAE6DB659B00010000000080000100000000000001000000400000010000000000 ==> 1
+DAE6DB659B00010000000020000100000000000001000000200000010000000000 ==> 1
+DAE6DB659B00010000000010000100000000000001000000080000010000000000 ==> 1
+DAE6DB659B00010000000004000100000000000001000000040000010000000000 ==> 1
+DAE6DB659B00010000000002000100000000000001000000010000010000000000 ==> 1
+DAE6DB659B00010000000000000140000000000001000000008000010000000000 ==> 1
+DAE6DB659B00010000000000000120000000000001000000002000010000000000 ==> 1
+DAE6DB659B00010000000000000108000000000001000000001000010000000000 ==> 1
+DAE6DB659B00010000000000000104000000000001000000000400010000000000 ==> 1
+DAE6DB659B00010000000000000101000000000001000000000200010000000000 ==> 1
+DAE6DB659B00010000000000000100800000000001000000000000014000000000 ==> 1
+DAE6DB659B00010000000000000100200000000001000000000000012000000000 ==> 1
+DAE6DB659B00010000000000000100100000000001000000000000010800000000 ==> 1
+DAE6DB659B00010000000000000100040000000001000000000000010400000000 ==> 1
+DAE6DB659B00010000000000000100020000000001000000000000010100000000 ==> 1
+DAE6DB659B00010000000000000100008000000001000000000000010080000000 ==> 1
+DAE6DB659B00010000000000000100004000000001000000000000010020000000 ==> 1
+DAE6DB659B00010000000000000100001000000001000000000000010010000000 ==> 1
+DAE6DB659B00010000000000000100000800000001000000000000010004000000 ==> 1
+DAE6DB659B00010000000000000100000200000001000000000000010000800000 ==> 1
+DAE6DB659B00010000000000000100000100000001000000000000010000100000 ==> 1
+DAE6DB659B00010000000000000100000040000001000000000000010000020000 ==> 1
+DAE6DB659B00010000000000000100000020000001000000000000010000004000 ==> 1
+DAE6DB659B00010000000000000100000008000001000000000000010000000800 ==> 1
+DAE6DB659B00010000000000000100000004000001000000000000010000000100 ==> 1
+DAE6DB659B00010000000000000100000001000001000000000000010000000020 ==> 1
+DAE6DB659B00010000000000000100000000800001000000000000010000000004 ==> 1
+DAE6DB659B00014020100804000101008040200001080402010000014020000000 ==> 1
+DAE6DB659B00012010080402000100804020100001040201008000012010000000 ==> 1
+DAE6DB659B00010804020100000140201008040001010080402000010804000000 ==> 1
+DAE6DB659B00010402010080000120100804020001008040201000010400800000 ==> 1
+DAE6DB659B00010100804020000108040201000001402010080400010100100000 ==> 1
+DAE6DB659B00010080402010000104020100800001201008040200010080020000 ==> 1
+DAE6DB659B00010020100804000101008040200001080402010000014020004000 ==> 1
+DAE6DB659B00010010080402000100804020100001040201008000012010000800 ==> 1
+DAE6DB659B00010004020100000140201008040001010080402000010804000100 ==> 1
+DAE6DB659B00010002010080000120100804020001008040201000010400800020 ==> 1
+DAE6DB659B00010000804020000108040201000001402010080400010100100004 ==> 1
+DAE6DB659B00014080810102000101020204040001040408081000010000000000 ==> 0
+DAE6DB659B00012020404080000140808101020001010202040400010000000000 ==> 0
+DAE6DB659B00010810102020000120204040800001408081010200010000000000 ==> 0
+DAE6DB659B00010404080810000108101020200001202040408000014000000000 ==> 0
+DAE6DB659B00010102020404000104040808100001081010202000012000000000 ==> 0
+DAE6DB659B00010080810102000101020204040001040408081000010800000000 ==> 0
+DAE6DB659B00010020404080000140808101020001010202040400010400000000 ==> 0
+DAE6DB659B00010010102020000120204040800001408081010200010100000000 ==> 0
+DAE6DB659B00010004080810000108101020200001202040408000014080000000 ==> 0
+DAE6DB659B00010002020404000104040808100001081010202000012020000000 ==> 0
+DAE6DB659B00010000810102000101020204040001040408081000010810000000 ==> 0
+DAE6DB659B00010000404080000140808101020001010202040400010404000000 ==> 0
+DAE6DB659B00010000102020000120204040800001408081010200010100800000 ==> 0
+DAE6DB659B00010000080810000108101020200001202040408000014080100000 ==> 0
+DAE6DB659B00010000020404000104040808100001081010202000012020020000 ==> 0
+DAE6DB659B00010000010102000101020204040001040408081000010810004000 ==> 0
+DAE6DB659B00010000004080000140808101020001010202040400010404000800 ==> 0
+DAE6DB659B00010000002020000120204040800001408081010200010100800100 ==> 0
+DAE6DB659B00010000000810000108101020200001202040408000014080100020 ==> 0
+DAE6DB659B00010000000404000104040808100001081010202000012020020004 ==> 0
diff --git a/tests/testsuite.at b/tests/testsuite.at
index acb3299..f22ca5a 100644
--- a/tests/testsuite.at
+++ b/tests/testsuite.at
@@ -224,6 +224,12 @@
AT_CHECK([$abs_top_builddir/tests/codec/codec_efr_sid_test
$abs_srcdir/codec/codec_efr_sid_test.in], [0], [expout], [ignore])
AT_CLEANUP
+AT_SETUP([codec_fr_sid])
+AT_KEYWORDS([codec_fr_sid])
+cat $abs_srcdir/codec/codec_fr_sid_test.ok > expout
+AT_CHECK([$abs_top_builddir/tests/codec/codec_fr_sid_test
$abs_srcdir/codec/codec_fr_sid_test.in], [0], [expout], [ignore])
+AT_CLEANUP
+
AT_SETUP([codec_hr_sid])
AT_KEYWORDS([codec_hr_sid])
cat $abs_srcdir/codec/codec_hr_sid_test.ok > expout
--
To view, visit
https://gerrit.osmocom.org/c/libosmocore/+/37912?usp=email
To unsubscribe, or for help writing mail filters, visit
https://gerrit.osmocom.org/settings?usp=email
Gerrit-MessageType: merged
Gerrit-Project: libosmocore
Gerrit-Branch: master
Gerrit-Change-Id: Ie3f5339cdfecf39e359d635d58864dd323f41fff
Gerrit-Change-Number: 37912
Gerrit-PatchSet: 1
Gerrit-Owner: falconia <falcon(a)freecalypso.org>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: laforge <laforge(a)osmocom.org>
Gerrit-Reviewer: pespin <pespin(a)sysmocom.de>