summaryrefslogtreecommitdiff
path: root/libs/endian/test/deprecated_test.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'libs/endian/test/deprecated_test.cpp')
-rw-r--r--libs/endian/test/deprecated_test.cpp183
1 files changed, 183 insertions, 0 deletions
diff --git a/libs/endian/test/deprecated_test.cpp b/libs/endian/test/deprecated_test.cpp
new file mode 100644
index 000000000..e4417f628
--- /dev/null
+++ b/libs/endian/test/deprecated_test.cpp
@@ -0,0 +1,183 @@
+// deprecated_test.cpp ---------------------------------------------------------------//
+
+// Copyright Beman Dawes 2014, 2015
+
+// Distributed under the Boost Software License, Version 1.0.
+// See http://www.boost.org/LICENSE_1_0.txt
+
+// See library home page at http://www.boost.org/libs/endian
+
+//--------------------------------------------------------------------------------------//
+
+#include <boost/endian/detail/disable_warnings.hpp>
+
+#define BOOST_ENDIAN_DEPRECATED_NAMES
+#include <boost/endian/endian.hpp>
+#include <boost/detail/lightweight_main.hpp>
+#include <boost/core/lightweight_test.hpp>
+#include <iostream>
+#include <sstream>
+
+using namespace boost::endian;
+using std::cout;
+using std::endl;
+
+namespace
+{
+
+ // check_size ----------------------------------------------------------------------//
+
+ void check_size()
+ {
+ BOOST_TEST_EQ(sizeof(big8_t), 1);
+ BOOST_TEST_EQ(sizeof(big16_t), 2);
+ BOOST_TEST_EQ(sizeof(big24_t), 3);
+ BOOST_TEST_EQ(sizeof(big32_t), 4);
+ BOOST_TEST_EQ(sizeof(big40_t), 5);
+ BOOST_TEST_EQ(sizeof(big48_t), 6);
+ BOOST_TEST_EQ(sizeof(big56_t), 7);
+ BOOST_TEST_EQ(sizeof(big64_t), 8);
+
+ BOOST_TEST_EQ(sizeof(ubig8_t), 1);
+ BOOST_TEST_EQ(sizeof(ubig16_t), 2);
+ BOOST_TEST_EQ(sizeof(ubig24_t), 3);
+ BOOST_TEST_EQ(sizeof(ubig32_t), 4);
+ BOOST_TEST_EQ(sizeof(ubig40_t), 5);
+ BOOST_TEST_EQ(sizeof(ubig48_t), 6);
+ BOOST_TEST_EQ(sizeof(ubig56_t), 7);
+ BOOST_TEST_EQ(sizeof(ubig64_t), 8);
+
+ BOOST_TEST_EQ(sizeof(little8_t), 1);
+ BOOST_TEST_EQ(sizeof(little16_t), 2);
+ BOOST_TEST_EQ(sizeof(little24_t), 3);
+ BOOST_TEST_EQ(sizeof(little32_t), 4);
+ BOOST_TEST_EQ(sizeof(little40_t), 5);
+ BOOST_TEST_EQ(sizeof(little48_t), 6);
+ BOOST_TEST_EQ(sizeof(little56_t), 7);
+ BOOST_TEST_EQ(sizeof(little64_t), 8);
+
+ BOOST_TEST_EQ(sizeof(ulittle8_t), 1);
+ BOOST_TEST_EQ(sizeof(ulittle16_t), 2);
+ BOOST_TEST_EQ(sizeof(ulittle24_t), 3);
+ BOOST_TEST_EQ(sizeof(ulittle32_t), 4);
+ BOOST_TEST_EQ(sizeof(ulittle40_t), 5);
+ BOOST_TEST_EQ(sizeof(ulittle48_t), 6);
+ BOOST_TEST_EQ(sizeof(ulittle56_t), 7);
+ BOOST_TEST_EQ(sizeof(ulittle64_t), 8);
+
+ BOOST_TEST_EQ(sizeof(native8_t), 1);
+ BOOST_TEST_EQ(sizeof(native16_t), 2);
+ BOOST_TEST_EQ(sizeof(native24_t), 3);
+ BOOST_TEST_EQ(sizeof(native32_t), 4);
+ BOOST_TEST_EQ(sizeof(native40_t), 5);
+ BOOST_TEST_EQ(sizeof(native48_t), 6);
+ BOOST_TEST_EQ(sizeof(native56_t), 7);
+ BOOST_TEST_EQ(sizeof(native64_t), 8);
+
+ BOOST_TEST_EQ(sizeof(unative8_t), 1);
+ BOOST_TEST_EQ(sizeof(unative16_t), 2);
+ BOOST_TEST_EQ(sizeof(unative24_t), 3);
+ BOOST_TEST_EQ(sizeof(unative32_t), 4);
+ BOOST_TEST_EQ(sizeof(unative40_t), 5);
+ BOOST_TEST_EQ(sizeof(unative48_t), 6);
+ BOOST_TEST_EQ(sizeof(unative56_t), 7);
+ BOOST_TEST_EQ(sizeof(unative64_t), 8);
+
+ BOOST_TEST_EQ(sizeof(aligned_big16_t), 2);
+ BOOST_TEST_EQ(sizeof(aligned_big32_t), 4);
+ BOOST_TEST_EQ(sizeof(aligned_big64_t), 8);
+
+ BOOST_TEST_EQ(sizeof(aligned_ubig16_t), 2);
+ BOOST_TEST_EQ(sizeof(aligned_ubig32_t), 4);
+ BOOST_TEST_EQ(sizeof(aligned_ubig64_t), 8);
+
+ BOOST_TEST_EQ(sizeof(aligned_little16_t), 2);
+ BOOST_TEST_EQ(sizeof(aligned_little32_t), 4);
+ BOOST_TEST_EQ(sizeof(aligned_little64_t), 8);
+
+ BOOST_TEST_EQ(sizeof(aligned_ulittle16_t), 2);
+ BOOST_TEST_EQ(sizeof(aligned_ulittle32_t), 4);
+ BOOST_TEST_EQ(sizeof(aligned_ulittle64_t), 8);
+
+# ifndef BOOST_NO_CXX11_TEMPLATE_ALIASES
+ BOOST_TEST_EQ(sizeof(endian<endianness::big, int_least16_t, 16>), 2);
+ BOOST_TEST_EQ(sizeof(endian<endianness::big,
+ int_least16_t, 16, alignment::unaligned>), 2);
+# endif
+ } // check_size
+
+ // test_inserter_and_extractor -----------------------------------------------------//
+
+ void test_inserter_and_extractor()
+ {
+ std::cout << "test inserter and extractor..." << std::endl;
+
+ ubig64_t bu64(0x010203040506070ULL);
+ ulittle64_t lu64(0x010203040506070ULL);
+
+ uint64_t x;
+
+ std::stringstream ss;
+
+ ss << bu64;
+ ss >> x;
+ BOOST_TEST_EQ(x, 0x010203040506070ULL);
+
+ ss.clear();
+ ss << lu64;
+ ss >> x;
+ BOOST_TEST_EQ(x, 0x010203040506070ULL);
+
+ ss.clear();
+ ss << 0x010203040506070ULL;
+ ubig64_t bu64z(0);
+ ss >> bu64z;
+ BOOST_TEST_EQ(bu64z, bu64);
+
+ ss.clear();
+ ss << 0x010203040506070ULL;
+ ulittle64_t lu64z(0);
+ ss >> lu64z;
+ BOOST_TEST_EQ(lu64z, lu64);
+
+ std::cout << "test inserter and extractor complete" << std::endl;
+
+ }
+
+} // unnamed namespace
+
+ //--------------------------------------------------------------------------------------//
+
+int cpp_main(int, char *[])
+{
+ cout << "byte swap intrinsics: " BOOST_ENDIAN_INTRINSIC_MSG << endl;
+
+ cout << " construct big endian aligned" << endl;
+ big32_t x(1122334455);
+
+ cout << " assign to buffer from built-in integer" << endl;
+ x = 1234567890;
+
+ cout << " operator==(buffer.value(), built-in)" << endl;
+ bool b1(x == 1234567890);
+ BOOST_TEST(b1);
+
+ cout << " construct little endian unaligned" << endl;
+ little32_t x2(1122334455);
+
+ cout << " assign to buffer from built-in integer" << endl;
+ x2 = 1234567890;
+
+ cout << " operator==(buffer.value(), built-in)" << endl;
+ bool b2(x2 == 1234567890);
+ BOOST_TEST(b2);
+
+ check_size();
+ test_inserter_and_extractor();
+
+ cout << " done" << endl;
+
+ return ::boost::report_errors();
+}
+
+#include <boost/endian/detail/disable_warnings_pop.hpp>