projects
/
libcds.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
c9519ba
)
Fixed test for 32-bit platforms
author
khizmax
<libcds.dev@gmail.com>
Tue, 7 Mar 2017 18:53:15 +0000
(21:53 +0300)
committer
khizmax
<libcds.dev@gmail.com>
Tue, 7 Mar 2017 18:53:15 +0000
(21:53 +0300)
test/unit/misc/split_bitstring.cpp
patch
|
blob
|
history
diff --git
a/test/unit/misc/split_bitstring.cpp
b/test/unit/misc/split_bitstring.cpp
index 360fd3d2bf1322305bf7c1dae12e21bf05e8818c..825af8848ce8463951a00d2ea476cca07a33b1ee 100644
(file)
--- a/
test/unit/misc/split_bitstring.cpp
+++ b/
test/unit/misc/split_bitstring.cpp
@@
-428,6
+428,7
@@
namespace {
uint64_t res;
uint64_t res;
+#if CDS_BUILD_BITS == 64
{
typedef cds::algo::split_bitstring< int48, int48_size, size_t > split_bitstring;
split_bitstring splitter( src );
{
typedef cds::algo::split_bitstring< int48, int48_size, size_t > split_bitstring;
split_bitstring splitter( src );
@@
-453,6
+454,7
@@
namespace {
ASSERT_TRUE( splitter.eos() );
ASSERT_TRUE( !splitter );
}
ASSERT_TRUE( splitter.eos() );
ASSERT_TRUE( !splitter );
}
+#endif
typedef cds::algo::split_bitstring< int48, int48_size, size_t > split_bitstring;
split_bitstring splitter( src );
typedef cds::algo::split_bitstring< int48, int48_size, size_t > split_bitstring;
split_bitstring splitter( src );
@@
-486,7
+488,11
@@
namespace {
for ( size_t i = 0; i < int48_size * 8; ++i ) {
ASSERT_FALSE( splitter.eos() );
ASSERT_FALSE( !splitter );
for ( size_t i = 0; i < int48_size * 8; ++i ) {
ASSERT_FALSE( splitter.eos() );
ASSERT_FALSE( !splitter );
+#if CDS_BUILD_BITS == 64
res |= splitter.cut( 1 ) << i;
res |= splitter.cut( 1 ) << i;
+#else
+ res |= static_cast<decltype(res)>( splitter.cut( 1 )) << i;
+#endif
}
ASSERT_TRUE( splitter.eos() );
ASSERT_TRUE( !splitter );
}
ASSERT_TRUE( splitter.eos() );
ASSERT_TRUE( !splitter );
@@
-511,7
+517,11
@@
namespace {
ASSERT_FALSE( splitter.eos() );
ASSERT_FALSE( !splitter );
int bits = std::rand() % 16;
ASSERT_FALSE( splitter.eos() );
ASSERT_FALSE( !splitter );
int bits = std::rand() % 16;
+#if CDS_BUILD_BITS == 64
res |= splitter.safe_cut( bits ) << shift;
res |= splitter.safe_cut( bits ) << shift;
+#else
+ res |= static_cast<decltype(res)>( splitter.safe_cut( bits )) << shift;
+#endif
shift += bits;
}
ASSERT_TRUE( splitter.eos() );
shift += bits;
}
ASSERT_TRUE( splitter.eos() );
@@
-533,6
+543,7
@@
namespace {
uint64_t res;
uint64_t res;
+#if CDS_BUILD_BITS == 64
{
typedef cds::algo::split_bitstring< int48, int48_size, size_t > split_bitstring;
split_bitstring splitter( src );
{
typedef cds::algo::split_bitstring< int48, int48_size, size_t > split_bitstring;
split_bitstring splitter( src );
@@
-558,6
+569,7
@@
namespace {
ASSERT_TRUE( splitter.eos() );
ASSERT_TRUE( !splitter );
}
ASSERT_TRUE( splitter.eos() );
ASSERT_TRUE( !splitter );
}
+#endif
typedef cds::algo::split_bitstring< int48, int48_size, size_t > split_bitstring;
split_bitstring splitter( src );
typedef cds::algo::split_bitstring< int48, int48_size, size_t > split_bitstring;
split_bitstring splitter( src );
@@
-591,7
+603,11
@@
namespace {
for ( size_t i = 0; i < int48_size * 8; ++i ) {
ASSERT_FALSE( splitter.eos() );
ASSERT_FALSE( !splitter );
for ( size_t i = 0; i < int48_size * 8; ++i ) {
ASSERT_FALSE( splitter.eos() );
ASSERT_FALSE( !splitter );
+#if CDS_BUILD_BITS == 64
res = ( res << 1 ) | ( splitter.cut( 1 ) );
res = ( res << 1 ) | ( splitter.cut( 1 ) );
+#else
+ res = ( res << 1 ) | static_cast<decltype(res)>( splitter.cut( 1 ) );
+#endif
}
ASSERT_TRUE( splitter.eos() );
ASSERT_TRUE( !splitter );
}
ASSERT_TRUE( splitter.eos() );
ASSERT_TRUE( !splitter );
@@
-618,7
+634,11
@@
namespace {
size_t shift = splitter.rest_count();
if ( shift > bits )
shift = bits;
size_t shift = splitter.rest_count();
if ( shift > bits )
shift = bits;
+#if CDS_BUILD_BITS == 64
res = ( res << shift ) | splitter.safe_cut( bits );
res = ( res << shift ) | splitter.safe_cut( bits );
+#else
+ res = ( res << shift ) | static_cast<decltype(res)>( splitter.safe_cut( bits ));
+#endif
}
ASSERT_TRUE( splitter.eos() );
ASSERT_TRUE( !splitter );
}
ASSERT_TRUE( splitter.eos() );
ASSERT_TRUE( !splitter );