Chromium Code Reviews| Index: base/time_unittest.cc |
| diff --git a/base/time_unittest.cc b/base/time_unittest.cc |
| index 5421ed1ea5d0011fc397153eb01ca33a167f6446..73bd16a9c93701da7f67ca896810162db495d86a 100644 |
| --- a/base/time_unittest.cc |
| +++ b/base/time_unittest.cc |
| @@ -480,9 +480,55 @@ TEST_F(TimeTest, ExplodeBeforeUnixEpoch) { |
| } |
| TEST_F(TimeTest, Max) { |
| - EXPECT_EQ(base::Time::Max(), base::Time::Max()); |
| - EXPECT_GT(base::Time::Max(), base::Time::Now()); |
| - EXPECT_GT(base::Time::Max(), base::Time()); |
| + Time max = Time::Max(); |
| + EXPECT_TRUE(max.is_max()); |
| + EXPECT_EQ(max, Time::Max()); |
| + EXPECT_GT(max, Time::Now()); |
| + EXPECT_GT(max, Time()); |
| +} |
| + |
| +TEST_F(TimeTest, MaxConversions) { |
| + Time t = Time::Max(); |
| + EXPECT_EQ(std::numeric_limits<int64>::max(), t.ToInternalValue()); |
| + |
| + t = Time::FromDoubleT(std::numeric_limits<double>::max()); |
| + EXPECT_TRUE(t.is_max()); |
| + EXPECT_EQ(std::numeric_limits<double>::max(), t.ToDoubleT()); |
| + |
| + t = Time::FromJsTime(std::numeric_limits<double>::max()); |
| + EXPECT_TRUE(t.is_max()); |
| + EXPECT_EQ(std::numeric_limits<double>::max(), t.ToJsTime()); |
| + |
| + t = Time::FromTimeT(std::numeric_limits<time_t>::max()); |
| + EXPECT_TRUE(t.is_max()); |
| + EXPECT_EQ(std::numeric_limits<time_t>::max(), t.ToTimeT()); |
| + |
| +#if defined(OS_POSIX) |
| + struct timeval tval; |
| + tval.tv_sec = std::numeric_limits<time_t>::max(); |
| + tval.tv_usec = static_cast<suseconds_t>(Time::kMicrosecondsPerSecond) - 1; |
| + t = Time::FromTimeVal(tval); |
| + EXPECT_TRUE(t.is_max()); |
| + EXPECT_EQ(std::numeric_limits<time_t>::max(), t.ToTimeVal().tv_sec); |
|
Mark Mentovai
2012/09/06 16:10:49
Don’t call ToTimeVal twice.
Mike West
2012/09/06 19:51:16
Done.
|
| + EXPECT_EQ(static_cast<suseconds_t>(Time::kMicrosecondsPerSecond) - 1, |
| + t.ToTimeVal().tv_usec); |
| +#endif |
| + |
| +#if defined(OS_MACOSX) |
| + t = Time::FromCFAbsoluteTime(std::numeric_limits<CFAbsoluteTime>::max()); |
| + EXPECT_TRUE(t.is_max()); |
| + EXPECT_EQ(std::numeric_limits<CFAbsoluteTime>::max(), t.ToCFAbsoluteTime()); |
| +#endif |
| + |
| +#if defined(OS_WIN) |
| + FILETIME ftime; |
| + ftime.dwHighDateTime = std::numeric_limits<int>::max(); |
| + ftime.dwLowDateTime = std::numeric_limits<int>::max(); |
| + t = Time::FromFileTime(ftime); |
| + EXPECT_TRUE(t.is_max()); |
| + EXPECT_EQ(std::numeric_limits<int>::max(), t.ToFileTime().dwHighDateTime); |
|
Mark Mentovai
2012/09/06 16:10:49
And don’t call ToFileTime twice.
Mike West
2012/09/06 19:51:16
Done.
|
| + EXPECT_EQ(std::numeric_limits<int>::max(), t.ToFileTime().dwLowDateTime); |
| +#endif |
| } |
| TEST(TimeTicks, Deltas) { |