falconia has submitted this change. (
https://gerrit.osmocom.org/c/libosmo-abis/+/39559?usp=email )
Change subject: tests: add unit test for HRv1 TRAU->RTP
......................................................................
tests: add unit test for HRv1 TRAU->RTP
Unit tests for TRAU->RTP conversion for FRv1 and EFR codecs were
implemented earlier, but not for HRv1. Fill this gap in unit test
coverage.
The library code path exercised here is osmo_trau_frame_decode_8k()
followed by osmo_trau2rtp(). Both plain (RFC 5993) and extended
(TW-TS-002) RTP output formats are tested.
Change-Id: Id2703d313f52fa54465a13f3370ebb6d7d976bbd
---
M tests/Makefile.am
M tests/testsuite.at
A tests/trau_conv/trau2rtp_hr.in
A tests/trau_conv/trau2rtp_hr_std.ok
A tests/trau_conv/trau2rtp_hr_twts002.ok
5 files changed, 103 insertions(+), 0 deletions(-)
Approvals:
laforge: Looks good to me, but someone else must approve
pespin: Looks good to me, but someone else must approve
Jenkins Builder: Verified
fixeria: Looks good to me, approved
diff --git a/tests/Makefile.am b/tests/Makefile.am
index d904241..4abfc4a 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -92,6 +92,8 @@
trau_conv/trau16_efr_twts001.ok \
trau_conv/trau16_fr.in trau_conv/trau16_fr_std.ok \
trau_conv/trau16_fr_twts001.ok \
+ trau_conv/trau2rtp_hr.in trau_conv/trau2rtp_hr_std.ok \
+ trau_conv/trau2rtp_hr_twts002.ok \
trau_sync/trau_sync_test.ok trau_sync/trau_sync_test.err \
trau_pcu_ericsson/trau_pcu_ericsson_test.ok
diff --git a/tests/testsuite.at b/tests/testsuite.at
index 70e7f25..291d47d 100644
--- a/tests/testsuite.at
+++ b/tests/testsuite.at
@@ -78,3 +78,15 @@
cat $abs_srcdir/trau_conv/trau16_efr_twts001.ok > expout
AT_CHECK([$abs_top_builddir/tests/trau_conv/trau16_to_rtp
$abs_srcdir/trau_conv/trau16_efr.in ul tw-ts-001], [0], [expout], [ignore])
AT_CLEANUP
+
+AT_SETUP([trau2rtp_hr_std])
+AT_KEYWORDS([trau2rtp_hr_std])
+cat $abs_srcdir/trau_conv/trau2rtp_hr_std.ok > expout
+AT_CHECK([$abs_top_builddir/tests/trau_conv/trau2rtp_gen -8
$abs_srcdir/trau_conv/trau2rtp_hr.in], [0], [expout], [ignore])
+AT_CLEANUP
+
+AT_SETUP([trau2rtp_hr_twts002])
+AT_KEYWORDS([trau2rtp_hr_twts002])
+cat $abs_srcdir/trau_conv/trau2rtp_hr_twts002.ok > expout
+AT_CHECK([$abs_top_builddir/tests/trau_conv/trau2rtp_gen -8 -x
$abs_srcdir/trau_conv/trau2rtp_hr.in], [0], [expout], [ignore])
+AT_CLEANUP
diff --git a/tests/trau_conv/trau2rtp_hr.in b/tests/trau_conv/trau2rtp_hr.in
new file mode 100644
index 0000000..dcf33f8
--- /dev/null
+++ b/tests/trau_conv/trau2rtp_hr.in
@@ -0,0 +1,61 @@
+# This file is an input to trau2rtp_gen unit test program, containing
+# TRAU-8k Abis-UL frames for TCH/HS.
+#
+# Most test frames in this set (all except a few hand-crafted ones) were
+# taken from an E1-Abis UL capture from Nokia InSite BTS, specifically
+# from hr-test2.bin E1 timeslot capture file posted here:
+#
+#
https://osmocom.org/projects/retro-gsm/wiki/InSite_UL_captures
+#
+# The extraction of hex-encoded TRAU frames from the E1 timeslot octet stream
+# capture was done with trau-hr-dump program (-r option) developed in this
+# repository:
+#
+#
https://www.freecalypso.org/hg/gsm-net-reveng/
+
+# 2 good speech frames from the beginning of the call
+
+# Frame at 0xcf5e:
+008846a6afdaf9a197a79d82b1efc4c9b8b0e4bb
+# Frame at 0xcffe:
+008844b78bdef8a8bd8da681abd6a2aabdf3e8fb
+
+# a pair of frames stolen for FACCH, the first of which falls on a TAF position
+
+# Frame at 0xd31e:
+008970e480e5808081f180a180fc809881d084fb
+# Frame at 0xd3be:
+008964e48681808081f182eb80e78099eb9d89fb
+
+# some voiced speech frames
+
+# Frame at 0xdb3e:
+00884694caaa89dc8083b89cc881e99a86adbebb
+# Frame at 0xdbde:
+008846e9e692c49bd1d3afac8aeec9f7a9d1efbb
+# Frame at 0xdc7e:
+00884789ff91c1bc93c7efca9f92c6f5a4b1f5fb
+# Frame at 0xdd1e:
+00884799ff82e09febd8aec895f4c2f1e1cfe8bb
+
+# a valid SID frame
+
+# Frame at 0x12c7e:
+00885084dfddccdfffaffffffffffffffffffffb
+
+# an invalid SID frame
+
+# Frame at 0x133fe:
+0089408799deb8ffffdffffffffffef5fffafffb
+
+# hand-crafted test frames follow
+
+# test handling of CRC: frames that begin like good speech,
+# but the 115 bits of payload+CRC are either all-0 or all-1
+00884480808080808080808080808080808080bb
+008847fffffffffffffffffffffffffffffffffb
+
+# good speech frame (copy of 0xdd1e) with XC6 flipped (parity error)
+00884399ff82e09febd8aec895f4c2f1e1cfe8bb
+# flip XC1 too: parity becomes good again, but the code is now undefined
+008a4399ff82e09febd8aec895f4c2f1e1cfe8bb
diff --git a/tests/trau_conv/trau2rtp_hr_std.ok b/tests/trau_conv/trau2rtp_hr_std.ok
new file mode 100644
index 0000000..d017a87
--- /dev/null
+++ b/tests/trau_conv/trau2rtp_hr_std.ok
@@ -0,0 +1,14 @@
+00932FB5E509773A098EF8925C30C8
+001B8BBDE143DD4C055D644A9EF3D1
+NULL
+NULL
+008A4A5426E0037072401D26832D7C
+00B4E62510DD135EB056E93DD4D1DE
+00C4FF2305E137DF28F928DD5231EB
+00CCFF0580FEB85D20AF485C70CFD0
+20025FBB32FFFFFFFFFFFFFFFFFFFF
+NULL
+NULL
+NULL
+NULL
+NULL
diff --git a/tests/trau_conv/trau2rtp_hr_twts002.ok
b/tests/trau_conv/trau2rtp_hr_twts002.ok
new file mode 100644
index 0000000..db65082
--- /dev/null
+++ b/tests/trau_conv/trau2rtp_hr_twts002.ok
@@ -0,0 +1,14 @@
+00932FB5E509773A098EF8925C30C8
+001B8BBDE143DD4C055D644A9EF3D1
+613200CA000011008407C00600D009
+6032060200001105AC067006759D13
+008A4A5426E0037072401D26832D7C
+00B4E62510DD135EB056E93DD4D1DE
+00C4FF2305E137DF28F928DD5231EB
+00CCFF0580FEB85D20AF485C70CFD0
+20025FBB32FFFFFFFFFFFFFFFFFFFF
+10
+70
+70
+70
+70
--
To view, visit
https://gerrit.osmocom.org/c/libosmo-abis/+/39559?usp=email
To unsubscribe, or for help writing mail filters, visit
https://gerrit.osmocom.org/settings?usp=email
Gerrit-MessageType: merged
Gerrit-Project: libosmo-abis
Gerrit-Branch: master
Gerrit-Change-Id: Id2703d313f52fa54465a13f3370ebb6d7d976bbd
Gerrit-Change-Number: 39559
Gerrit-PatchSet: 2
Gerrit-Owner: falconia <falcon(a)freecalypso.org>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: falconia <falcon(a)freecalypso.org>
Gerrit-Reviewer: fixeria <vyanitskiy(a)sysmocom.de>
Gerrit-Reviewer: laforge <laforge(a)osmocom.org>
Gerrit-Reviewer: pespin <pespin(a)sysmocom.de>