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

Side by Side Diff: base/time_unittest.cc

Issue 13818027: posix: replace nonstandard futimes call with futimens (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: change Time::ToTimeVal to Time::ToTimeSpec 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
« base/time.h ('K') | « base/time_posix.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 83 matching lines...) Expand 10 before | Expand all | Expand 10 after
94 EXPECT_EQ(epoch, Time::UnixEpoch()); 94 EXPECT_EQ(epoch, Time::UnixEpoch());
95 Time t = Time::FromJsTime(700000.3); 95 Time t = Time::FromJsTime(700000.3);
96 EXPECT_EQ(700.0003, t.ToDoubleT()); 96 EXPECT_EQ(700.0003, t.ToDoubleT());
97 t = Time::FromDoubleT(800.73); 97 t = Time::FromDoubleT(800.73);
98 EXPECT_EQ(800730.0, t.ToJsTime()); 98 EXPECT_EQ(800730.0, t.ToJsTime());
99 } 99 }
100 100
101 #if defined(OS_POSIX) 101 #if defined(OS_POSIX)
102 TEST_F(TimeTest, FromTimeVal) { 102 TEST_F(TimeTest, FromTimeVal) {
103 Time now = Time::Now(); 103 Time now = Time::Now();
104 Time also_now = Time::FromTimeVal(now.ToTimeVal()); 104 timespec ts = now.ToTimeSpec();
105 timeval tv;
106 tv.tv_sec = ts.tv_sec;
107 tv.tv_usec = ts.tv_nsec / 1000;
108 Time also_now = Time::FromTimeVal(tv);
105 EXPECT_EQ(now, also_now); 109 EXPECT_EQ(now, also_now);
106 } 110 }
107 #endif // OS_POSIX 111 #endif // OS_POSIX
108 112
109 TEST_F(TimeTest, FromExplodedWithMilliseconds) { 113 TEST_F(TimeTest, FromExplodedWithMilliseconds) {
110 // Some platform implementations of FromExploded are liable to drop 114 // Some platform implementations of FromExploded are liable to drop
111 // milliseconds if we aren't careful. 115 // milliseconds if we aren't careful.
112 Time now = Time::NowFromSystemTime(); 116 Time now = Time::NowFromSystemTime();
113 Time::Exploded exploded1 = {0}; 117 Time::Exploded exploded1 = {0};
114 now.UTCExplode(&exploded1); 118 now.UTCExplode(&exploded1);
(...skipping 382 matching lines...) Expand 10 before | Expand all | Expand 10 after
497 501
498 t = Time::FromJsTime(std::numeric_limits<double>::max()); 502 t = Time::FromJsTime(std::numeric_limits<double>::max());
499 EXPECT_TRUE(t.is_max()); 503 EXPECT_TRUE(t.is_max());
500 EXPECT_EQ(std::numeric_limits<double>::max(), t.ToJsTime()); 504 EXPECT_EQ(std::numeric_limits<double>::max(), t.ToJsTime());
501 505
502 t = Time::FromTimeT(std::numeric_limits<time_t>::max()); 506 t = Time::FromTimeT(std::numeric_limits<time_t>::max());
503 EXPECT_TRUE(t.is_max()); 507 EXPECT_TRUE(t.is_max());
504 EXPECT_EQ(std::numeric_limits<time_t>::max(), t.ToTimeT()); 508 EXPECT_EQ(std::numeric_limits<time_t>::max(), t.ToTimeT());
505 509
506 #if defined(OS_POSIX) 510 #if defined(OS_POSIX)
507 struct timeval tval; 511 timeval tval;
508 tval.tv_sec = std::numeric_limits<time_t>::max(); 512 tval.tv_sec = std::numeric_limits<time_t>::max();
509 tval.tv_usec = static_cast<suseconds_t>(Time::kMicrosecondsPerSecond) - 1; 513 tval.tv_usec = static_cast<suseconds_t>(Time::kMicrosecondsPerSecond) - 1;
510 t = Time::FromTimeVal(tval); 514 t = Time::FromTimeVal(tval);
511 EXPECT_TRUE(t.is_max()); 515 EXPECT_TRUE(t.is_max());
512 tval = t.ToTimeVal(); 516 timespec tspec = t.ToTimeSpec();
513 EXPECT_EQ(std::numeric_limits<time_t>::max(), tval.tv_sec); 517 EXPECT_EQ(std::numeric_limits<time_t>::max(), tspec.tv_sec);
514 EXPECT_EQ(static_cast<suseconds_t>(Time::kMicrosecondsPerSecond) - 1, 518 EXPECT_EQ(static_cast<long>(Time::kNanosecondsPerSecond) - 1,
515 tval.tv_usec); 519 tspec.tv_nsec);
516 #endif 520 #endif
517 521
518 #if defined(OS_MACOSX) 522 #if defined(OS_MACOSX)
519 t = Time::FromCFAbsoluteTime(std::numeric_limits<CFAbsoluteTime>::max()); 523 t = Time::FromCFAbsoluteTime(std::numeric_limits<CFAbsoluteTime>::max());
520 EXPECT_TRUE(t.is_max()); 524 EXPECT_TRUE(t.is_max());
521 EXPECT_EQ(std::numeric_limits<CFAbsoluteTime>::max(), t.ToCFAbsoluteTime()); 525 EXPECT_EQ(std::numeric_limits<CFAbsoluteTime>::max(), t.ToCFAbsoluteTime());
522 #endif 526 #endif
523 527
524 #if defined(OS_WIN) 528 #if defined(OS_WIN)
525 FILETIME ftime; 529 FILETIME ftime;
(...skipping 141 matching lines...) Expand 10 before | Expand all | Expand 10 after
667 exploded.minute = 0; 671 exploded.minute = 0;
668 exploded.second = 0; 672 exploded.second = 0;
669 exploded.millisecond = 0; 673 exploded.millisecond = 0;
670 Time t = Time::FromUTCExploded(exploded); 674 Time t = Time::FromUTCExploded(exploded);
671 // Unix 1970 epoch. 675 // Unix 1970 epoch.
672 EXPECT_EQ(GG_INT64_C(11644473600000000), t.ToInternalValue()); 676 EXPECT_EQ(GG_INT64_C(11644473600000000), t.ToInternalValue());
673 677
674 // We can't test 1601 epoch, since the system time functions on Linux 678 // We can't test 1601 epoch, since the system time functions on Linux
675 // only compute years starting from 1900. 679 // only compute years starting from 1900.
676 } 680 }
OLDNEW
« base/time.h ('K') | « base/time_posix.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698