summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--debian/changelog7
-rw-r--r--debian/patches/big_endian_test_fix.patch41
-rw-r--r--debian/patches/series1
-rw-r--r--tests/lib/in46a_test.c8
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)