| Index: test/cctest/test-strtod.cc
|
| diff --git a/test/cctest/test-strtod.cc b/test/cctest/test-strtod.cc
|
| index ae1c00d36e13910f39766417de961bf50d09e7fa..56b26ea1eb90f8526431bcfb8cd4ef473dd52695 100644
|
| --- a/test/cctest/test-strtod.cc
|
| +++ b/test/cctest/test-strtod.cc
|
| @@ -198,10 +198,58 @@ TEST(Strtod) {
|
| CHECK_EQ(1234e304, StrtodChar("0000000123400000", 299));
|
| CHECK_EQ(V8_INFINITY, StrtodChar("00000000180000000", 300));
|
| CHECK_EQ(17e307, StrtodChar("00000000170000000", 300));
|
| + CHECK_EQ(1.7976931348623157E+308, StrtodChar("17976931348623157", 292));
|
| + CHECK_EQ(1.7976931348623158E+308, StrtodChar("17976931348623158", 292));
|
| + CHECK_EQ(V8_INFINITY, StrtodChar("17976931348623159", 292));
|
|
|
| // The following number is the result of 89255.0/1e-22. Both floating-point
|
| // numbers can be accurately represented with doubles. However on Linux,x86
|
| // the floating-point stack is set to 80bits and the double-rounding
|
| // introduces an error.
|
| CHECK_EQ(89255e-22, StrtodChar("89255", -22));
|
| + CHECK_EQ(104110013277974872254e-225,
|
| + StrtodChar("104110013277974872254", -225));
|
| +
|
| + CHECK_EQ(123456789e108, StrtodChar("123456789", 108));
|
| + CHECK_EQ(123456789e109, StrtodChar("123456789", 109));
|
| + CHECK_EQ(123456789e110, StrtodChar("123456789", 110));
|
| + CHECK_EQ(123456789e111, StrtodChar("123456789", 111));
|
| + CHECK_EQ(123456789e112, StrtodChar("123456789", 112));
|
| + CHECK_EQ(123456789e113, StrtodChar("123456789", 113));
|
| + CHECK_EQ(123456789e114, StrtodChar("123456789", 114));
|
| + CHECK_EQ(123456789e115, StrtodChar("123456789", 115));
|
| +
|
| + CHECK_EQ(1234567890123456789012345e108,
|
| + StrtodChar("1234567890123456789012345", 108));
|
| + CHECK_EQ(1234567890123456789012345e109,
|
| + StrtodChar("1234567890123456789012345", 109));
|
| + CHECK_EQ(1234567890123456789012345e110,
|
| + StrtodChar("1234567890123456789012345", 110));
|
| + CHECK_EQ(1234567890123456789012345e111,
|
| + StrtodChar("1234567890123456789012345", 111));
|
| + CHECK_EQ(1234567890123456789012345e112,
|
| + StrtodChar("1234567890123456789012345", 112));
|
| + CHECK_EQ(1234567890123456789012345e113,
|
| + StrtodChar("1234567890123456789012345", 113));
|
| + CHECK_EQ(1234567890123456789012345e114,
|
| + StrtodChar("1234567890123456789012345", 114));
|
| + CHECK_EQ(1234567890123456789012345e115,
|
| + StrtodChar("1234567890123456789012345", 115));
|
| +
|
| + CHECK_EQ(1234567890123456789052345e108,
|
| + StrtodChar("1234567890123456789052345", 108));
|
| + CHECK_EQ(1234567890123456789052345e109,
|
| + StrtodChar("1234567890123456789052345", 109));
|
| + CHECK_EQ(1234567890123456789052345e110,
|
| + StrtodChar("1234567890123456789052345", 110));
|
| + CHECK_EQ(1234567890123456789052345e111,
|
| + StrtodChar("1234567890123456789052345", 111));
|
| + CHECK_EQ(1234567890123456789052345e112,
|
| + StrtodChar("1234567890123456789052345", 112));
|
| + CHECK_EQ(1234567890123456789052345e113,
|
| + StrtodChar("1234567890123456789052345", 113));
|
| + CHECK_EQ(1234567890123456789052345e114,
|
| + StrtodChar("1234567890123456789052345", 114));
|
| + CHECK_EQ(1234567890123456789052345e115,
|
| + StrtodChar("1234567890123456789052345", 115));
|
| }
|
|
|