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

Side by Side Diff: media/base/wall_clock_time_source_unittest.cc

Issue 1136513004: Switch GetWallClockTime to using vectors for input and output. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix comments. Created 5 years, 7 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 | « media/base/wall_clock_time_source.cc ('k') | media/filters/video_renderer_algorithm.h » ('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 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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/test/simple_test_tick_clock.h" 5 #include "base/test/simple_test_tick_clock.h"
6 #include "media/base/wall_clock_time_source.h" 6 #include "media/base/wall_clock_time_source.h"
7 #include "testing/gtest/include/gtest/gtest.h" 7 #include "testing/gtest/include/gtest/gtest.h"
8 8
9 namespace media { 9 namespace media {
10 10
11 class WallClockTimeSourceTest : public testing::Test { 11 class WallClockTimeSourceTest : public testing::Test {
12 public: 12 public:
13 WallClockTimeSourceTest() : tick_clock_(new base::SimpleTestTickClock()) { 13 WallClockTimeSourceTest() : tick_clock_(new base::SimpleTestTickClock()) {
14 time_source_.SetTickClockForTesting( 14 time_source_.set_tick_clock_for_testing(tick_clock_.get());
15 scoped_ptr<base::TickClock>(tick_clock_));
16 AdvanceTimeInSeconds(1); 15 AdvanceTimeInSeconds(1);
17 } 16 }
18 ~WallClockTimeSourceTest() override {} 17 ~WallClockTimeSourceTest() override {}
19 18
20 void AdvanceTimeInSeconds(int seconds) { 19 void AdvanceTimeInSeconds(int seconds) {
21 tick_clock_->Advance(base::TimeDelta::FromSeconds(seconds)); 20 tick_clock_->Advance(base::TimeDelta::FromSeconds(seconds));
22 } 21 }
23 22
24 int CurrentMediaTimeInSeconds() { 23 int CurrentMediaTimeInSeconds() {
25 return time_source_.CurrentMediaTime().InSeconds(); 24 return time_source_.CurrentMediaTime().InSeconds();
26 } 25 }
27 26
28 void SetMediaTimeInSeconds(int seconds) { 27 void SetMediaTimeInSeconds(int seconds) {
29 return time_source_.SetMediaTime(base::TimeDelta::FromSeconds(seconds)); 28 return time_source_.SetMediaTime(base::TimeDelta::FromSeconds(seconds));
30 } 29 }
31 30
32 bool IsWallClockNowForMediaTimeInSeconds(int seconds) { 31 bool IsWallClockNowForMediaTimeInSeconds(int seconds) {
33 return tick_clock_->NowTicks() == 32 std::vector<base::TimeTicks> wall_clock_times;
34 time_source_.GetWallClockTime(base::TimeDelta::FromSeconds(seconds)); 33 EXPECT_TRUE(time_source_.GetWallClockTimes(
34 std::vector<base::TimeDelta>(1, base::TimeDelta::FromSeconds(seconds)),
35 &wall_clock_times));
36 return tick_clock_->NowTicks() == wall_clock_times.front();
35 } 37 }
36 38
37 bool IsWallClockNullForMediaTimeInSeconds(int seconds) { 39 bool IsTimeStopped() {
38 return time_source_.GetWallClockTime(base::TimeDelta::FromSeconds(seconds)) 40 std::vector<base::TimeTicks> wall_clock_times;
39 .is_null(); 41 // Convert any random value, it shouldn't matter for this call.
42 const bool time_stopped = !time_source_.GetWallClockTimes(
43 std::vector<base::TimeDelta>(1, base::TimeDelta::FromSeconds(1)),
44 &wall_clock_times);
45 EXPECT_EQ(time_stopped, wall_clock_times.empty());
46 return time_stopped;
40 } 47 }
41 48
42 protected: 49 protected:
43 WallClockTimeSource time_source_; 50 WallClockTimeSource time_source_;
44 base::SimpleTestTickClock* tick_clock_; // Owned by |time_source_|. 51 scoped_ptr<base::SimpleTestTickClock> tick_clock_;
45 52
46 DISALLOW_COPY_AND_ASSIGN(WallClockTimeSourceTest); 53 DISALLOW_COPY_AND_ASSIGN(WallClockTimeSourceTest);
47 }; 54 };
48 55
49 TEST_F(WallClockTimeSourceTest, InitialTimeIsZero) { 56 TEST_F(WallClockTimeSourceTest, InitialTimeIsZero) {
50 EXPECT_EQ(0, CurrentMediaTimeInSeconds()); 57 EXPECT_EQ(0, CurrentMediaTimeInSeconds());
51 EXPECT_TRUE(IsWallClockNullForMediaTimeInSeconds(0)); 58 EXPECT_TRUE(IsTimeStopped());
52 } 59 }
53 60
54 TEST_F(WallClockTimeSourceTest, InitialTimeIsNotTicking) { 61 TEST_F(WallClockTimeSourceTest, InitialTimeIsNotTicking) {
55 EXPECT_EQ(0, CurrentMediaTimeInSeconds()); 62 EXPECT_EQ(0, CurrentMediaTimeInSeconds());
56 EXPECT_TRUE(IsWallClockNullForMediaTimeInSeconds(0)); 63 EXPECT_TRUE(IsTimeStopped());
57 AdvanceTimeInSeconds(100); 64 AdvanceTimeInSeconds(100);
58 EXPECT_EQ(0, CurrentMediaTimeInSeconds()); 65 EXPECT_EQ(0, CurrentMediaTimeInSeconds());
59 EXPECT_TRUE(IsWallClockNullForMediaTimeInSeconds(0)); 66 EXPECT_TRUE(IsTimeStopped());
60 } 67 }
61 68
62 TEST_F(WallClockTimeSourceTest, InitialPlaybackRateIsOne) { 69 TEST_F(WallClockTimeSourceTest, InitialPlaybackRateIsOne) {
63 time_source_.StartTicking(); 70 time_source_.StartTicking();
64 71
65 EXPECT_EQ(0, CurrentMediaTimeInSeconds()); 72 EXPECT_EQ(0, CurrentMediaTimeInSeconds());
66 EXPECT_TRUE(IsWallClockNowForMediaTimeInSeconds(0)); 73 EXPECT_TRUE(IsWallClockNowForMediaTimeInSeconds(0));
67 AdvanceTimeInSeconds(100); 74 AdvanceTimeInSeconds(100);
68 EXPECT_EQ(100, CurrentMediaTimeInSeconds()); 75 EXPECT_EQ(100, CurrentMediaTimeInSeconds());
69 EXPECT_TRUE(IsWallClockNowForMediaTimeInSeconds(100)); 76 EXPECT_TRUE(IsWallClockNowForMediaTimeInSeconds(100));
70 } 77 }
71 78
72 TEST_F(WallClockTimeSourceTest, SetMediaTime) { 79 TEST_F(WallClockTimeSourceTest, SetMediaTime) {
73 EXPECT_EQ(0, CurrentMediaTimeInSeconds()); 80 EXPECT_EQ(0, CurrentMediaTimeInSeconds());
74 EXPECT_TRUE(IsWallClockNullForMediaTimeInSeconds(0)); 81 EXPECT_TRUE(IsTimeStopped());
75 SetMediaTimeInSeconds(10); 82 SetMediaTimeInSeconds(10);
76 EXPECT_EQ(10, CurrentMediaTimeInSeconds()); 83 EXPECT_EQ(10, CurrentMediaTimeInSeconds());
77 EXPECT_TRUE(IsWallClockNullForMediaTimeInSeconds(10)); 84 EXPECT_TRUE(IsTimeStopped());
78 } 85 }
79 86
80 TEST_F(WallClockTimeSourceTest, SetPlaybackRate) { 87 TEST_F(WallClockTimeSourceTest, SetPlaybackRate) {
81 time_source_.StartTicking(); 88 time_source_.StartTicking();
82 89
83 time_source_.SetPlaybackRate(0.5); 90 time_source_.SetPlaybackRate(0.5);
84 EXPECT_EQ(0, CurrentMediaTimeInSeconds()); 91 EXPECT_EQ(0, CurrentMediaTimeInSeconds());
85 EXPECT_TRUE(IsWallClockNowForMediaTimeInSeconds(0)); 92 EXPECT_TRUE(IsWallClockNowForMediaTimeInSeconds(0));
86 AdvanceTimeInSeconds(10); 93 AdvanceTimeInSeconds(10);
87 EXPECT_EQ(5, CurrentMediaTimeInSeconds()); 94 EXPECT_EQ(5, CurrentMediaTimeInSeconds());
(...skipping 13 matching lines...) Expand all
101 EXPECT_EQ(0, CurrentMediaTimeInSeconds()); 108 EXPECT_EQ(0, CurrentMediaTimeInSeconds());
102 EXPECT_TRUE(IsWallClockNowForMediaTimeInSeconds(0)); 109 EXPECT_TRUE(IsWallClockNowForMediaTimeInSeconds(0));
103 AdvanceTimeInSeconds(10); 110 AdvanceTimeInSeconds(10);
104 EXPECT_EQ(10, CurrentMediaTimeInSeconds()); 111 EXPECT_EQ(10, CurrentMediaTimeInSeconds());
105 EXPECT_TRUE(IsWallClockNowForMediaTimeInSeconds(10)); 112 EXPECT_TRUE(IsWallClockNowForMediaTimeInSeconds(10));
106 113
107 time_source_.StopTicking(); 114 time_source_.StopTicking();
108 115
109 AdvanceTimeInSeconds(10); 116 AdvanceTimeInSeconds(10);
110 EXPECT_EQ(10, CurrentMediaTimeInSeconds()); 117 EXPECT_EQ(10, CurrentMediaTimeInSeconds());
111 EXPECT_TRUE(IsWallClockNullForMediaTimeInSeconds(10)); 118 EXPECT_TRUE(IsTimeStopped());
112 } 119 }
113 120
114 } // namespace media 121 } // namespace media
OLDNEW
« no previous file with comments | « media/base/wall_clock_time_source.cc ('k') | media/filters/video_renderer_algorithm.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698