Mercurial > hg > orthanc
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 }