Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(5)

Side by Side Diff: test/cctest/test-api.cc

Issue 14328044: Update tests to use std::isnan instead of isnan (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Created 7 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | test/cctest/test-conversions.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2012 the V8 project authors. All rights reserved. 1 // Copyright 2012 the V8 project authors. All rights reserved.
2 // Redistribution and use in source and binary forms, with or without 2 // Redistribution and use in source and binary forms, with or without
3 // modification, are permitted provided that the following conditions are 3 // modification, are permitted provided that the following conditions are
4 // met: 4 // met:
5 // 5 //
6 // * Redistributions of source code must retain the above copyright 6 // * Redistributions of source code must retain the above copyright
7 // notice, this list of conditions and the following disclaimer. 7 // notice, this list of conditions and the following disclaimer.
8 // * Redistributions in binary form must reproduce the above 8 // * Redistributions in binary form must reproduce the above
9 // copyright notice, this list of conditions and the following 9 // copyright notice, this list of conditions and the following
10 // disclaimer in the documentation and/or other materials provided 10 // disclaimer in the documentation and/or other materials provided
(...skipping 3326 matching lines...) Expand 10 before | Expand all | Expand 10 after
3337 3337
3338 int32_t int32_value = obj->Int32Value(); 3338 int32_t int32_value = obj->Int32Value();
3339 CHECK_EQ(0, int32_value); 3339 CHECK_EQ(0, int32_value);
3340 CheckUncle(&try_catch); 3340 CheckUncle(&try_catch);
3341 3341
3342 uint32_t uint32_value = obj->Uint32Value(); 3342 uint32_t uint32_value = obj->Uint32Value();
3343 CHECK_EQ(0, uint32_value); 3343 CHECK_EQ(0, uint32_value);
3344 CheckUncle(&try_catch); 3344 CheckUncle(&try_catch);
3345 3345
3346 double number_value = obj->NumberValue(); 3346 double number_value = obj->NumberValue();
3347 CHECK_NE(0, isnan(number_value)); 3347 CHECK_NE(0, std::isnan(number_value));
3348 CheckUncle(&try_catch); 3348 CheckUncle(&try_catch);
3349 3349
3350 int64_t integer_value = obj->IntegerValue(); 3350 int64_t integer_value = obj->IntegerValue();
3351 CHECK_EQ(0.0, static_cast<double>(integer_value)); 3351 CHECK_EQ(0.0, static_cast<double>(integer_value));
3352 CheckUncle(&try_catch); 3352 CheckUncle(&try_catch);
3353 } 3353 }
3354 3354
3355 3355
3356 v8::Handle<Value> ThrowFromC(const v8::Arguments& args) { 3356 v8::Handle<Value> ThrowFromC(const v8::Arguments& args) {
3357 ApiTestFuzzer::Fuzz(); 3357 ApiTestFuzzer::Fuzz();
(...skipping 12080 matching lines...) Expand 10 before | Expand all | Expand 10 after
15438 15438
15439 static uint64_t DoubleToBits(double value) { 15439 static uint64_t DoubleToBits(double value) {
15440 uint64_t target; 15440 uint64_t target;
15441 i::OS::MemCopy(&target, &value, sizeof(target)); 15441 i::OS::MemCopy(&target, &value, sizeof(target));
15442 return target; 15442 return target;
15443 } 15443 }
15444 15444
15445 15445
15446 static double DoubleToDateTime(double input) { 15446 static double DoubleToDateTime(double input) {
15447 double date_limit = 864e13; 15447 double date_limit = 864e13;
15448 if (isnan(input) || input < -date_limit || input > date_limit) { 15448 if (std::isnan(input) || input < -date_limit || input > date_limit) {
15449 return i::OS::nan_value(); 15449 return i::OS::nan_value();
15450 } 15450 }
15451 return (input < 0) ? -(floor(-input)) : floor(input); 15451 return (input < 0) ? -(floor(-input)) : floor(input);
15452 } 15452 }
15453 15453
15454 // We don't have a consistent way to write 64-bit constants syntactically, so we 15454 // We don't have a consistent way to write 64-bit constants syntactically, so we
15455 // split them into two 32-bit constants and combine them programmatically. 15455 // split them into two 32-bit constants and combine them programmatically.
15456 static double DoubleFromBits(uint32_t high_bits, uint32_t low_bits) { 15456 static double DoubleFromBits(uint32_t high_bits, uint32_t low_bits) {
15457 return DoubleFromBits((static_cast<uint64_t>(high_bits) << 32) | low_bits); 15457 return DoubleFromBits((static_cast<uint64_t>(high_bits) << 32) | low_bits);
15458 } 15458 }
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
15499 -snan 15499 -snan
15500 }; 15500 };
15501 int num_test_values = 20; 15501 int num_test_values = 20;
15502 15502
15503 for (int i = 0; i < num_test_values; i++) { 15503 for (int i = 0; i < num_test_values; i++) {
15504 double test_value = test_values[i]; 15504 double test_value = test_values[i];
15505 15505
15506 // Check that Number::New preserves non-NaNs and quiets SNaNs. 15506 // Check that Number::New preserves non-NaNs and quiets SNaNs.
15507 v8::Handle<v8::Value> number = v8::Number::New(test_value); 15507 v8::Handle<v8::Value> number = v8::Number::New(test_value);
15508 double stored_number = number->NumberValue(); 15508 double stored_number = number->NumberValue();
15509 if (!isnan(test_value)) { 15509 if (!std::isnan(test_value)) {
15510 CHECK_EQ(test_value, stored_number); 15510 CHECK_EQ(test_value, stored_number);
15511 } else { 15511 } else {
15512 uint64_t stored_bits = DoubleToBits(stored_number); 15512 uint64_t stored_bits = DoubleToBits(stored_number);
15513 // Check if quiet nan (bits 51..62 all set). 15513 // Check if quiet nan (bits 51..62 all set).
15514 #if defined(V8_TARGET_ARCH_MIPS) && !defined(USE_SIMULATOR) 15514 #if defined(V8_TARGET_ARCH_MIPS) && !defined(USE_SIMULATOR)
15515 // Most significant fraction bit for quiet nan is set to 0 15515 // Most significant fraction bit for quiet nan is set to 0
15516 // on MIPS architecture. Allowed by IEEE-754. 15516 // on MIPS architecture. Allowed by IEEE-754.
15517 CHECK_EQ(0xffe, static_cast<int>((stored_bits >> 51) & 0xfff)); 15517 CHECK_EQ(0xffe, static_cast<int>((stored_bits >> 51) & 0xfff));
15518 #else 15518 #else
15519 CHECK_EQ(0xfff, static_cast<int>((stored_bits >> 51) & 0xfff)); 15519 CHECK_EQ(0xfff, static_cast<int>((stored_bits >> 51) & 0xfff));
15520 #endif 15520 #endif
15521 } 15521 }
15522 15522
15523 // Check that Date::New preserves non-NaNs in the date range and 15523 // Check that Date::New preserves non-NaNs in the date range and
15524 // quiets SNaNs. 15524 // quiets SNaNs.
15525 v8::Handle<v8::Value> date = v8::Date::New(test_value); 15525 v8::Handle<v8::Value> date = v8::Date::New(test_value);
15526 double expected_stored_date = DoubleToDateTime(test_value); 15526 double expected_stored_date = DoubleToDateTime(test_value);
15527 double stored_date = date->NumberValue(); 15527 double stored_date = date->NumberValue();
15528 if (!isnan(expected_stored_date)) { 15528 if (!std::isnan(expected_stored_date)) {
15529 CHECK_EQ(expected_stored_date, stored_date); 15529 CHECK_EQ(expected_stored_date, stored_date);
15530 } else { 15530 } else {
15531 uint64_t stored_bits = DoubleToBits(stored_date); 15531 uint64_t stored_bits = DoubleToBits(stored_date);
15532 // Check if quiet nan (bits 51..62 all set). 15532 // Check if quiet nan (bits 51..62 all set).
15533 #if defined(V8_TARGET_ARCH_MIPS) && !defined(USE_SIMULATOR) 15533 #if defined(V8_TARGET_ARCH_MIPS) && !defined(USE_SIMULATOR)
15534 // Most significant fraction bit for quiet nan is set to 0 15534 // Most significant fraction bit for quiet nan is set to 0
15535 // on MIPS architecture. Allowed by IEEE-754. 15535 // on MIPS architecture. Allowed by IEEE-754.
15536 CHECK_EQ(0xffe, static_cast<int>((stored_bits >> 51) & 0xfff)); 15536 CHECK_EQ(0xffe, static_cast<int>((stored_bits >> 51) & 0xfff));
15537 #else 15537 #else
15538 CHECK_EQ(0xfff, static_cast<int>((stored_bits >> 51) & 0xfff)); 15538 CHECK_EQ(0xfff, static_cast<int>((stored_bits >> 51) & 0xfff));
(...skipping 2855 matching lines...) Expand 10 before | Expand all | Expand 10 after
18394 i::Semaphore* sem_; 18394 i::Semaphore* sem_;
18395 volatile int sem_value_; 18395 volatile int sem_value_;
18396 }; 18396 };
18397 18397
18398 18398
18399 THREADED_TEST(SemaphoreInterruption) { 18399 THREADED_TEST(SemaphoreInterruption) {
18400 ThreadInterruptTest().RunTest(); 18400 ThreadInterruptTest().RunTest();
18401 } 18401 }
18402 18402
18403 #endif // WIN32 18403 #endif // WIN32
OLDNEW
« no previous file with comments | « no previous file | test/cctest/test-conversions.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698