@@ -1490,6 +1490,42 @@ BOOST_AUTO_TEST_CASE(test_ParseInt64)
1490
1490
BOOST_CHECK (!ParseInt64 (" 32482348723847471234" , nullptr ));
1491
1491
}
1492
1492
1493
+ BOOST_AUTO_TEST_CASE (test_ParseUInt8)
1494
+ {
1495
+ uint8_t n;
1496
+ // Valid values
1497
+ BOOST_CHECK (ParseUInt8 (" 255" , nullptr ));
1498
+ BOOST_CHECK (ParseUInt8 (" 0" , &n) && n == 0 );
1499
+ BOOST_CHECK (ParseUInt8 (" 255" , &n) && n == 255 );
1500
+ BOOST_CHECK (ParseUInt8 (" 0255" , &n) && n == 255 ); // no octal
1501
+ BOOST_CHECK (ParseUInt8 (" 255" , &n) && n == static_cast <uint8_t >(255 ));
1502
+ BOOST_CHECK (ParseUInt8 (" +255" , &n) && n == 255 );
1503
+ BOOST_CHECK (ParseUInt8 (" 00000000000000000012" , &n) && n == 12 );
1504
+ BOOST_CHECK (ParseUInt8 (" 00000000000000000000" , &n) && n == 0 );
1505
+ // Invalid values
1506
+ BOOST_CHECK (!ParseUInt8 (" -00000000000000000000" , &n));
1507
+ BOOST_CHECK (!ParseUInt8 (" " , &n));
1508
+ BOOST_CHECK (!ParseUInt8 (" 1" , &n)); // no padding inside
1509
+ BOOST_CHECK (!ParseUInt8 (" -1" , &n));
1510
+ BOOST_CHECK (!ParseUInt8 (" ++1" , &n));
1511
+ BOOST_CHECK (!ParseUInt8 (" +-1" , &n));
1512
+ BOOST_CHECK (!ParseUInt8 (" -+1" , &n));
1513
+ BOOST_CHECK (!ParseUInt8 (" --1" , &n));
1514
+ BOOST_CHECK (!ParseUInt8 (" -1" , &n));
1515
+ BOOST_CHECK (!ParseUInt8 (" 1 " , &n));
1516
+ BOOST_CHECK (!ParseUInt8 (" 1a" , &n));
1517
+ BOOST_CHECK (!ParseUInt8 (" aap" , &n));
1518
+ BOOST_CHECK (!ParseUInt8 (" 0x1" , &n)); // no hex
1519
+ BOOST_CHECK (!ParseUInt8 (" 0x1" , &n)); // no hex
1520
+ BOOST_CHECK (!ParseUInt8 (" 1" s " \0 " " 1" s, &n)); // no embedded NULs
1521
+ // Overflow and underflow
1522
+ BOOST_CHECK (!ParseUInt8 (" -255" , &n));
1523
+ BOOST_CHECK (!ParseUInt8 (" 256" , &n));
1524
+ BOOST_CHECK (!ParseUInt8 (" -123" , &n));
1525
+ BOOST_CHECK (!ParseUInt8 (" -123" , nullptr ));
1526
+ BOOST_CHECK (!ParseUInt8 (" 256" , nullptr ));
1527
+ }
1528
+
1493
1529
BOOST_AUTO_TEST_CASE (test_ParseUInt32)
1494
1530
{
1495
1531
uint32_t n;
0 commit comments