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

Side by Side Diff: cc/frame_rate_controller_unittest.cc

Issue 11189043: cc: Rename cc classes and members to match filenames (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 years, 2 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 | Annotate | Revision Log
OLDNEW
1 // Copyright 2011 The Chromium Authors. All rights reserved. 1 // Copyright 2011 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 "config.h" 5 #include "config.h"
6 6
7 #include "CCFrameRateController.h" 7 #include "CCFrameRateController.h"
8 8
9 #include "cc/test/scheduler_test_common.h" 9 #include "cc/test/scheduler_test_common.h"
10 #include "testing/gtest/include/gtest/gtest.h" 10 #include "testing/gtest/include/gtest/gtest.h"
11 11
12 using namespace cc; 12 using namespace cc;
13 using namespace WebKitTests; 13 using namespace WebKitTests;
14 14
15 namespace { 15 namespace {
16 16
17 class FakeCCFrameRateControllerClient : public cc::CCFrameRateControllerClient { 17 class FakeFrameRateControllerClient : public cc::FrameRateControllerClient {
18 public: 18 public:
19 FakeCCFrameRateControllerClient() { reset(); } 19 FakeFrameRateControllerClient() { reset(); }
20 20
21 void reset() { m_vsyncTicked = false; } 21 void reset() { m_vsyncTicked = false; }
22 bool vsyncTicked() const { return m_vsyncTicked; } 22 bool vsyncTicked() const { return m_vsyncTicked; }
23 23
24 virtual void vsyncTick(bool throttled) { m_vsyncTicked = !throttled; } 24 virtual void vsyncTick(bool throttled) { m_vsyncTicked = !throttled; }
25 25
26 protected: 26 protected:
27 bool m_vsyncTicked; 27 bool m_vsyncTicked;
28 }; 28 };
29 29
30 30
31 TEST(CCFrameRateControllerTest, TestFrameThrottling_ImmediateAck) 31 TEST(FrameRateControllerTest, TestFrameThrottling_ImmediateAck)
32 { 32 {
33 FakeCCThread thread; 33 FakeThread thread;
34 FakeCCFrameRateControllerClient client; 34 FakeFrameRateControllerClient client;
35 base::TimeDelta interval = base::TimeDelta::FromMicroseconds(base::Time::kMi crosecondsPerSecond / 60); 35 base::TimeDelta interval = base::TimeDelta::FromMicroseconds(base::Time::kMi crosecondsPerSecond / 60);
36 scoped_refptr<FakeCCDelayBasedTimeSource> timeSource = FakeCCDelayBasedTimeS ource::create(interval, &thread); 36 scoped_refptr<FakeDelayBasedTimeSource> timeSource = FakeDelayBasedTimeSourc e::create(interval, &thread);
37 CCFrameRateController controller(timeSource); 37 FrameRateController controller(timeSource);
38 38
39 controller.setClient(&client); 39 controller.setClient(&client);
40 controller.setActive(true); 40 controller.setActive(true);
41 41
42 base::TimeTicks elapsed; // Muck around with time a bit 42 base::TimeTicks elapsed; // Muck around with time a bit
43 43
44 // Trigger one frame, make sure the vsync callback is called 44 // Trigger one frame, make sure the vsync callback is called
45 elapsed += base::TimeDelta::FromMilliseconds(thread.pendingDelayMs()); 45 elapsed += base::TimeDelta::FromMilliseconds(thread.pendingDelayMs());
46 timeSource->setNow(elapsed); 46 timeSource->setNow(elapsed);
47 thread.runPendingTask(); 47 thread.runPendingTask();
48 EXPECT_TRUE(client.vsyncTicked()); 48 EXPECT_TRUE(client.vsyncTicked());
49 client.reset(); 49 client.reset();
50 50
51 // Tell the controller we drew 51 // Tell the controller we drew
52 controller.didBeginFrame(); 52 controller.didBeginFrame();
53 53
54 // Tell the controller the frame ended 5ms later 54 // Tell the controller the frame ended 5ms later
55 timeSource->setNow(timeSource->now() + base::TimeDelta::FromMilliseconds(5)) ; 55 timeSource->setNow(timeSource->now() + base::TimeDelta::FromMilliseconds(5)) ;
56 controller.didFinishFrame(); 56 controller.didFinishFrame();
57 57
58 // Trigger another frame, make sure vsync runs again 58 // Trigger another frame, make sure vsync runs again
59 elapsed += base::TimeDelta::FromMilliseconds(thread.pendingDelayMs()); 59 elapsed += base::TimeDelta::FromMilliseconds(thread.pendingDelayMs());
60 EXPECT_TRUE(elapsed >= timeSource->now()); // Sanity check that previous cod e didn't move time backward. 60 EXPECT_TRUE(elapsed >= timeSource->now()); // Sanity check that previous cod e didn't move time backward.
61 timeSource->setNow(elapsed); 61 timeSource->setNow(elapsed);
62 thread.runPendingTask(); 62 thread.runPendingTask();
63 EXPECT_TRUE(client.vsyncTicked()); 63 EXPECT_TRUE(client.vsyncTicked());
64 } 64 }
65 65
66 TEST(CCFrameRateControllerTest, TestFrameThrottling_TwoFramesInFlight) 66 TEST(FrameRateControllerTest, TestFrameThrottling_TwoFramesInFlight)
67 { 67 {
68 FakeCCThread thread; 68 FakeThread thread;
69 FakeCCFrameRateControllerClient client; 69 FakeFrameRateControllerClient client;
70 base::TimeDelta interval = base::TimeDelta::FromMicroseconds(base::Time::kMi crosecondsPerSecond / 60); 70 base::TimeDelta interval = base::TimeDelta::FromMicroseconds(base::Time::kMi crosecondsPerSecond / 60);
71 scoped_refptr<FakeCCDelayBasedTimeSource> timeSource = FakeCCDelayBasedTimeS ource::create(interval, &thread); 71 scoped_refptr<FakeDelayBasedTimeSource> timeSource = FakeDelayBasedTimeSourc e::create(interval, &thread);
72 CCFrameRateController controller(timeSource); 72 FrameRateController controller(timeSource);
73 73
74 controller.setClient(&client); 74 controller.setClient(&client);
75 controller.setActive(true); 75 controller.setActive(true);
76 controller.setMaxFramesPending(2); 76 controller.setMaxFramesPending(2);
77 77
78 base::TimeTicks elapsed; // Muck around with time a bit 78 base::TimeTicks elapsed; // Muck around with time a bit
79 79
80 // Trigger one frame, make sure the vsync callback is called 80 // Trigger one frame, make sure the vsync callback is called
81 elapsed += base::TimeDelta::FromMilliseconds(thread.pendingDelayMs()); 81 elapsed += base::TimeDelta::FromMilliseconds(thread.pendingDelayMs());
82 timeSource->setNow(elapsed); 82 timeSource->setNow(elapsed);
(...skipping 30 matching lines...) Expand all
113 EXPECT_FALSE(client.vsyncTicked()); 113 EXPECT_FALSE(client.vsyncTicked());
114 114
115 // Trigger yet another frame. Since one frames is pending, another vsync cal lback should run. 115 // Trigger yet another frame. Since one frames is pending, another vsync cal lback should run.
116 elapsed += base::TimeDelta::FromMilliseconds(thread.pendingDelayMs()); 116 elapsed += base::TimeDelta::FromMilliseconds(thread.pendingDelayMs());
117 EXPECT_TRUE(elapsed >= timeSource->now()); // Sanity check that previous cod e didn't move time backward. 117 EXPECT_TRUE(elapsed >= timeSource->now()); // Sanity check that previous cod e didn't move time backward.
118 timeSource->setNow(elapsed); 118 timeSource->setNow(elapsed);
119 thread.runPendingTask(); 119 thread.runPendingTask();
120 EXPECT_TRUE(client.vsyncTicked()); 120 EXPECT_TRUE(client.vsyncTicked());
121 } 121 }
122 122
123 TEST(CCFrameRateControllerTest, TestFrameThrottling_Unthrottled) 123 TEST(FrameRateControllerTest, TestFrameThrottling_Unthrottled)
124 { 124 {
125 FakeCCThread thread; 125 FakeThread thread;
126 FakeCCFrameRateControllerClient client; 126 FakeFrameRateControllerClient client;
127 CCFrameRateController controller(&thread); 127 FrameRateController controller(&thread);
128 128
129 controller.setClient(&client); 129 controller.setClient(&client);
130 controller.setMaxFramesPending(2); 130 controller.setMaxFramesPending(2);
131 131
132 // setActive triggers 1st frame, make sure the vsync callback is called 132 // setActive triggers 1st frame, make sure the vsync callback is called
133 controller.setActive(true); 133 controller.setActive(true);
134 thread.runPendingTask(); 134 thread.runPendingTask();
135 EXPECT_TRUE(client.vsyncTicked()); 135 EXPECT_TRUE(client.vsyncTicked());
136 client.reset(); 136 client.reset();
137 137
138 // Even if we don't call didBeginFrame, CCFrameRateController should 138 // Even if we don't call didBeginFrame, FrameRateController should
139 // still attempt to vsync tick multiple times until it does result in 139 // still attempt to vsync tick multiple times until it does result in
140 // a didBeginFrame. 140 // a didBeginFrame.
141 thread.runPendingTask(); 141 thread.runPendingTask();
142 EXPECT_TRUE(client.vsyncTicked()); 142 EXPECT_TRUE(client.vsyncTicked());
143 client.reset(); 143 client.reset();
144 144
145 thread.runPendingTask(); 145 thread.runPendingTask();
146 EXPECT_TRUE(client.vsyncTicked()); 146 EXPECT_TRUE(client.vsyncTicked());
147 client.reset(); 147 client.reset();
148 148
(...skipping 12 matching lines...) Expand all
161 // Make sure there is no pending task since we can't do anything until we re ceive a didFinishFrame anyway. 161 // Make sure there is no pending task since we can't do anything until we re ceive a didFinishFrame anyway.
162 EXPECT_FALSE(thread.hasPendingTask()); 162 EXPECT_FALSE(thread.hasPendingTask());
163 163
164 // didFinishFrame triggers a frame, make sure the vsync callback is called 164 // didFinishFrame triggers a frame, make sure the vsync callback is called
165 controller.didFinishFrame(); 165 controller.didFinishFrame();
166 thread.runPendingTask(); 166 thread.runPendingTask();
167 EXPECT_TRUE(client.vsyncTicked()); 167 EXPECT_TRUE(client.vsyncTicked());
168 } 168 }
169 169
170 } 170 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698