37 lines
1.0 KiB
C++
37 lines
1.0 KiB
C++
// Test for boost/core/bit.hpp (bit_ceil)
|
|
//
|
|
// Copyright 2020 Peter Dimov
|
|
// Distributed under the Boost Software License, Version 1.0.
|
|
// https://www.boost.org/LICENSE_1_0.txt
|
|
|
|
#include <boost/core/bit.hpp>
|
|
#include <boost/core/lightweight_test.hpp>
|
|
#include <boost/cstdint.hpp>
|
|
#include <cstring>
|
|
|
|
int main()
|
|
{
|
|
boost::uint64_t v = static_cast<boost::uint64_t>( 0x0102030405060708ull );
|
|
|
|
if( boost::core::endian::native == boost::core::endian::little )
|
|
{
|
|
unsigned char w[] = { 8, 7, 6, 5, 4, 3, 2, 1 };
|
|
BOOST_TEST( std::memcmp( &v, w, 8 ) == 0 );
|
|
}
|
|
else if( boost::core::endian::native == boost::core::endian::big )
|
|
{
|
|
unsigned char w[] = { 1, 2, 3, 4, 5, 6, 7, 8 };
|
|
BOOST_TEST( std::memcmp( &v, w, 8 ) == 0 );
|
|
}
|
|
else
|
|
{
|
|
unsigned char w1[] = { 8, 7, 6, 5, 4, 3, 2, 1 };
|
|
BOOST_TEST( std::memcmp( &v, w1, 8 ) != 0 );
|
|
|
|
unsigned char w2[] = { 1, 2, 3, 4, 5, 6, 7, 8 };
|
|
BOOST_TEST( std::memcmp( &v, w2, 8 ) != 0 );
|
|
}
|
|
|
|
return boost::report_errors();
|
|
}
|