| OLD | NEW | 
|---|
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be | 
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. | 
| 4 | 4 | 
| 5 #include "base/time.h" | 5 #include "base/time.h" | 
| 6 | 6 | 
| 7 #include <time.h> | 7 #include <time.h> | 
| 8 | 8 | 
| 9 #include "base/compiler_specific.h" | 9 #include "base/compiler_specific.h" | 
| 10 #include "base/threading/platform_thread.h" | 10 #include "base/threading/platform_thread.h" | 
| (...skipping 462 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 473   EXPECT_EQ(kUnixEpochYear, exploded.year); | 473   EXPECT_EQ(kUnixEpochYear, exploded.year); | 
| 474   EXPECT_EQ(1, exploded.month); | 474   EXPECT_EQ(1, exploded.month); | 
| 475   EXPECT_EQ(1, exploded.day_of_month); | 475   EXPECT_EQ(1, exploded.day_of_month); | 
| 476   EXPECT_EQ(0, exploded.hour); | 476   EXPECT_EQ(0, exploded.hour); | 
| 477   EXPECT_EQ(0, exploded.minute); | 477   EXPECT_EQ(0, exploded.minute); | 
| 478   EXPECT_EQ(1, exploded.second); | 478   EXPECT_EQ(1, exploded.second); | 
| 479   EXPECT_EQ(1, exploded.millisecond); | 479   EXPECT_EQ(1, exploded.millisecond); | 
| 480 } | 480 } | 
| 481 | 481 | 
| 482 TEST_F(TimeTest, Max) { | 482 TEST_F(TimeTest, Max) { | 
| 483   EXPECT_EQ(base::Time::Max(), base::Time::Max()); | 483   Time max = Time::Max(); | 
| 484   EXPECT_GT(base::Time::Max(), base::Time::Now()); | 484   EXPECT_TRUE(max.is_max()); | 
| 485   EXPECT_GT(base::Time::Max(), base::Time()); | 485   EXPECT_EQ(max, Time::Max()); | 
|  | 486   EXPECT_GT(max, Time::Now()); | 
|  | 487   EXPECT_GT(max, Time()); | 
| 486 } | 488 } | 
| 487 | 489 | 
|  | 490 TEST_F(TimeTest, MaxConversions) { | 
|  | 491   Time t = Time::Max(); | 
|  | 492   EXPECT_EQ(std::numeric_limits<int64>::max(), t.ToInternalValue()); | 
|  | 493 | 
|  | 494   t = Time::FromDoubleT(std::numeric_limits<double>::max()); | 
|  | 495   EXPECT_TRUE(t.is_max()); | 
|  | 496   EXPECT_EQ(std::numeric_limits<double>::max(), t.ToDoubleT()); | 
|  | 497 | 
|  | 498   t = Time::FromJsTime(std::numeric_limits<double>::max()); | 
|  | 499   EXPECT_TRUE(t.is_max()); | 
|  | 500   EXPECT_EQ(std::numeric_limits<double>::max(), t.ToJsTime()); | 
|  | 501 | 
|  | 502   t = Time::FromTimeT(std::numeric_limits<time_t>::max()); | 
|  | 503   EXPECT_TRUE(t.is_max()); | 
|  | 504   EXPECT_EQ(std::numeric_limits<time_t>::max(), t.ToTimeT()); | 
|  | 505 | 
|  | 506 #if defined(OS_POSIX) | 
|  | 507   struct timeval tval; | 
|  | 508   tval.tv_sec = std::numeric_limits<time_t>::max(); | 
|  | 509   tval.tv_usec = static_cast<suseconds_t>(Time::kMicrosecondsPerSecond) - 1; | 
|  | 510   t = Time::FromTimeVal(tval); | 
|  | 511   EXPECT_TRUE(t.is_max()); | 
|  | 512   tval = t.ToTimeVal(); | 
|  | 513   EXPECT_EQ(std::numeric_limits<time_t>::max(), tval.tv_sec); | 
|  | 514   EXPECT_EQ(static_cast<suseconds_t>(Time::kMicrosecondsPerSecond) - 1, | 
|  | 515       tval.tv_usec); | 
|  | 516 #endif | 
|  | 517 | 
|  | 518 #if defined(OS_MACOSX) | 
|  | 519   t = Time::FromCFAbsoluteTime(std::numeric_limits<CFAbsoluteTime>::max()); | 
|  | 520   EXPECT_TRUE(t.is_max()); | 
|  | 521   EXPECT_EQ(std::numeric_limits<CFAbsoluteTime>::max(), t.ToCFAbsoluteTime()); | 
|  | 522 #endif | 
|  | 523 | 
|  | 524 #if defined(OS_WIN) | 
|  | 525   FILETIME ftime; | 
|  | 526   ftime.dwHighDateTime = std::numeric_limits<DWORD>::max(); | 
|  | 527   ftime.dwLowDateTime = std::numeric_limits<DWORD>::max(); | 
|  | 528   t = Time::FromFileTime(ftime); | 
|  | 529   EXPECT_TRUE(t.is_max()); | 
|  | 530   ftime = t.ToFileTime(); | 
|  | 531   EXPECT_EQ(std::numeric_limits<DWORD>::max(), ftime.dwHighDateTime); | 
|  | 532   EXPECT_EQ(std::numeric_limits<DWORD>::max(), ftime.dwLowDateTime); | 
|  | 533 #endif | 
|  | 534 } | 
|  | 535 | 
|  | 536 #if defined(OS_MACOSX) | 
|  | 537 TEST_F(TimeTest, TimeTOverflow) { | 
|  | 538   Time t = Time::FromInternalValue(std::numeric_limits<int64>::max() - 1); | 
|  | 539   EXPECT_FALSE(t.is_max()); | 
|  | 540   EXPECT_EQ(std::numeric_limits<time_t>::max(), t.ToTimeT()); | 
|  | 541 } | 
|  | 542 #endif | 
|  | 543 | 
| 488 TEST(TimeTicks, Deltas) { | 544 TEST(TimeTicks, Deltas) { | 
| 489   for (int index = 0; index < 50; index++) { | 545   for (int index = 0; index < 50; index++) { | 
| 490     TimeTicks ticks_start = TimeTicks::Now(); | 546     TimeTicks ticks_start = TimeTicks::Now(); | 
| 491     base::PlatformThread::Sleep(base::TimeDelta::FromMilliseconds(10)); | 547     base::PlatformThread::Sleep(base::TimeDelta::FromMilliseconds(10)); | 
| 492     TimeTicks ticks_stop = TimeTicks::Now(); | 548     TimeTicks ticks_stop = TimeTicks::Now(); | 
| 493     TimeDelta delta = ticks_stop - ticks_start; | 549     TimeDelta delta = ticks_stop - ticks_start; | 
| 494     // Note:  Although we asked for a 10ms sleep, if the | 550     // Note:  Although we asked for a 10ms sleep, if the | 
| 495     // time clock has a finer granularity than the Sleep() | 551     // time clock has a finer granularity than the Sleep() | 
| 496     // clock, it is quite possible to wakeup early.  Here | 552     // clock, it is quite possible to wakeup early.  Here | 
| 497     // is how that works: | 553     // is how that works: | 
| (...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 611   exploded.minute = 0; | 667   exploded.minute = 0; | 
| 612   exploded.second = 0; | 668   exploded.second = 0; | 
| 613   exploded.millisecond = 0; | 669   exploded.millisecond = 0; | 
| 614   Time t = Time::FromUTCExploded(exploded); | 670   Time t = Time::FromUTCExploded(exploded); | 
| 615   // Unix 1970 epoch. | 671   // Unix 1970 epoch. | 
| 616   EXPECT_EQ(GG_INT64_C(11644473600000000), t.ToInternalValue()); | 672   EXPECT_EQ(GG_INT64_C(11644473600000000), t.ToInternalValue()); | 
| 617 | 673 | 
| 618   // We can't test 1601 epoch, since the system time functions on Linux | 674   // We can't test 1601 epoch, since the system time functions on Linux | 
| 619   // only compute years starting from 1900. | 675   // only compute years starting from 1900. | 
| 620 } | 676 } | 
| OLD | NEW | 
|---|