diff UnitTestsSources/main.cpp @ 674:d76b747aec1b

improved check for big endianness
author Sebastien Jodogne <s.jodogne@gmail.com>
date Tue, 03 Dec 2013 13:50:08 +0100
parents 900274ed996f
children 203157cb4fde
line wrap: on
line diff
--- a/UnitTestsSources/main.cpp	Tue Dec 03 12:38:22 2013 +0100
+++ b/UnitTestsSources/main.cpp	Tue Dec 03 13:50:08 2013 +0100
@@ -522,18 +522,33 @@
 }
 
 
+
+#if defined(__linux)
+#include <endian.h>
+#endif
+
 TEST(Toolbox, Endianness)
 {
-#if defined(__powerpc__) || defined(__powerpc64__)
-  ASSERT_EQ(Endianness_Big, Toolbox::DetectEndianness());
-#endif
+  // Parts of this test come from Adam Conrad
+  // http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=728822#5
 
 #if defined(_WIN32)
   ASSERT_EQ(Endianness_Little, Toolbox::DetectEndianness());
+
+#elif defined(__linux)
+
+#if !defined(__BYTE_ORDER)
+#  error Support your platform here
 #endif
 
-#if defined(__amd64__) || defined(__i386__)
+#  if __BYTE_ORDER == __BIG_ENDIAN
+  ASSERT_EQ(Endianness_Big, Toolbox::DetectEndianness());
+#  else // __LITTLE_ENDIAN
   ASSERT_EQ(Endianness_Little, Toolbox::DetectEndianness());
+#  endif
+
+#else
+#error Support your platform here
 #endif
 }