]> git.proxmox.com Git - ceph.git/blobdiff - ceph/src/boost/libs/endian/test/endian_test.cpp
import new upstream nautilus stable release 14.2.8
[ceph.git] / ceph / src / boost / libs / endian / test / endian_test.cpp
index 75bd170ddf7889e5821be6b9f35ec95db01cd0d2..3ccaef0545257d4ee2402764cc44316397b38521 100644 (file)
@@ -102,7 +102,7 @@ namespace
   template <class Endian>
   inline void verify_native_representation( int line )
   {
-#   ifdef BOOST_BIG_ENDIAN
+#   if BOOST_ENDIAN_BIG_BYTE
       verify_representation<Endian>( true, line );
 #   else
       verify_representation<Endian>( false, line );
@@ -124,8 +124,8 @@ namespace
     if ( memcmp( v.c, "\x8\7\6\5\4\3\2\1", 8) == 0 )
     {
       cout << "This machine is little-endian.\n";
-  #   ifndef BOOST_LITTLE_ENDIAN
-        cout << "yet boost/detail/endian.hpp does not define BOOST_LITTLE_ENDIAN.\n"
+  #   if !BOOST_ENDIAN_LITTLE_BYTE
+        cout << "yet boost/predef/other/endian.h does not define BOOST_ENDIAN_LITTLE_BYTE.\n"
           "The Boost Endian library must be revised to work correctly on this system.\n"
           "Please report this problem to the Boost mailing list.\n";
         exit(1);
@@ -134,8 +134,8 @@ namespace
     else if ( memcmp( v.c, "\1\2\3\4\5\6\7\x8", 8) == 0 )
     {
       cout << "This machine is big-endian.\n";
-  #   ifndef BOOST_BIG_ENDIAN
-        cout << "yet boost/detail/endian.hpp does not define BOOST_BIG_ENDIAN.\n"
+  #   if !BOOST_ENDIAN_BIG_BYTE
+        cout << "yet boost/predef/other/endian.h does not define BOOST_ENDIAN_BIG_BYTE.\n"
           "The Boost Endian library must be revised to work correctly on this system.\n"
           "Please report this problem to the Boost mailing list.\n";
         exit(1);
@@ -225,75 +225,75 @@ namespace
     little_uint32_at little_align_uint32;
     little_uint64_at little_align_uint64;
 
-    VERIFY(big_8.data() == reinterpret_cast<const char *>(&big_8));
-    VERIFY(big_16.data() == reinterpret_cast<const char *>(&big_16));
-    VERIFY(big_24.data() == reinterpret_cast<const char *>(&big_24));
-    VERIFY(big_32.data() == reinterpret_cast<const char *>(&big_32));
-    VERIFY(big_40.data() == reinterpret_cast<const char *>(&big_40));
-    VERIFY(big_48.data() == reinterpret_cast<const char *>(&big_48));
-    VERIFY(big_56.data() == reinterpret_cast<const char *>(&big_56));
-    VERIFY(big_64.data() == reinterpret_cast<const char *>(&big_64));
-
-    VERIFY(big_u8.data() == reinterpret_cast<const char *>(&big_u8));
-    VERIFY(big_u16.data() == reinterpret_cast<const char *>(&big_u16));
-    VERIFY(big_u24.data() == reinterpret_cast<const char *>(&big_u24));
-    VERIFY(big_u32.data() == reinterpret_cast<const char *>(&big_u32));
-    VERIFY(big_u40.data() == reinterpret_cast<const char *>(&big_u40));
-    VERIFY(big_u48.data() == reinterpret_cast<const char *>(&big_u48));
-    VERIFY(big_u56.data() == reinterpret_cast<const char *>(&big_u56));
-    VERIFY(big_u64.data() == reinterpret_cast<const char *>(&big_u64));
-
-    VERIFY(little_8.data() == reinterpret_cast<const char *>(&little_8));
-    VERIFY(little_16.data() == reinterpret_cast<const char *>(&little_16));
-    VERIFY(little_24.data() == reinterpret_cast<const char *>(&little_24));
-    VERIFY(little_32.data() == reinterpret_cast<const char *>(&little_32));
-    VERIFY(little_40.data() == reinterpret_cast<const char *>(&little_40));
-    VERIFY(little_48.data() == reinterpret_cast<const char *>(&little_48));
-    VERIFY(little_56.data() == reinterpret_cast<const char *>(&little_56));
-    VERIFY(little_64.data() == reinterpret_cast<const char *>(&little_64));
-
-    VERIFY(little_u8.data() == reinterpret_cast<const char *>(&little_u8));
-    VERIFY(little_u16.data() == reinterpret_cast<const char *>(&little_u16));
-    VERIFY(little_u24.data() == reinterpret_cast<const char *>(&little_u24));
-    VERIFY(little_u32.data() == reinterpret_cast<const char *>(&little_u32));
-    VERIFY(little_u40.data() == reinterpret_cast<const char *>(&little_u40));
-    VERIFY(little_u48.data() == reinterpret_cast<const char *>(&little_u48));
-    VERIFY(little_u56.data() == reinterpret_cast<const char *>(&little_u56));
-    VERIFY(little_u64.data() == reinterpret_cast<const char *>(&little_u64));
-
-    VERIFY(native_8.data() == reinterpret_cast<const char *>(&native_8));
-    VERIFY(native_16.data() == reinterpret_cast<const char *>(&native_16));
-    VERIFY(native_24.data() == reinterpret_cast<const char *>(&native_24));
-    VERIFY(native_32.data() == reinterpret_cast<const char *>(&native_32));
-    VERIFY(native_40.data() == reinterpret_cast<const char *>(&native_40));
-    VERIFY(native_48.data() == reinterpret_cast<const char *>(&native_48));
-    VERIFY(native_56.data() == reinterpret_cast<const char *>(&native_56));
-    VERIFY(native_64.data() == reinterpret_cast<const char *>(&native_64));
-
-    VERIFY(native_u8.data() == reinterpret_cast<const char *>(&native_u8));
-    VERIFY(native_u16.data() == reinterpret_cast<const char *>(&native_u16));
-    VERIFY(native_u24.data() == reinterpret_cast<const char *>(&native_u24));
-    VERIFY(native_u32.data() == reinterpret_cast<const char *>(&native_u32));
-    VERIFY(native_u40.data() == reinterpret_cast<const char *>(&native_u40));
-    VERIFY(native_u48.data() == reinterpret_cast<const char *>(&native_u48));
-    VERIFY(native_u56.data() == reinterpret_cast<const char *>(&native_u56));
-    VERIFY(native_u64.data() == reinterpret_cast<const char *>(&native_u64));
-
-    VERIFY(big_align_int16.data() == reinterpret_cast<const char *>(&big_align_int16));
-    VERIFY(big_align_int32.data() == reinterpret_cast<const char *>(&big_align_int32));
-    VERIFY(big_align_int64.data() == reinterpret_cast<const char *>(&big_align_int64));
-
-    VERIFY(big_align_uint16.data() == reinterpret_cast<const char *>(&big_align_uint16));
-    VERIFY(big_align_uint32.data() == reinterpret_cast<const char *>(&big_align_uint32));
-    VERIFY(big_align_uint64.data() == reinterpret_cast<const char *>(&big_align_uint64));
-
-    VERIFY(little_align_int16.data() == reinterpret_cast<const char *>(&little_align_int16));
-    VERIFY(little_align_int32.data() == reinterpret_cast<const char *>(&little_align_int32));
-    VERIFY(little_align_int64.data() == reinterpret_cast<const char *>(&little_align_int64));
-
-    VERIFY(little_align_uint16.data() == reinterpret_cast<const char *>(&little_align_uint16));
-    VERIFY(little_align_uint32.data() == reinterpret_cast<const char *>(&little_align_uint32));
-    VERIFY(little_align_uint64.data() == reinterpret_cast<const char *>(&little_align_uint64));
+    VERIFY(big_8.data() == reinterpret_cast<const unsigned char *>(&big_8));
+    VERIFY(big_16.data() == reinterpret_cast<const unsigned char *>(&big_16));
+    VERIFY(big_24.data() == reinterpret_cast<const unsigned char *>(&big_24));
+    VERIFY(big_32.data() == reinterpret_cast<const unsigned char *>(&big_32));
+    VERIFY(big_40.data() == reinterpret_cast<const unsigned char *>(&big_40));
+    VERIFY(big_48.data() == reinterpret_cast<const unsigned char *>(&big_48));
+    VERIFY(big_56.data() == reinterpret_cast<const unsigned char *>(&big_56));
+    VERIFY(big_64.data() == reinterpret_cast<const unsigned char *>(&big_64));
+
+    VERIFY(big_u8.data() == reinterpret_cast<const unsigned char *>(&big_u8));
+    VERIFY(big_u16.data() == reinterpret_cast<const unsigned char *>(&big_u16));
+    VERIFY(big_u24.data() == reinterpret_cast<const unsigned char *>(&big_u24));
+    VERIFY(big_u32.data() == reinterpret_cast<const unsigned char *>(&big_u32));
+    VERIFY(big_u40.data() == reinterpret_cast<const unsigned char *>(&big_u40));
+    VERIFY(big_u48.data() == reinterpret_cast<const unsigned char *>(&big_u48));
+    VERIFY(big_u56.data() == reinterpret_cast<const unsigned char *>(&big_u56));
+    VERIFY(big_u64.data() == reinterpret_cast<const unsigned char *>(&big_u64));
+
+    VERIFY(little_8.data() == reinterpret_cast<const unsigned char *>(&little_8));
+    VERIFY(little_16.data() == reinterpret_cast<const unsigned char *>(&little_16));
+    VERIFY(little_24.data() == reinterpret_cast<const unsigned char *>(&little_24));
+    VERIFY(little_32.data() == reinterpret_cast<const unsigned char *>(&little_32));
+    VERIFY(little_40.data() == reinterpret_cast<const unsigned char *>(&little_40));
+    VERIFY(little_48.data() == reinterpret_cast<const unsigned char *>(&little_48));
+    VERIFY(little_56.data() == reinterpret_cast<const unsigned char *>(&little_56));
+    VERIFY(little_64.data() == reinterpret_cast<const unsigned char *>(&little_64));
+
+    VERIFY(little_u8.data() == reinterpret_cast<const unsigned char *>(&little_u8));
+    VERIFY(little_u16.data() == reinterpret_cast<const unsigned char *>(&little_u16));
+    VERIFY(little_u24.data() == reinterpret_cast<const unsigned char *>(&little_u24));
+    VERIFY(little_u32.data() == reinterpret_cast<const unsigned char *>(&little_u32));
+    VERIFY(little_u40.data() == reinterpret_cast<const unsigned char *>(&little_u40));
+    VERIFY(little_u48.data() == reinterpret_cast<const unsigned char *>(&little_u48));
+    VERIFY(little_u56.data() == reinterpret_cast<const unsigned char *>(&little_u56));
+    VERIFY(little_u64.data() == reinterpret_cast<const unsigned char *>(&little_u64));
+
+    VERIFY(native_8.data() == reinterpret_cast<const unsigned char *>(&native_8));
+    VERIFY(native_16.data() == reinterpret_cast<const unsigned char *>(&native_16));
+    VERIFY(native_24.data() == reinterpret_cast<const unsigned char *>(&native_24));
+    VERIFY(native_32.data() == reinterpret_cast<const unsigned char *>(&native_32));
+    VERIFY(native_40.data() == reinterpret_cast<const unsigned char *>(&native_40));
+    VERIFY(native_48.data() == reinterpret_cast<const unsigned char *>(&native_48));
+    VERIFY(native_56.data() == reinterpret_cast<const unsigned char *>(&native_56));
+    VERIFY(native_64.data() == reinterpret_cast<const unsigned char *>(&native_64));
+
+    VERIFY(native_u8.data() == reinterpret_cast<const unsigned char *>(&native_u8));
+    VERIFY(native_u16.data() == reinterpret_cast<const unsigned char *>(&native_u16));
+    VERIFY(native_u24.data() == reinterpret_cast<const unsigned char *>(&native_u24));
+    VERIFY(native_u32.data() == reinterpret_cast<const unsigned char *>(&native_u32));
+    VERIFY(native_u40.data() == reinterpret_cast<const unsigned char *>(&native_u40));
+    VERIFY(native_u48.data() == reinterpret_cast<const unsigned char *>(&native_u48));
+    VERIFY(native_u56.data() == reinterpret_cast<const unsigned char *>(&native_u56));
+    VERIFY(native_u64.data() == reinterpret_cast<const unsigned char *>(&native_u64));
+
+    VERIFY(big_align_int16.data() == reinterpret_cast<const unsigned char *>(&big_align_int16));
+    VERIFY(big_align_int32.data() == reinterpret_cast<const unsigned char *>(&big_align_int32));
+    VERIFY(big_align_int64.data() == reinterpret_cast<const unsigned char *>(&big_align_int64));
+
+    VERIFY(big_align_uint16.data() == reinterpret_cast<const unsigned char *>(&big_align_uint16));
+    VERIFY(big_align_uint32.data() == reinterpret_cast<const unsigned char *>(&big_align_uint32));
+    VERIFY(big_align_uint64.data() == reinterpret_cast<const unsigned char *>(&big_align_uint64));
+
+    VERIFY(little_align_int16.data() == reinterpret_cast<const unsigned char *>(&little_align_int16));
+    VERIFY(little_align_int32.data() == reinterpret_cast<const unsigned char *>(&little_align_int32));
+    VERIFY(little_align_int64.data() == reinterpret_cast<const unsigned char *>(&little_align_int64));
+
+    VERIFY(little_align_uint16.data() == reinterpret_cast<const unsigned char *>(&little_align_uint16));
+    VERIFY(little_align_uint32.data() == reinterpret_cast<const unsigned char *>(&little_align_uint32));
+    VERIFY(little_align_uint64.data() == reinterpret_cast<const unsigned char *>(&little_align_uint64));
 
   }
 
@@ -732,11 +732,13 @@ namespace
 
   } // check_representation_and_range
 
+/*
+
   class MyInt
   {
     int32_t mx;
   public:
-    MyInt(int32_t x) : mx(x) {}
+    MyInt(int32_t x = 0) : mx(x) {}
     operator int32_t() const {return mx;}
 
     //friend int32_t operator+(const MyInt& x) {return x;}
@@ -761,6 +763,27 @@ namespace
 //    cout << "v+v is " << +(v+v) << endl;
   }
 
+  void check_udt_le()
+  {
+    typedef boost::endian::endian_arithmetic< order::little, MyInt, 32 >  mylittle_int32_ut;
+
+    mylittle_int32_ut v(10);
+    cout << "+v is " << +v << endl;
+    v += 1;
+    cout << "v is " << +v << endl;
+    v -= 2;
+    cout << "v is " << +v << endl;
+    v *= 2;
+    cout << "v is " << +v << endl;
+    ++v;
+    cout << "v is " << +v << endl;
+    --v;
+    cout << "v is " << +v << endl;
+//    cout << "v+v is " << +(v+v) << endl;
+  }
+
+*/
+
   long iterations = 10000;
 
   template< class Endian >
@@ -800,7 +823,8 @@ int cpp_main( int argc, char * argv[] )
   check_alignment();
   check_representation_and_range_and_ops();
   check_data();
-  check_udt();
+  //check_udt();
+  //check_udt_le();
 
   //timing_test<big_int32_t> ( "big_int32_t" );
   //timing_test<big_int32_at>( "big_int32_at" );