@@ -160,6 +160,27 @@ BOOST_AUTO_TEST_CASE(varints)
160
160
}
161
161
}
162
162
163
+ BOOST_AUTO_TEST_CASE (varints_bitpatterns)
164
+ {
165
+ CDataStream ss (SER_DISK, 0 );
166
+ ss << VARINT (0 ); BOOST_CHECK_EQUAL (HexStr (ss), " 00" ); ss.clear ();
167
+ ss << VARINT (0x7f ); BOOST_CHECK_EQUAL (HexStr (ss), " 7f" ); ss.clear ();
168
+ ss << VARINT ((int8_t )0x7f ); BOOST_CHECK_EQUAL (HexStr (ss), " 7f" ); ss.clear ();
169
+ ss << VARINT (0x80 ); BOOST_CHECK_EQUAL (HexStr (ss), " 8000" ); ss.clear ();
170
+ ss << VARINT ((uint8_t )0x80 ); BOOST_CHECK_EQUAL (HexStr (ss), " 8000" ); ss.clear ();
171
+ ss << VARINT (0x1234 ); BOOST_CHECK_EQUAL (HexStr (ss), " a334" ); ss.clear ();
172
+ ss << VARINT ((int16_t )0x1234 ); BOOST_CHECK_EQUAL (HexStr (ss), " a334" ); ss.clear ();
173
+ ss << VARINT (0xffff ); BOOST_CHECK_EQUAL (HexStr (ss), " 82fe7f" ); ss.clear ();
174
+ ss << VARINT ((uint16_t )0xffff ); BOOST_CHECK_EQUAL (HexStr (ss), " 82fe7f" ); ss.clear ();
175
+ ss << VARINT (0x123456 ); BOOST_CHECK_EQUAL (HexStr (ss), " c7e756" ); ss.clear ();
176
+ ss << VARINT ((int32_t )0x123456 ); BOOST_CHECK_EQUAL (HexStr (ss), " c7e756" ); ss.clear ();
177
+ ss << VARINT (0x80123456U ); BOOST_CHECK_EQUAL (HexStr (ss), " 86ffc7e756" ); ss.clear ();
178
+ ss << VARINT ((uint32_t )0x80123456U ); BOOST_CHECK_EQUAL (HexStr (ss), " 86ffc7e756" ); ss.clear ();
179
+ ss << VARINT (0xffffffff ); BOOST_CHECK_EQUAL (HexStr (ss), " 8efefefe7f" ); ss.clear ();
180
+ ss << VARINT (0x7fffffffffffffffLL ); BOOST_CHECK_EQUAL (HexStr (ss), " fefefefefefefefe7f" ); ss.clear ();
181
+ ss << VARINT (0xffffffffffffffffULL ); BOOST_CHECK_EQUAL (HexStr (ss), " 80fefefefefefefefe7f" ); ss.clear ();
182
+ }
183
+
163
184
BOOST_AUTO_TEST_CASE (compactsize)
164
185
{
165
186
CDataStream ss (SER_DISK, 0 );
0 commit comments