| 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/time.h" | 5 #include "base/time/time.h" |
| 6 | 6 |
| 7 #include <time.h> | 7 #include <time.h> |
| 8 | 8 |
| 9 #include <limits> | 9 #include <limits> |
| 10 #include <string> | 10 #include <string> |
| (...skipping 697 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 708 TimeDelta difference = delta - delta_thread; | 708 TimeDelta difference = delta - delta_thread; |
| 709 EXPECT_GE(difference.InMicroseconds(), 9000); | 709 EXPECT_GE(difference.InMicroseconds(), 9000); |
| 710 } | 710 } |
| 711 } | 711 } |
| 712 | 712 |
| 713 TEST(TimeTicks, NowFromSystemTraceTime) { | 713 TEST(TimeTicks, NowFromSystemTraceTime) { |
| 714 // Re-use HighRes test for now since clock properties are identical. | 714 // Re-use HighRes test for now since clock properties are identical. |
| 715 HighResClockTest(&TimeTicks::NowFromSystemTraceTime); | 715 HighResClockTest(&TimeTicks::NowFromSystemTraceTime); |
| 716 } | 716 } |
| 717 | 717 |
| 718 TEST(TimeTicks, SnappedToNextTickBasic) { |
| 719 base::TimeTicks phase = base::TimeTicks::FromInternalValue(4000); |
| 720 base::TimeDelta interval = base::TimeDelta::FromInternalValue(1000); |
| 721 base::TimeTicks timestamp; |
| 722 |
| 723 // Timestamp in previous interval. |
| 724 timestamp = base::TimeTicks::FromInternalValue(3500); |
| 725 EXPECT_EQ(4000, |
| 726 timestamp.SnappedToNextTick(phase, interval).ToInternalValue()); |
| 727 |
| 728 // Timestamp in next interval. |
| 729 timestamp = base::TimeTicks::FromInternalValue(4500); |
| 730 EXPECT_EQ(5000, |
| 731 timestamp.SnappedToNextTick(phase, interval).ToInternalValue()); |
| 732 |
| 733 // Timestamp multiple intervals before. |
| 734 timestamp = base::TimeTicks::FromInternalValue(2500); |
| 735 EXPECT_EQ(3000, |
| 736 timestamp.SnappedToNextTick(phase, interval).ToInternalValue()); |
| 737 |
| 738 // Timestamp multiple intervals after. |
| 739 timestamp = base::TimeTicks::FromInternalValue(6500); |
| 740 EXPECT_EQ(7000, |
| 741 timestamp.SnappedToNextTick(phase, interval).ToInternalValue()); |
| 742 |
| 743 // Timestamp on previous interval. |
| 744 timestamp = base::TimeTicks::FromInternalValue(3000); |
| 745 EXPECT_EQ(3000, |
| 746 timestamp.SnappedToNextTick(phase, interval).ToInternalValue()); |
| 747 |
| 748 // Timestamp on next interval. |
| 749 timestamp = base::TimeTicks::FromInternalValue(5000); |
| 750 EXPECT_EQ(5000, |
| 751 timestamp.SnappedToNextTick(phase, interval).ToInternalValue()); |
| 752 |
| 753 // Timestamp equal to phase. |
| 754 timestamp = base::TimeTicks::FromInternalValue(4000); |
| 755 EXPECT_EQ(4000, |
| 756 timestamp.SnappedToNextTick(phase, interval).ToInternalValue()); |
| 757 } |
| 758 |
| 759 TEST(TimeTicks, SnappedToNextTickOverflow) { |
| 760 // int(big_timestamp / interval) < 0, so this causes a crash if the number of |
| 761 // intervals elapsed is attempted to be stored in an int. |
| 762 base::TimeTicks phase = base::TimeTicks::FromInternalValue(0); |
| 763 base::TimeDelta interval = base::TimeDelta::FromInternalValue(4000); |
| 764 base::TimeTicks big_timestamp = |
| 765 base::TimeTicks::FromInternalValue(8635916564000); |
| 766 |
| 767 EXPECT_EQ(8635916564000, |
| 768 big_timestamp.SnappedToNextTick(phase, interval).ToInternalValue()); |
| 769 EXPECT_EQ(8635916564000, |
| 770 big_timestamp.SnappedToNextTick(big_timestamp, interval) |
| 771 .ToInternalValue()); |
| 772 } |
| 773 |
| 718 TEST(TimeDelta, FromAndIn) { | 774 TEST(TimeDelta, FromAndIn) { |
| 719 EXPECT_TRUE(TimeDelta::FromDays(2) == TimeDelta::FromHours(48)); | 775 EXPECT_TRUE(TimeDelta::FromDays(2) == TimeDelta::FromHours(48)); |
| 720 EXPECT_TRUE(TimeDelta::FromHours(3) == TimeDelta::FromMinutes(180)); | 776 EXPECT_TRUE(TimeDelta::FromHours(3) == TimeDelta::FromMinutes(180)); |
| 721 EXPECT_TRUE(TimeDelta::FromMinutes(2) == TimeDelta::FromSeconds(120)); | 777 EXPECT_TRUE(TimeDelta::FromMinutes(2) == TimeDelta::FromSeconds(120)); |
| 722 EXPECT_TRUE(TimeDelta::FromSeconds(2) == TimeDelta::FromMilliseconds(2000)); | 778 EXPECT_TRUE(TimeDelta::FromSeconds(2) == TimeDelta::FromMilliseconds(2000)); |
| 723 EXPECT_TRUE(TimeDelta::FromMilliseconds(2) == | 779 EXPECT_TRUE(TimeDelta::FromMilliseconds(2) == |
| 724 TimeDelta::FromMicroseconds(2000)); | 780 TimeDelta::FromMicroseconds(2000)); |
| 725 EXPECT_TRUE(TimeDelta::FromSecondsD(2.3) == | 781 EXPECT_TRUE(TimeDelta::FromSecondsD(2.3) == |
| 726 TimeDelta::FromMilliseconds(2300)); | 782 TimeDelta::FromMilliseconds(2300)); |
| 727 EXPECT_TRUE(TimeDelta::FromMillisecondsD(2.5) == | 783 EXPECT_TRUE(TimeDelta::FromMillisecondsD(2.5) == |
| (...skipping 163 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 891 | 947 |
| 892 TEST(TimeTicksLogging, DoesNotMakeStreamBad) { | 948 TEST(TimeTicksLogging, DoesNotMakeStreamBad) { |
| 893 std::ostringstream oss; | 949 std::ostringstream oss; |
| 894 oss << TimeTicks(); | 950 oss << TimeTicks(); |
| 895 EXPECT_TRUE(oss.good()); | 951 EXPECT_TRUE(oss.good()); |
| 896 } | 952 } |
| 897 | 953 |
| 898 } // namespace | 954 } // namespace |
| 899 | 955 |
| 900 } // namespace base | 956 } // namespace base |
| OLD | NEW |