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

Side by Side Diff: base/time/time_unittest.cc

Issue 1538743002: Switch to standard integer types in base/. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: DEPS roll too Created 4 years, 12 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
« no previous file with comments | « base/time/time_posix.cc ('k') | base/time/time_win.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 (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/time.h" 5 #include "base/time/time.h"
6 6
7 #include <stdint.h> 7 #include <stdint.h>
8 #include <time.h> 8 #include <time.h>
9 #include <limits> 9 #include <limits>
10 #include <string> 10 #include <string>
11 11
12 #include "base/compiler_specific.h" 12 #include "base/compiler_specific.h"
13 #include "base/logging.h" 13 #include "base/logging.h"
14 #include "base/macros.h"
14 #include "base/strings/stringprintf.h" 15 #include "base/strings/stringprintf.h"
15 #include "base/threading/platform_thread.h" 16 #include "base/threading/platform_thread.h"
16 #include "build/build_config.h" 17 #include "build/build_config.h"
17 #include "testing/gtest/include/gtest/gtest.h" 18 #include "testing/gtest/include/gtest/gtest.h"
18 19
19 namespace base { 20 namespace base {
20 21
21 namespace { 22 namespace {
22 23
23 // Specialized test fixture allowing time strings without timezones to be 24 // Specialized test fixture allowing time strings without timezones to be
(...skipping 463 matching lines...) Expand 10 before | Expand all | Expand 10 after
487 TEST_F(TimeTest, Max) { 488 TEST_F(TimeTest, Max) {
488 Time max = Time::Max(); 489 Time max = Time::Max();
489 EXPECT_TRUE(max.is_max()); 490 EXPECT_TRUE(max.is_max());
490 EXPECT_EQ(max, Time::Max()); 491 EXPECT_EQ(max, Time::Max());
491 EXPECT_GT(max, Time::Now()); 492 EXPECT_GT(max, Time::Now());
492 EXPECT_GT(max, Time()); 493 EXPECT_GT(max, Time());
493 } 494 }
494 495
495 TEST_F(TimeTest, MaxConversions) { 496 TEST_F(TimeTest, MaxConversions) {
496 Time t = Time::Max(); 497 Time t = Time::Max();
497 EXPECT_EQ(std::numeric_limits<int64>::max(), t.ToInternalValue()); 498 EXPECT_EQ(std::numeric_limits<int64_t>::max(), t.ToInternalValue());
498 499
499 t = Time::FromDoubleT(std::numeric_limits<double>::infinity()); 500 t = Time::FromDoubleT(std::numeric_limits<double>::infinity());
500 EXPECT_TRUE(t.is_max()); 501 EXPECT_TRUE(t.is_max());
501 EXPECT_EQ(std::numeric_limits<double>::infinity(), t.ToDoubleT()); 502 EXPECT_EQ(std::numeric_limits<double>::infinity(), t.ToDoubleT());
502 503
503 t = Time::FromJsTime(std::numeric_limits<double>::infinity()); 504 t = Time::FromJsTime(std::numeric_limits<double>::infinity());
504 EXPECT_TRUE(t.is_max()); 505 EXPECT_TRUE(t.is_max());
505 EXPECT_EQ(std::numeric_limits<double>::infinity(), t.ToJsTime()); 506 EXPECT_EQ(std::numeric_limits<double>::infinity(), t.ToJsTime());
506 507
507 t = Time::FromTimeT(std::numeric_limits<time_t>::max()); 508 t = Time::FromTimeT(std::numeric_limits<time_t>::max());
(...skipping 26 matching lines...) Expand all
534 t = Time::FromFileTime(ftime); 535 t = Time::FromFileTime(ftime);
535 EXPECT_TRUE(t.is_max()); 536 EXPECT_TRUE(t.is_max());
536 ftime = t.ToFileTime(); 537 ftime = t.ToFileTime();
537 EXPECT_EQ(std::numeric_limits<DWORD>::max(), ftime.dwHighDateTime); 538 EXPECT_EQ(std::numeric_limits<DWORD>::max(), ftime.dwHighDateTime);
538 EXPECT_EQ(std::numeric_limits<DWORD>::max(), ftime.dwLowDateTime); 539 EXPECT_EQ(std::numeric_limits<DWORD>::max(), ftime.dwLowDateTime);
539 #endif 540 #endif
540 } 541 }
541 542
542 #if defined(OS_MACOSX) 543 #if defined(OS_MACOSX)
543 TEST_F(TimeTest, TimeTOverflow) { 544 TEST_F(TimeTest, TimeTOverflow) {
544 Time t = Time::FromInternalValue(std::numeric_limits<int64>::max() - 1); 545 Time t = Time::FromInternalValue(std::numeric_limits<int64_t>::max() - 1);
545 EXPECT_FALSE(t.is_max()); 546 EXPECT_FALSE(t.is_max());
546 EXPECT_EQ(std::numeric_limits<time_t>::max(), t.ToTimeT()); 547 EXPECT_EQ(std::numeric_limits<time_t>::max(), t.ToTimeT());
547 } 548 }
548 #endif 549 #endif
549 550
550 #if defined(OS_ANDROID) 551 #if defined(OS_ANDROID)
551 TEST_F(TimeTest, FromLocalExplodedCrashOnAndroid) { 552 TEST_F(TimeTest, FromLocalExplodedCrashOnAndroid) {
552 // This crashed inside Time:: FromLocalExploded() on Android 4.1.2. 553 // This crashed inside Time:: FromLocalExploded() on Android 4.1.2.
553 // See http://crbug.com/287821 554 // See http://crbug.com/287821
554 Time::Exploded midnight = {2013, // year 555 Time::Exploded midnight = {2013, // year
(...skipping 237 matching lines...) Expand 10 before | Expand all | Expand 10 after
792 // We could define this separately for Time, TimeTicks and TimeDelta but the 793 // We could define this separately for Time, TimeTicks and TimeDelta but the
793 // definitions would be identical anyway. 794 // definitions would be identical anyway.
794 template <class Any> 795 template <class Any>
795 std::string AnyToString(Any any) { 796 std::string AnyToString(Any any) {
796 std::ostringstream oss; 797 std::ostringstream oss;
797 oss << any; 798 oss << any;
798 return oss.str(); 799 return oss.str();
799 } 800 }
800 801
801 TEST(TimeDelta, Magnitude) { 802 TEST(TimeDelta, Magnitude) {
802 const int64 zero = 0; 803 const int64_t zero = 0;
803 EXPECT_EQ(TimeDelta::FromMicroseconds(zero), 804 EXPECT_EQ(TimeDelta::FromMicroseconds(zero),
804 TimeDelta::FromMicroseconds(zero).magnitude()); 805 TimeDelta::FromMicroseconds(zero).magnitude());
805 806
806 const int64 one = 1; 807 const int64_t one = 1;
807 const int64 negative_one = -1; 808 const int64_t negative_one = -1;
808 EXPECT_EQ(TimeDelta::FromMicroseconds(one), 809 EXPECT_EQ(TimeDelta::FromMicroseconds(one),
809 TimeDelta::FromMicroseconds(one).magnitude()); 810 TimeDelta::FromMicroseconds(one).magnitude());
810 EXPECT_EQ(TimeDelta::FromMicroseconds(one), 811 EXPECT_EQ(TimeDelta::FromMicroseconds(one),
811 TimeDelta::FromMicroseconds(negative_one).magnitude()); 812 TimeDelta::FromMicroseconds(negative_one).magnitude());
812 813
813 const int64 max_int64_minus_one = std::numeric_limits<int64>::max() - 1; 814 const int64_t max_int64_minus_one = std::numeric_limits<int64_t>::max() - 1;
814 const int64 min_int64_plus_two = std::numeric_limits<int64>::min() + 2; 815 const int64_t min_int64_plus_two = std::numeric_limits<int64_t>::min() + 2;
815 EXPECT_EQ(TimeDelta::FromMicroseconds(max_int64_minus_one), 816 EXPECT_EQ(TimeDelta::FromMicroseconds(max_int64_minus_one),
816 TimeDelta::FromMicroseconds(max_int64_minus_one).magnitude()); 817 TimeDelta::FromMicroseconds(max_int64_minus_one).magnitude());
817 EXPECT_EQ(TimeDelta::FromMicroseconds(max_int64_minus_one), 818 EXPECT_EQ(TimeDelta::FromMicroseconds(max_int64_minus_one),
818 TimeDelta::FromMicroseconds(min_int64_plus_two).magnitude()); 819 TimeDelta::FromMicroseconds(min_int64_plus_two).magnitude());
819 } 820 }
820 821
821 TEST(TimeDelta, Max) { 822 TEST(TimeDelta, Max) {
822 TimeDelta max = TimeDelta::Max(); 823 TimeDelta max = TimeDelta::Max();
823 EXPECT_TRUE(max.is_max()); 824 EXPECT_TRUE(max.is_max());
824 EXPECT_EQ(max, TimeDelta::Max()); 825 EXPECT_EQ(max, TimeDelta::Max());
825 EXPECT_GT(max, TimeDelta::FromDays(100 * 365)); 826 EXPECT_GT(max, TimeDelta::FromDays(100 * 365));
826 EXPECT_GT(max, TimeDelta()); 827 EXPECT_GT(max, TimeDelta());
827 } 828 }
828 829
829 bool IsMin(TimeDelta delta) { 830 bool IsMin(TimeDelta delta) {
830 return (-delta).is_max(); 831 return (-delta).is_max();
831 } 832 }
832 833
833 TEST(TimeDelta, MaxConversions) { 834 TEST(TimeDelta, MaxConversions) {
834 TimeDelta t = TimeDelta::Max(); 835 TimeDelta t = TimeDelta::Max();
835 EXPECT_EQ(std::numeric_limits<int64>::max(), t.ToInternalValue()); 836 EXPECT_EQ(std::numeric_limits<int64_t>::max(), t.ToInternalValue());
836 837
837 EXPECT_EQ(std::numeric_limits<int>::max(), t.InDays()); 838 EXPECT_EQ(std::numeric_limits<int>::max(), t.InDays());
838 EXPECT_EQ(std::numeric_limits<int>::max(), t.InHours()); 839 EXPECT_EQ(std::numeric_limits<int>::max(), t.InHours());
839 EXPECT_EQ(std::numeric_limits<int>::max(), t.InMinutes()); 840 EXPECT_EQ(std::numeric_limits<int>::max(), t.InMinutes());
840 EXPECT_EQ(std::numeric_limits<double>::infinity(), t.InSecondsF()); 841 EXPECT_EQ(std::numeric_limits<double>::infinity(), t.InSecondsF());
841 EXPECT_EQ(std::numeric_limits<int64>::max(), t.InSeconds()); 842 EXPECT_EQ(std::numeric_limits<int64_t>::max(), t.InSeconds());
842 EXPECT_EQ(std::numeric_limits<double>::infinity(), t.InMillisecondsF()); 843 EXPECT_EQ(std::numeric_limits<double>::infinity(), t.InMillisecondsF());
843 EXPECT_EQ(std::numeric_limits<int64>::max(), t.InMilliseconds()); 844 EXPECT_EQ(std::numeric_limits<int64_t>::max(), t.InMilliseconds());
844 EXPECT_EQ(std::numeric_limits<int64>::max(), t.InMillisecondsRoundedUp()); 845 EXPECT_EQ(std::numeric_limits<int64_t>::max(), t.InMillisecondsRoundedUp());
845 846
846 t = TimeDelta::FromDays(std::numeric_limits<int>::max()); 847 t = TimeDelta::FromDays(std::numeric_limits<int>::max());
847 EXPECT_TRUE(t.is_max()); 848 EXPECT_TRUE(t.is_max());
848 849
849 t = TimeDelta::FromHours(std::numeric_limits<int>::max()); 850 t = TimeDelta::FromHours(std::numeric_limits<int>::max());
850 EXPECT_TRUE(t.is_max()); 851 EXPECT_TRUE(t.is_max());
851 852
852 t = TimeDelta::FromMinutes(std::numeric_limits<int>::max()); 853 t = TimeDelta::FromMinutes(std::numeric_limits<int>::max());
853 EXPECT_TRUE(t.is_max()); 854 EXPECT_TRUE(t.is_max());
854 855
855 int64 max_int = std::numeric_limits<int64>::max(); 856 int64_t max_int = std::numeric_limits<int64_t>::max();
856 857
857 t = TimeDelta::FromSeconds(max_int / Time::kMicrosecondsPerSecond + 1); 858 t = TimeDelta::FromSeconds(max_int / Time::kMicrosecondsPerSecond + 1);
858 EXPECT_TRUE(t.is_max()); 859 EXPECT_TRUE(t.is_max());
859 860
860 t = TimeDelta::FromMilliseconds(max_int / Time::kMillisecondsPerSecond + 1); 861 t = TimeDelta::FromMilliseconds(max_int / Time::kMillisecondsPerSecond + 1);
861 EXPECT_TRUE(t.is_max()); 862 EXPECT_TRUE(t.is_max());
862 863
863 t = TimeDelta::FromMicroseconds(max_int); 864 t = TimeDelta::FromMicroseconds(max_int);
864 EXPECT_TRUE(t.is_max()); 865 EXPECT_TRUE(t.is_max());
865 866
866 t = TimeDelta::FromSeconds(-max_int / Time::kMicrosecondsPerSecond - 1); 867 t = TimeDelta::FromSeconds(-max_int / Time::kMicrosecondsPerSecond - 1);
867 EXPECT_TRUE(IsMin(t)); 868 EXPECT_TRUE(IsMin(t));
868 869
869 t = TimeDelta::FromMilliseconds(-max_int / Time::kMillisecondsPerSecond - 1); 870 t = TimeDelta::FromMilliseconds(-max_int / Time::kMillisecondsPerSecond - 1);
870 EXPECT_TRUE(IsMin(t)); 871 EXPECT_TRUE(IsMin(t));
871 872
872 t = TimeDelta::FromMicroseconds(-max_int); 873 t = TimeDelta::FromMicroseconds(-max_int);
873 EXPECT_TRUE(IsMin(t)); 874 EXPECT_TRUE(IsMin(t));
874 875
875 t = -TimeDelta::FromMicroseconds(std::numeric_limits<int64>::min()); 876 t = -TimeDelta::FromMicroseconds(std::numeric_limits<int64_t>::min());
876 EXPECT_FALSE(IsMin(t)); 877 EXPECT_FALSE(IsMin(t));
877 878
878 t = TimeDelta::FromSecondsD(std::numeric_limits<double>::infinity()); 879 t = TimeDelta::FromSecondsD(std::numeric_limits<double>::infinity());
879 EXPECT_TRUE(t.is_max()); 880 EXPECT_TRUE(t.is_max());
880 881
881 double max_d = max_int; 882 double max_d = max_int;
882 883
883 t = TimeDelta::FromSecondsD(max_d / Time::kMicrosecondsPerSecond + 1); 884 t = TimeDelta::FromSecondsD(max_d / Time::kMicrosecondsPerSecond + 1);
884 EXPECT_TRUE(t.is_max()); 885 EXPECT_TRUE(t.is_max());
885 886
(...skipping 229 matching lines...) Expand 10 before | Expand all | Expand 10 after
1115 1116
1116 TEST(TimeTicksLogging, DoesNotMakeStreamBad) { 1117 TEST(TimeTicksLogging, DoesNotMakeStreamBad) {
1117 std::ostringstream oss; 1118 std::ostringstream oss;
1118 oss << TimeTicks(); 1119 oss << TimeTicks();
1119 EXPECT_TRUE(oss.good()); 1120 EXPECT_TRUE(oss.good());
1120 } 1121 }
1121 1122
1122 } // namespace 1123 } // namespace
1123 1124
1124 } // namespace base 1125 } // namespace base
OLDNEW
« no previous file with comments | « base/time/time_posix.cc ('k') | base/time/time_win.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698