|
|
|
@ -38,6 +38,7 @@
|
|
|
|
|
#include <boost/test/unit_test.hpp>
|
|
|
|
|
|
|
|
|
|
using namespace std::literals;
|
|
|
|
|
static const std::string STRING_WITH_EMBEDDED_NULL_CHAR{"1"s "\0" "1"s};
|
|
|
|
|
|
|
|
|
|
/* defined in logging.cpp */
|
|
|
|
|
namespace BCLog {
|
|
|
|
@ -1272,7 +1273,7 @@ BOOST_AUTO_TEST_CASE(util_ParseMoney)
|
|
|
|
|
|
|
|
|
|
// Parsing strings with embedded NUL characters should fail
|
|
|
|
|
BOOST_CHECK(!ParseMoney("\0-1"s, ret));
|
|
|
|
|
BOOST_CHECK(!ParseMoney("\0" "1"s, ret));
|
|
|
|
|
BOOST_CHECK(!ParseMoney(STRING_WITH_EMBEDDED_NULL_CHAR, ret));
|
|
|
|
|
BOOST_CHECK(!ParseMoney("1\0"s, ret));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -1450,9 +1451,7 @@ BOOST_AUTO_TEST_CASE(test_ParseInt32)
|
|
|
|
|
BOOST_CHECK(!ParseInt32("aap", &n));
|
|
|
|
|
BOOST_CHECK(!ParseInt32("0x1", &n)); // no hex
|
|
|
|
|
BOOST_CHECK(!ParseInt32("0x1", &n)); // no hex
|
|
|
|
|
const char test_bytes[] = {'1', 0, '1'};
|
|
|
|
|
std::string teststr(test_bytes, sizeof(test_bytes));
|
|
|
|
|
BOOST_CHECK(!ParseInt32(teststr, &n)); // no embedded NULs
|
|
|
|
|
BOOST_CHECK(!ParseInt32(STRING_WITH_EMBEDDED_NULL_CHAR, &n));
|
|
|
|
|
// Overflow and underflow
|
|
|
|
|
BOOST_CHECK(!ParseInt32("-2147483649", nullptr));
|
|
|
|
|
BOOST_CHECK(!ParseInt32("2147483648", nullptr));
|
|
|
|
@ -1480,9 +1479,7 @@ BOOST_AUTO_TEST_CASE(test_ParseInt64)
|
|
|
|
|
BOOST_CHECK(!ParseInt64("1a", &n));
|
|
|
|
|
BOOST_CHECK(!ParseInt64("aap", &n));
|
|
|
|
|
BOOST_CHECK(!ParseInt64("0x1", &n)); // no hex
|
|
|
|
|
const char test_bytes[] = {'1', 0, '1'};
|
|
|
|
|
std::string teststr(test_bytes, sizeof(test_bytes));
|
|
|
|
|
BOOST_CHECK(!ParseInt64(teststr, &n)); // no embedded NULs
|
|
|
|
|
BOOST_CHECK(!ParseInt64(STRING_WITH_EMBEDDED_NULL_CHAR, &n));
|
|
|
|
|
// Overflow and underflow
|
|
|
|
|
BOOST_CHECK(!ParseInt64("-9223372036854775809", nullptr));
|
|
|
|
|
BOOST_CHECK(!ParseInt64("9223372036854775808", nullptr));
|
|
|
|
@ -1517,7 +1514,7 @@ BOOST_AUTO_TEST_CASE(test_ParseUInt8)
|
|
|
|
|
BOOST_CHECK(!ParseUInt8("aap", &n));
|
|
|
|
|
BOOST_CHECK(!ParseUInt8("0x1", &n)); // no hex
|
|
|
|
|
BOOST_CHECK(!ParseUInt8("0x1", &n)); // no hex
|
|
|
|
|
BOOST_CHECK(!ParseUInt8("1"s "\0" "1"s, &n)); // no embedded NULs
|
|
|
|
|
BOOST_CHECK(!ParseUInt8(STRING_WITH_EMBEDDED_NULL_CHAR, &n));
|
|
|
|
|
// Overflow and underflow
|
|
|
|
|
BOOST_CHECK(!ParseUInt8("-255", &n));
|
|
|
|
|
BOOST_CHECK(!ParseUInt8("256", &n));
|
|
|
|
@ -1555,9 +1552,7 @@ BOOST_AUTO_TEST_CASE(test_ParseUInt32)
|
|
|
|
|
BOOST_CHECK(!ParseUInt32("aap", &n));
|
|
|
|
|
BOOST_CHECK(!ParseUInt32("0x1", &n)); // no hex
|
|
|
|
|
BOOST_CHECK(!ParseUInt32("0x1", &n)); // no hex
|
|
|
|
|
const char test_bytes[] = {'1', 0, '1'};
|
|
|
|
|
std::string teststr(test_bytes, sizeof(test_bytes));
|
|
|
|
|
BOOST_CHECK(!ParseUInt32(teststr, &n)); // no embedded NULs
|
|
|
|
|
BOOST_CHECK(!ParseUInt32(STRING_WITH_EMBEDDED_NULL_CHAR, &n));
|
|
|
|
|
// Overflow and underflow
|
|
|
|
|
BOOST_CHECK(!ParseUInt32("-2147483648", &n));
|
|
|
|
|
BOOST_CHECK(!ParseUInt32("4294967296", &n));
|
|
|
|
@ -1586,9 +1581,7 @@ BOOST_AUTO_TEST_CASE(test_ParseUInt64)
|
|
|
|
|
BOOST_CHECK(!ParseUInt64("1a", &n));
|
|
|
|
|
BOOST_CHECK(!ParseUInt64("aap", &n));
|
|
|
|
|
BOOST_CHECK(!ParseUInt64("0x1", &n)); // no hex
|
|
|
|
|
const char test_bytes[] = {'1', 0, '1'};
|
|
|
|
|
std::string teststr(test_bytes, sizeof(test_bytes));
|
|
|
|
|
BOOST_CHECK(!ParseUInt64(teststr, &n)); // no embedded NULs
|
|
|
|
|
BOOST_CHECK(!ParseUInt64(STRING_WITH_EMBEDDED_NULL_CHAR, &n));
|
|
|
|
|
// Overflow and underflow
|
|
|
|
|
BOOST_CHECK(!ParseUInt64("-9223372036854775809", nullptr));
|
|
|
|
|
BOOST_CHECK(!ParseUInt64("18446744073709551616", nullptr));
|
|
|
|
@ -1618,9 +1611,7 @@ BOOST_AUTO_TEST_CASE(test_ParseDouble)
|
|
|
|
|
BOOST_CHECK(!ParseDouble("1a", &n));
|
|
|
|
|
BOOST_CHECK(!ParseDouble("aap", &n));
|
|
|
|
|
BOOST_CHECK(!ParseDouble("0x1", &n)); // no hex
|
|
|
|
|
const char test_bytes[] = {'1', 0, '1'};
|
|
|
|
|
std::string teststr(test_bytes, sizeof(test_bytes));
|
|
|
|
|
BOOST_CHECK(!ParseDouble(teststr, &n)); // no embedded NULs
|
|
|
|
|
BOOST_CHECK(!ParseDouble(STRING_WITH_EMBEDDED_NULL_CHAR, &n));
|
|
|
|
|
// Overflow and underflow
|
|
|
|
|
BOOST_CHECK(!ParseDouble("-1e10000", nullptr));
|
|
|
|
|
BOOST_CHECK(!ParseDouble("1e10000", nullptr));
|
|
|
|
|