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/.
fixeria gerrit-no-reply at lists.osmocom.orgfixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/17670 )
Change subject: tests/coding: check return value of encoding / decoding functions
......................................................................
tests/coding: check return value of encoding / decoding functions
Change-Id: I78850a4ab2fb7cd63bb4a3789f934634b6fb2cb7
---
M tests/coding/coding_test.c
1 file changed, 74 insertions(+), 11 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/70/17670/1
diff --git a/tests/coding/coding_test.c b/tests/coding/coding_test.c
index 2b0830f..bfdb8b9 100644
--- a/tests/coding/coding_test.c
+++ b/tests/coding/coding_test.c
@@ -76,10 +76,15 @@
ubit_t bursts_u[116 * 4];
sbit_t bursts_s[116 * 4];
int n_errors, n_bits_total;
+ int rc;
/* Encode L2 message */
printf("Encoding: %s\n", osmo_hexdump(l2, 23));
- gsm0503_xcch_encode(bursts_u, l2);
+ rc = gsm0503_xcch_encode(bursts_u, l2);
+ if (rc) {
+ printf("%s(): encoding failed (rc=%d)\n", __func__, rc);
+ return;
+ }
/* Prepare soft-bits */
osmo_ubit2sbit(bursts_s, bursts_u, 116 * 4);
@@ -91,7 +96,12 @@
memset(bursts_s + 116, 0, 30);
/* Decode, correcting errors */
- gsm0503_xcch_decode(result, bursts_s, &n_errors, &n_bits_total);
+ rc = gsm0503_xcch_decode(result, bursts_s, &n_errors, &n_bits_total);
+ if (rc) {
+ printf("%s(): decoding failed (rc=%d)\n", __func__, rc);
+ return;
+ }
+
printf("Decoded: %s\n", osmo_hexdump(result, 23));
printf("xcch_decode: n_errors=%d n_bits_total=%d ber=%.2f\n",
n_errors, n_bits_total, (float) n_errors / n_bits_total);
@@ -110,8 +120,12 @@
sbit_t bursts_s[36];
/* Encode L2 message */
+ printf("Encoding: %02x\n", ra);
rc = gsm0503_rach_ext_encode(bursts_u, ra, bsic, false);
- printf("Encoding: %02x%s\n", ra, (rc != 0) ? " FAIL" : "");
+ if (rc) {
+ printf("%s(): encoding failed (rc=%d)\n", __func__, rc);
+ return;
+ }
/* Prepare soft-bits */
osmo_ubit2sbit(bursts_s, bursts_u, 36);
@@ -125,8 +139,12 @@
/* Decode, correcting errors */
rc = gsm0503_rach_decode_ber(&result, bursts_s, bsic, NULL, NULL);
- printf("Decoded: %02x%s\n", result, (rc != 0) ? " FAIL" : "");
+ if (rc) {
+ printf("%s(): decoding failed (rc=%d)\n", __func__, rc);
+ return;
+ }
+ printf("Decoded: %02x\n", result);
if (ra != result)
printf("FAIL [RACH]: encoded %u != %u decoded\n", ra, result);
@@ -141,8 +159,12 @@
sbit_t bursts_s[36];
/* Encode L2 message */
+ printf("Encoding: %02x\n", ra);
rc = gsm0503_rach_ext_encode(bursts_u, ra, bsic, true);
- printf("Encoding: %02x%s\n", ra, (rc != 0) ? " FAIL" : "");
+ if (rc) {
+ printf("%s(): encoding failed (rc=%d)\n", __func__, rc);
+ return;
+ }
/* Prepare soft-bits */
osmo_ubit2sbit(bursts_s, bursts_u, 36);
@@ -156,8 +178,12 @@
/* Decode, correcting errors */
rc = gsm0503_rach_ext_decode_ber(&result, bursts_s, bsic, NULL, NULL);
- printf("Decoded: %02x%s\n", result, (rc != 0) ? " FAIL" : "");
+ if (rc) {
+ printf("%s(): decoding failed (rc=%d)\n", __func__, rc);
+ return;
+ }
+ printf("Decoded: %02x\n", result);
if (ra != result)
printf("FAIL [RACH ext]: encoded %u != %u decoded\n", ra, result);
@@ -169,6 +195,7 @@
uint8_t result[4];
ubit_t bursts_u[78];
sbit_t bursts_s[78];
+ int rc;
/* Zero bits 25 and above */
info[3] &= 1;
@@ -176,7 +203,11 @@
/* Encode L2 message */
printf("Encoding: %s\n", osmo_hexdump(info, 4));
- gsm0503_sch_encode(bursts_u, info);
+ rc = gsm0503_sch_encode(bursts_u, info);
+ if (rc) {
+ printf("%s(): encoding failed (rc=%d)\n", __func__, rc);
+ return;
+ }
/* Prepare soft-bits */
osmo_ubit2sbit(bursts_s, bursts_u, 78);
@@ -189,7 +220,12 @@
memset(bursts_s + 6, 0, 10);
/* Decode, correcting errors */
- gsm0503_sch_decode(result, bursts_s);
+ rc = gsm0503_sch_decode(result, bursts_s);
+ if (rc) {
+ printf("%s(): decoding failed (rc=%d)\n", __func__, rc);
+ return;
+ }
+
printf("Decoded: %s\n", osmo_hexdump(result, 4));
OSMO_ASSERT(!memcmp(info, result, 4));
@@ -210,7 +246,11 @@
/* Encode L2 message */
printf("Encoding: %s\n", osmo_hexdump(speech, len));
- gsm0503_tch_fr_encode(bursts_u, speech, len, 1);
+ rc = gsm0503_tch_fr_encode(bursts_u, speech, len, 1);
+ if (rc) {
+ printf("%s(): encoding failed (rc=%d)\n", __func__, rc);
+ return;
+ }
/* Prepare soft-bits */
osmo_ubit2sbit(bursts_s, bursts_u, 116 * 8);
@@ -224,6 +264,11 @@
/* Decode, correcting errors */
rc = gsm0503_tch_fr_decode(result, bursts_s, 1, len == 31,
&n_errors, &n_bits_total);
+ if (rc < 0) {
+ printf("%s(): decoding failed (rc=%d)\n", __func__, rc);
+ return;
+ }
+
printf("Decoded: %s\n", osmo_hexdump(result, len));
printf("tch_fr_decode: n_errors=%d n_bits_total=%d ber=%.2f\n",
n_errors, n_bits_total, (float)n_errors/n_bits_total);
@@ -247,7 +292,11 @@
/* Encode L2 message */
printf("Encoding: %s\n", osmo_hexdump(speech, len));
- gsm0503_tch_hr_encode(bursts_u, speech, len);
+ rc = gsm0503_tch_hr_encode(bursts_u, speech, len);
+ if (rc) {
+ printf("%s(): encoding failed (rc=%d)\n", __func__, rc);
+ return;
+ }
/* Prepare soft-bits */
osmo_ubit2sbit(bursts_s, bursts_u, 116 * 6);
@@ -261,6 +310,11 @@
/* Decode, correcting errors */
rc = gsm0503_tch_hr_decode(result, bursts_s, 0,
&n_errors, &n_bits_total);
+ if (rc < 0) {
+ printf("%s(): decoding failed (rc=%d)\n", __func__, rc);
+ return;
+ }
+
printf("Decoded: %s\n", osmo_hexdump(result, len));
printf("tch_hr_decode: n_errors=%d n_bits_total=%d ber=%.2f\n",
n_errors, n_bits_total, (float)n_errors/n_bits_total);
@@ -294,7 +348,11 @@
/* Encode L2 message */
printf("Encoding: %s\n", osmo_hexdump(l2, len));
- gsm0503_pdtch_encode(bursts_u, l2, len);
+ rc = gsm0503_pdtch_encode(bursts_u, l2, len);
+ if (rc < 0) {
+ printf("%s(): encoding failed (rc=%d)\n", __func__, rc);
+ return;
+ }
/* Prepare soft-bits */
osmo_ubit2sbit(bursts_s, bursts_u, 116 * 4);
@@ -305,6 +363,11 @@
/* Decode */
rc = gsm0503_pdtch_decode(result, bursts_s, NULL,
&n_errors, &n_bits_total);
+ if (rc < 0) {
+ printf("%s(): decoding failed (rc=%d)\n", __func__, rc);
+ return;
+ }
+
printf("Decoded: %s\n", osmo_hexdump(result, len));
printf("pdtch_decode: n_errors=%d n_bits_total=%d ber=%.2f\n",
n_errors, n_bits_total, (float)n_errors/n_bits_total);
--
To view, visit https://gerrit.osmocom.org/c/libosmocore/+/17670
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings
Gerrit-Project: libosmocore
Gerrit-Branch: master
Gerrit-Change-Id: I78850a4ab2fb7cd63bb4a3789f934634b6fb2cb7
Gerrit-Change-Number: 17670
Gerrit-PatchSet: 1
Gerrit-Owner: fixeria <axilirator at gmail.com>
Gerrit-MessageType: newchange
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20200330/3b5855ba/attachment.htm>