|
|
|
@ -1523,6 +1523,42 @@ BOOST_AUTO_TEST_CASE(test_ParseUInt8)
|
|
|
|
|
BOOST_CHECK(!ParseUInt8("256", nullptr));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
BOOST_AUTO_TEST_CASE(test_ParseUInt16)
|
|
|
|
|
{
|
|
|
|
|
uint16_t n;
|
|
|
|
|
// Valid values
|
|
|
|
|
BOOST_CHECK(ParseUInt16("1234", nullptr));
|
|
|
|
|
BOOST_CHECK(ParseUInt16("0", &n) && n == 0);
|
|
|
|
|
BOOST_CHECK(ParseUInt16("1234", &n) && n == 1234);
|
|
|
|
|
BOOST_CHECK(ParseUInt16("01234", &n) && n == 1234); // no octal
|
|
|
|
|
BOOST_CHECK(ParseUInt16("65535", &n) && n == static_cast<uint16_t>(65535));
|
|
|
|
|
BOOST_CHECK(ParseUInt16("+65535", &n) && n == 65535);
|
|
|
|
|
BOOST_CHECK(ParseUInt16("00000000000000000012", &n) && n == 12);
|
|
|
|
|
BOOST_CHECK(ParseUInt16("00000000000000000000", &n) && n == 0);
|
|
|
|
|
// Invalid values
|
|
|
|
|
BOOST_CHECK(!ParseUInt16("-00000000000000000000", &n));
|
|
|
|
|
BOOST_CHECK(!ParseUInt16("", &n));
|
|
|
|
|
BOOST_CHECK(!ParseUInt16(" 1", &n)); // no padding inside
|
|
|
|
|
BOOST_CHECK(!ParseUInt16(" -1", &n));
|
|
|
|
|
BOOST_CHECK(!ParseUInt16("++1", &n));
|
|
|
|
|
BOOST_CHECK(!ParseUInt16("+-1", &n));
|
|
|
|
|
BOOST_CHECK(!ParseUInt16("-+1", &n));
|
|
|
|
|
BOOST_CHECK(!ParseUInt16("--1", &n));
|
|
|
|
|
BOOST_CHECK(!ParseUInt16("-1", &n));
|
|
|
|
|
BOOST_CHECK(!ParseUInt16("1 ", &n));
|
|
|
|
|
BOOST_CHECK(!ParseUInt16("1a", &n));
|
|
|
|
|
BOOST_CHECK(!ParseUInt16("aap", &n));
|
|
|
|
|
BOOST_CHECK(!ParseUInt16("0x1", &n)); // no hex
|
|
|
|
|
BOOST_CHECK(!ParseUInt16("0x1", &n)); // no hex
|
|
|
|
|
BOOST_CHECK(!ParseUInt16(STRING_WITH_EMBEDDED_NULL_CHAR, &n));
|
|
|
|
|
// Overflow and underflow
|
|
|
|
|
BOOST_CHECK(!ParseUInt16("-65535", &n));
|
|
|
|
|
BOOST_CHECK(!ParseUInt16("65536", &n));
|
|
|
|
|
BOOST_CHECK(!ParseUInt16("-123", &n));
|
|
|
|
|
BOOST_CHECK(!ParseUInt16("-123", nullptr));
|
|
|
|
|
BOOST_CHECK(!ParseUInt16("65536", nullptr));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
BOOST_AUTO_TEST_CASE(test_ParseUInt32)
|
|
|
|
|
{
|
|
|
|
|
uint32_t n;
|
|
|
|
|