@@ -1661,10 +1661,18 @@ BOOST_AUTO_TEST_CASE(test_ParseInt32) {
16611661 // (-2147483647 - 1) equals INT_MIN
16621662 BOOST_CHECK (ParseInt32 (" -2147483648" , &n) && n == (-2147483647 - 1 ));
16631663 BOOST_CHECK (ParseInt32 (" -1234" , &n) && n == -1234 );
1664+ BOOST_CHECK (ParseInt32 (" 00000000000000001234" , &n) && n == 1234 );
1665+ BOOST_CHECK (ParseInt32 (" -00000000000000001234" , &n) && n == -1234 );
1666+ BOOST_CHECK (ParseInt32 (" 00000000000000000000" , &n) && n == 0 );
1667+ BOOST_CHECK (ParseInt32 (" -00000000000000000000" , &n) && n == 0 );
16641668 // Invalid values
16651669 BOOST_CHECK (!ParseInt32 (" " , &n));
16661670 BOOST_CHECK (!ParseInt32 (" 1" , &n)); // no padding inside
16671671 BOOST_CHECK (!ParseInt32 (" 1 " , &n));
1672+ BOOST_CHECK (!ParseInt32 (" ++1" , &n));
1673+ BOOST_CHECK (!ParseInt32 (" +-1" , &n));
1674+ BOOST_CHECK (!ParseInt32 (" -+1" , &n));
1675+ BOOST_CHECK (!ParseInt32 (" --1" , &n));
16681676 BOOST_CHECK (!ParseInt32 (" 1a" , &n));
16691677 BOOST_CHECK (!ParseInt32 (" aap" , &n));
16701678 BOOST_CHECK (!ParseInt32 (" 0x1" , &n)); // no hex
@@ -1783,10 +1791,19 @@ BOOST_AUTO_TEST_CASE(test_ParseUInt32) {
17831791 BOOST_CHECK (ParseUInt32 (" 2147483647" , &n) && n == 2147483647 );
17841792 BOOST_CHECK (ParseUInt32 (" 2147483648" , &n) && n == (uint32_t )2147483648 );
17851793 BOOST_CHECK (ParseUInt32 (" 4294967295" , &n) && n == (uint32_t )4294967295 );
1794+ BOOST_CHECK (ParseUInt32 (" +1234" , &n) && n == 1234 );
1795+ BOOST_CHECK (ParseUInt32 (" 00000000000000001234" , &n) && n == 1234 );
1796+ BOOST_CHECK (ParseUInt32 (" 00000000000000000000" , &n) && n == 0 );
17861797 // Invalid values
1798+ BOOST_CHECK (!ParseUInt32 (" -00000000000000000000" , &n));
17871799 BOOST_CHECK (!ParseUInt32 (" " , &n));
17881800 BOOST_CHECK (!ParseUInt32 (" 1" , &n)); // no padding inside
17891801 BOOST_CHECK (!ParseUInt32 (" -1" , &n));
1802+ BOOST_CHECK (!ParseUInt32 (" ++1" , &n));
1803+ BOOST_CHECK (!ParseUInt32 (" +-1" , &n));
1804+ BOOST_CHECK (!ParseUInt32 (" -+1" , &n));
1805+ BOOST_CHECK (!ParseUInt32 (" --1" , &n));
1806+ BOOST_CHECK (!ParseUInt32 (" -1" , &n));
17901807 BOOST_CHECK (!ParseUInt32 (" 1 " , &n));
17911808 BOOST_CHECK (!ParseUInt32 (" 1a" , &n));
17921809 BOOST_CHECK (!ParseUInt32 (" aap" , &n));
0 commit comments