Review at  https://gerrit.osmocom.org/6658

gsm0408_test: also test gsm48_generate_lai() and gsm48_decode_lai()

Change-Id: Idd6cee090464bc92b654332904a9a08edf16e5c9
---
M tests/gsm0408/gsm0408_test.c
M tests/gsm0408/gsm0408_test.ok
2 files changed, 53 insertions(+), 0 deletions(-)


  git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/58/6658/1

diff --git a/tests/gsm0408/gsm0408_test.c b/tests/gsm0408/gsm0408_test.c
index ad45507..a0e740a 100644
--- a/tests/gsm0408/gsm0408_test.c
+++ b/tests/gsm0408/gsm0408_test.c
@@ -159,6 +159,33 @@
                printf("passed\n");
 }
 
+static inline void check_lai(const struct gprs_ra_id *raid)
+{
+       int rc;
+       struct gsm48_loc_area_id lai = {};
+       struct gprs_ra_id decoded = {};
+       struct gprs_ra_id _laid = *raid;
+       struct gprs_ra_id *laid = &_laid;
+       laid->rac = 0;
+
+       printf("- gsm48_generate_lai() from "); dump_ra(laid);
+
+       gsm48_generate_lai(&lai, laid->mcc, laid->mnc, laid->lac);
+       printf("  Encoded %s\n", osmo_hexdump((unsigned char*)&lai, 
sizeof(lai)));
+       rc = gsm48_decode_lai(&lai, &decoded.mcc, &decoded.mnc, &decoded.lac);
+       if (rc) {
+               printf("  gsm48_decode_lai() returned %d --> FAIL\n", rc);
+               return;
+       }
+       printf("  gsm48_decode_lai() gives  "); dump_ra(&decoded);
+       if (decoded.mcc == laid->mcc
+           && decoded.mnc == laid->mnc
+           && decoded.lac == laid->lac)
+               printf("  passed\n");
+       else
+               printf("  FAIL\n");
+}
+
 static struct gprs_ra_id test_ra_cap_items[] = {
        {
                .mcc = 77,
@@ -192,6 +219,15 @@
 
        for (i = 0; i < ARRAY_SIZE(test_ra_cap_items); i++)
                check_ra(&test_ra_cap_items[i]);
+}
+
+static void test_lai_encode_decode(void)
+{
+       int i;
+
+       for (i = 0; i < ARRAY_SIZE(test_ra_cap_items); i++) {
+               check_lai(&test_ra_cap_items[i]);
+       }
 }
 
 static void test_mid_from_tmsi(void)
@@ -229,6 +265,7 @@
        test_mid_from_tmsi();
        test_mid_from_imsi();
        test_ra_cap();
+       test_lai_encode_decode();
 
        return EXIT_SUCCESS;
 }
diff --git a/tests/gsm0408/gsm0408_test.ok b/tests/gsm0408/gsm0408_test.ok
index dc19eea..7612c12 100644
--- a/tests/gsm0408/gsm0408_test.ok
+++ b/tests/gsm0408/gsm0408_test.ok
@@ -22,3 +22,19 @@
 MCC+MNC in BCD: 99 99 99 
 999-999-65535-255
 RA test...passed
+- gsm48_generate_lai() from 077-121-666-0
+  Encoded 70 17 21 02 9a 
+  gsm48_decode_lai() gives  077-121-666-0
+  passed
+- gsm48_generate_lai() from 084-98-11-0
+  Encoded 80 f4 89 00 0b 
+  gsm48_decode_lai() gives  084-98-11-0
+  passed
+- gsm48_generate_lai() from 000-00-0-0
+  Encoded 00 f0 00 00 00 
+  gsm48_decode_lai() gives  000-00-0-0
+  passed
+- gsm48_generate_lai() from 999-999-65535-0
+  Encoded 99 99 99 ff ff 
+  gsm48_decode_lai() gives  999-999-65535-0
+  passed

-- 
To view, visit https://gerrit.osmocom.org/6658
To unsubscribe, visit https://gerrit.osmocom.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Idd6cee090464bc92b654332904a9a08edf16e5c9
Gerrit-PatchSet: 1
Gerrit-Project: libosmocore
Gerrit-Branch: master
Gerrit-Owner: Neels Hofmeyr <nhofm...@sysmocom.de>

Reply via email to