diff options
-rw-r--r-- | debian/changelog | 7 | ||||
-rw-r--r-- | debian/patches/big_endian_test_fix.patch | 41 | ||||
-rw-r--r-- | debian/patches/series | 1 | ||||
-rw-r--r-- | tests/lib/in46a_test.c | 8 |
4 files changed, 56 insertions, 1 deletions
diff --git a/debian/changelog b/debian/changelog index ba62635..d7ee3ad 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,10 @@ +osmo-ggsn (1.2.2-4) unstable; urgency=medium + + * debian/patches/big_endian_test_fix.patch: + - Fix test suite for big-endian architectures + + -- Ruben Undheim <ruben.undheim@gmail.com> Thu, 06 Dec 2018 21:05:24 +0100 + osmo-ggsn (1.2.2-3) unstable; urgency=low * debian/control: diff --git a/debian/patches/big_endian_test_fix.patch b/debian/patches/big_endian_test_fix.patch new file mode 100644 index 0000000..cd93313 --- /dev/null +++ b/debian/patches/big_endian_test_fix.patch @@ -0,0 +1,41 @@ +From: Ruben Undheim <ruben.undheim@gmail.com> +Date: Thu, 6 Dec 2018 20:46:11 +0100 +Subject: Fix for big-endian tests + +--- + tests/lib/in46a_test.c | 8 +++++++- + 1 file changed, 7 insertions(+), 1 deletion(-) + +diff --git a/tests/lib/in46a_test.c b/tests/lib/in46a_test.c +index 407ac5d..caba155 100644 +--- a/tests/lib/in46a_test.c ++++ b/tests/lib/in46a_test.c +@@ -12,13 +12,19 @@ + #include <osmocom/core/logging.h> + #include <osmocom/core/msgb.h> + #include <osmocom/core/bits.h> ++#include <osmocom/core/endian.h> + + #include "../../lib/in46_addr.h" + #include "../../lib/syserr.h" + + static const struct in46_addr g_ia4 = { + .len = 4, ++#if OSMO_IS_LITTLE_ENDIAN == 1 + .v4.s_addr = 0x0d0c0b0a, ++#else ++ .v4.s_addr = 0x0a0b0c0d, ++#endif ++ + }; + + static void test_in46a_to_af(void) +@@ -141,7 +147,7 @@ static void test_in46a_to_eua(void) + OSMO_ASSERT(in46a_to_eua(&g_ia4, 1, &eua) == 0); + OSMO_ASSERT(eua.v[0] == PDP_EUA_ORG_IETF); + OSMO_ASSERT(eua.v[1] == PDP_EUA_TYPE_v4); +- OSMO_ASSERT(osmo_load32le(&eua.v[2]) == g_ia4.v4.s_addr); ++ OSMO_ASSERT(*((uint32_t*)(&eua.v[2])) == g_ia4.v4.s_addr); + } + + static void test_in46a_from_eua(void) diff --git a/debian/patches/series b/debian/patches/series index 021386e..59c259c 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -1,2 +1,3 @@ systemd.patch spelling.patch +big_endian_test_fix.patch diff --git a/tests/lib/in46a_test.c b/tests/lib/in46a_test.c index 407ac5d..caba155 100644 --- a/tests/lib/in46a_test.c +++ b/tests/lib/in46a_test.c @@ -12,13 +12,19 @@ #include <osmocom/core/logging.h> #include <osmocom/core/msgb.h> #include <osmocom/core/bits.h> +#include <osmocom/core/endian.h> #include "../../lib/in46_addr.h" #include "../../lib/syserr.h" static const struct in46_addr g_ia4 = { .len = 4, +#if OSMO_IS_LITTLE_ENDIAN == 1 .v4.s_addr = 0x0d0c0b0a, +#else + .v4.s_addr = 0x0a0b0c0d, +#endif + }; static void test_in46a_to_af(void) @@ -141,7 +147,7 @@ static void test_in46a_to_eua(void) OSMO_ASSERT(in46a_to_eua(&g_ia4, 1, &eua) == 0); OSMO_ASSERT(eua.v[0] == PDP_EUA_ORG_IETF); OSMO_ASSERT(eua.v[1] == PDP_EUA_TYPE_v4); - OSMO_ASSERT(osmo_load32le(&eua.v[2]) == g_ia4.v4.s_addr); + OSMO_ASSERT(*((uint32_t*)(&eua.v[2])) == g_ia4.v4.s_addr); } static void test_in46a_from_eua(void) |