Mercurial > hg > orthanc
diff UnitTestsSources/UnitTestsMain.cpp @ 1337:afaa55d42ddd
FreeBSD support
author | jodogne |
---|---|
date | Tue, 31 Mar 2015 11:40:29 +0200 |
parents | 6e7e5ed91c2d |
children | feaf2840917c |
line wrap: on
line diff
--- a/UnitTestsSources/UnitTestsMain.cpp Mon Mar 30 16:18:46 2015 +0200 +++ b/UnitTestsSources/UnitTestsMain.cpp Tue Mar 31 11:40:29 2015 +0200 @@ -45,6 +45,7 @@ #include "../Core/Uuid.h" #include "../OrthancServer/OrthancInitialization.h" + using namespace Orthanc; @@ -668,19 +669,29 @@ #if defined(__linux) #include <endian.h> +#elif defined(__FreeBSD__) +#include <machine/endian.h> #endif + TEST(Toolbox, Endianness) { // Parts of this test come from Adam Conrad // http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=728822#5 -#if defined(_WIN32) + + /** + * Windows and OS X are assumed to always little-endian. + **/ + +#if defined(_WIN32) || defined(__APPLE__) ASSERT_EQ(Endianness_Little, Toolbox::DetectEndianness()); -#elif defined(__APPLE__) - ASSERT_EQ(Endianness_Little, Toolbox::DetectEndianness()); + /** + * Linux. + **/ + #elif defined(__linux) || defined(__FreeBSD_kernel__) #if !defined(__BYTE_ORDER) @@ -693,6 +704,18 @@ ASSERT_EQ(Endianness_Little, Toolbox::DetectEndianness()); # endif + + /** + * FreeBSD. + **/ + +#elif defined(__FreeBSD__) +# 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