@@ -140,13 +140,13 @@ void test_double(double number)
140
140
141
141
// If it is outside the range, these methods should return false.
142
142
// Note that at this point there is no guarantee that the number was stored as double.
143
-
143
+
144
144
if (number < INT_MIN || number > INT_MAX || number!=floor (number))
145
145
VERIFY_IS_FALSE (num.as_number ().is_int32 ());
146
-
146
+
147
147
if (number < 0 || number > UINT_MAX || number!=floor (number))
148
148
VERIFY_IS_FALSE (num.as_number ().is_uint32 ());
149
-
149
+
150
150
if (number < LLONG_MIN || number > LLONG_MAX || number!=floor (number))
151
151
VERIFY_IS_FALSE (num.as_number ().is_int64 ());
152
152
@@ -167,10 +167,14 @@ TEST(parsing_doubles)
167
167
test_double (pow (2.0 , 60.0 ));
168
168
test_double (pow (2.0 , 63.0 ));
169
169
test_double (0 - pow (2.0 , 63.0 ) * 1.5 ); // between 0-ULLONG_MAX and LLONGMIN
170
+ }
170
171
172
+ TEST (parsing_very_large_doubles, " Ignore:Linux" , " Bug 908824" )
173
+ {
171
174
test_double (pow (2.0 , 64.0 ));
172
175
test_double (pow (2.0 , 70.0 ));
173
176
test_double (pow (2.0 , 80.0 ));
177
+ test_double (pow (2.0 , 120.0 ));
174
178
}
175
179
176
180
void test_integral (int number)
@@ -263,4 +267,4 @@ TEST(compare_numbers)
263
267
264
268
} // SUITE(json_numbers_tests)
265
269
266
- }}}
270
+ }}}
0 commit comments