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

Side by Side Diff: cc/surfaces/display_scheduler_unittest.cc

Issue 1132753008: Replaced TestNowSource with SimpleTestTickClock. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Incorporated review comments: scoped leaking clocks, refactored num_now_calls_ functionality Created 5 years, 6 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
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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 "cc/surfaces/display_scheduler.h" 5 #include "cc/surfaces/display_scheduler.h"
6 6
7 #include "base/logging.h" 7 #include "base/logging.h"
8 #include "base/test/null_task_runner.h" 8 #include "base/test/null_task_runner.h"
9 #include "base/test/simple_test_tick_clock.h"
9 #include "base/trace_event/trace_event.h" 10 #include "base/trace_event/trace_event.h"
10 #include "cc/output/begin_frame_args.h" 11 #include "cc/output/begin_frame_args.h"
11 #include "cc/surfaces/display.h" 12 #include "cc/surfaces/display.h"
12 #include "cc/test/scheduler_test_common.h" 13 #include "cc/test/scheduler_test_common.h"
13 #include "cc/test/test_now_source.h"
14 #include "testing/gtest/include/gtest/gtest.h" 14 #include "testing/gtest/include/gtest/gtest.h"
15 15
16 namespace cc { 16 namespace cc {
17 namespace { 17 namespace {
18 18
19 class FakeDisplaySchedulerClient : public DisplaySchedulerClient { 19 class FakeDisplaySchedulerClient : public DisplaySchedulerClient {
20 public: 20 public:
21 FakeDisplaySchedulerClient() : draw_and_swap_count_(0) {} 21 FakeDisplaySchedulerClient() : draw_and_swap_count_(0) {}
22 22
23 ~FakeDisplaySchedulerClient() override {} 23 ~FakeDisplaySchedulerClient() override {}
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
63 } 63 }
64 64
65 protected: 65 protected:
66 int scheduler_begin_frame_deadline_count_; 66 int scheduler_begin_frame_deadline_count_;
67 }; 67 };
68 68
69 class DisplaySchedulerTest : public testing::Test { 69 class DisplaySchedulerTest : public testing::Test {
70 public: 70 public:
71 DisplaySchedulerTest() { 71 DisplaySchedulerTest() {
72 const int max_pending_swaps = 1; 72 const int max_pending_swaps = 1;
73 now_src_ = TestNowSource::Create(); 73 now_src_ = make_scoped_ptr(new base::SimpleTestTickClock());
mithro-old 2015/06/04 07:41:10 This should be done in the initializer list.
Ankur Verma 2015/06/05 14:39:16 Done.
74 now_src_->Advance(base::TimeDelta::FromInternalValue(10000));
74 null_task_runner_ = make_scoped_refptr(new base::NullTaskRunner); 75 null_task_runner_ = make_scoped_refptr(new base::NullTaskRunner);
75 client_ = make_scoped_ptr(new FakeDisplaySchedulerClient); 76 client_ = make_scoped_ptr(new FakeDisplaySchedulerClient);
76 scheduler_ = make_scoped_ptr( 77 scheduler_ = make_scoped_ptr(
77 new TestDisplayScheduler(client_.get(), &fake_begin_frame_source_, 78 new TestDisplayScheduler(client_.get(), &fake_begin_frame_source_,
78 null_task_runner_, max_pending_swaps)); 79 null_task_runner_, max_pending_swaps));
79 } 80 }
80 81
81 ~DisplaySchedulerTest() override {} 82 ~DisplaySchedulerTest() override {}
82 83
83 void SetUp() override { scheduler_->SetRootSurfaceResourcesLocked(false); } 84 void SetUp() override { scheduler_->SetRootSurfaceResourcesLocked(false); }
84 85
85 void BeginFrameForTest() { 86 void BeginFrameForTest() {
86 base::TimeTicks frame_time = now_src_->Now(); 87 base::TimeTicks frame_time = now_src_->NowTicks();
87 base::TimeDelta interval = BeginFrameArgs::DefaultInterval(); 88 base::TimeDelta interval = BeginFrameArgs::DefaultInterval();
88 base::TimeTicks deadline = frame_time + interval - 89 base::TimeTicks deadline = frame_time + interval -
89 BeginFrameArgs::DefaultEstimatedParentDrawTime(); 90 BeginFrameArgs::DefaultEstimatedParentDrawTime();
90 fake_begin_frame_source_.TestOnBeginFrame( 91 fake_begin_frame_source_.TestOnBeginFrame(
91 BeginFrameArgs::Create(BEGINFRAME_FROM_HERE, frame_time, deadline, 92 BeginFrameArgs::Create(BEGINFRAME_FROM_HERE, frame_time, deadline,
92 interval, BeginFrameArgs::NORMAL)); 93 interval, BeginFrameArgs::NORMAL));
93 } 94 }
94 95
95 protected: 96 protected:
96 TestNowSource& now_src() { return *now_src_; } 97 base::SimpleTestTickClock& now_src() { return *now_src_; }
97 FakeDisplaySchedulerClient& client() { return *client_; } 98 FakeDisplaySchedulerClient& client() { return *client_; }
98 DisplayScheduler& scheduler() { return *scheduler_; } 99 DisplayScheduler& scheduler() { return *scheduler_; }
99 100
100 scoped_refptr<TestNowSource> now_src_; 101 scoped_ptr<base::SimpleTestTickClock> now_src_;
101 scoped_refptr<base::NullTaskRunner> null_task_runner_; 102 scoped_refptr<base::NullTaskRunner> null_task_runner_;
102 103
103 FakeBeginFrameSource fake_begin_frame_source_; 104 FakeBeginFrameSource fake_begin_frame_source_;
104 scoped_ptr<FakeDisplaySchedulerClient> client_; 105 scoped_ptr<FakeDisplaySchedulerClient> client_;
105 scoped_ptr<TestDisplayScheduler> scheduler_; 106 scoped_ptr<TestDisplayScheduler> scheduler_;
106 }; 107 };
107 108
108 TEST_F(DisplaySchedulerTest, EntireDisplayDamagedDrawsImmediately) { 109 TEST_F(DisplaySchedulerTest, EntireDisplayDamagedDrawsImmediately) {
109 SurfaceId root_surface_id(1); 110 SurfaceId root_surface_id(1);
110 BeginFrameForTest(); 111 BeginFrameForTest();
111 EXPECT_LT(now_src().Now(), 112 EXPECT_LT(now_src().NowTicks(),
112 scheduler_->DesiredBeginFrameDeadlineTimeForTest()); 113 scheduler_->DesiredBeginFrameDeadlineTimeForTest());
113 scheduler_->EntireDisplayDamaged(root_surface_id); 114 scheduler_->EntireDisplayDamaged(root_surface_id);
114 EXPECT_GE(now_src().Now(), 115 EXPECT_GE(now_src().NowTicks(),
115 scheduler_->DesiredBeginFrameDeadlineTimeForTest()); 116 scheduler_->DesiredBeginFrameDeadlineTimeForTest());
116 } 117 }
117 118
118 TEST_F(DisplaySchedulerTest, SurfaceDamaged) { 119 TEST_F(DisplaySchedulerTest, SurfaceDamaged) {
119 SurfaceId sid1(1); 120 SurfaceId sid1(1);
120 SurfaceId sid2(2); 121 SurfaceId sid2(2);
121 122
122 // Get scheduler to detect surface 1 as active by drawing 123 // Get scheduler to detect surface 1 as active by drawing
123 // two frames in a row with damage from surface 1. 124 // two frames in a row with damage from surface 1.
124 BeginFrameForTest(); 125 BeginFrameForTest();
125 scheduler_->SurfaceDamaged(sid1); 126 scheduler_->SurfaceDamaged(sid1);
126 scheduler_->BeginFrameDeadlineForTest(); 127 scheduler_->BeginFrameDeadlineForTest();
127 BeginFrameForTest(); 128 BeginFrameForTest();
128 scheduler_->SurfaceDamaged(sid1); 129 scheduler_->SurfaceDamaged(sid1);
129 scheduler_->BeginFrameDeadlineForTest(); 130 scheduler_->BeginFrameDeadlineForTest();
130 131
131 // Damage only from surface 2 (inactive) does not trigger deadline early. 132 // Damage only from surface 2 (inactive) does not trigger deadline early.
132 BeginFrameForTest(); 133 BeginFrameForTest();
133 scheduler_->SurfaceDamaged(sid2); 134 scheduler_->SurfaceDamaged(sid2);
134 EXPECT_LT(now_src().Now(), 135 EXPECT_LT(now_src().NowTicks(),
135 scheduler_->DesiredBeginFrameDeadlineTimeForTest()); 136 scheduler_->DesiredBeginFrameDeadlineTimeForTest());
136 137
137 // Damage from surface 1 triggers deadline early. 138 // Damage from surface 1 triggers deadline early.
138 scheduler_->SurfaceDamaged(sid1); 139 scheduler_->SurfaceDamaged(sid1);
139 EXPECT_GE(now_src().Now(), 140 EXPECT_GE(now_src().NowTicks(),
140 scheduler_->DesiredBeginFrameDeadlineTimeForTest()); 141 scheduler_->DesiredBeginFrameDeadlineTimeForTest());
141 scheduler_->BeginFrameDeadlineForTest(); 142 scheduler_->BeginFrameDeadlineForTest();
142 143
143 // Make both surface 1 and 2 active. 144 // Make both surface 1 and 2 active.
144 BeginFrameForTest(); 145 BeginFrameForTest();
145 scheduler_->SurfaceDamaged(sid2); 146 scheduler_->SurfaceDamaged(sid2);
146 scheduler_->SurfaceDamaged(sid1); 147 scheduler_->SurfaceDamaged(sid1);
147 scheduler_->BeginFrameDeadlineForTest(); 148 scheduler_->BeginFrameDeadlineForTest();
148 149
149 // Deadline doesn't trigger early until surface 1 and 2 are both damaged. 150 // Deadline doesn't trigger early until surface 1 and 2 are both damaged.
150 BeginFrameForTest(); 151 BeginFrameForTest();
151 EXPECT_LT(now_src().Now(), 152 EXPECT_LT(now_src().NowTicks(),
152 scheduler_->DesiredBeginFrameDeadlineTimeForTest()); 153 scheduler_->DesiredBeginFrameDeadlineTimeForTest());
153 scheduler_->SurfaceDamaged(sid1); 154 scheduler_->SurfaceDamaged(sid1);
154 EXPECT_LT(now_src().Now(), 155 EXPECT_LT(now_src().NowTicks(),
155 scheduler_->DesiredBeginFrameDeadlineTimeForTest()); 156 scheduler_->DesiredBeginFrameDeadlineTimeForTest());
156 scheduler_->SurfaceDamaged(sid2); 157 scheduler_->SurfaceDamaged(sid2);
157 EXPECT_GE(now_src().Now(), 158 EXPECT_GE(now_src().NowTicks(),
158 scheduler_->DesiredBeginFrameDeadlineTimeForTest()); 159 scheduler_->DesiredBeginFrameDeadlineTimeForTest());
159 scheduler_->BeginFrameDeadlineForTest(); 160 scheduler_->BeginFrameDeadlineForTest();
160 } 161 }
161 162
162 TEST_F(DisplaySchedulerTest, OutputSurfaceLost) { 163 TEST_F(DisplaySchedulerTest, OutputSurfaceLost) {
163 SurfaceId sid1(1); 164 SurfaceId sid1(1);
164 165
165 // DrawAndSwap normally. 166 // DrawAndSwap normally.
166 BeginFrameForTest(); 167 BeginFrameForTest();
167 EXPECT_LT(now_src().Now(), 168 EXPECT_LT(now_src().NowTicks(),
168 scheduler_->DesiredBeginFrameDeadlineTimeForTest()); 169 scheduler_->DesiredBeginFrameDeadlineTimeForTest());
169 EXPECT_EQ(0, client_->draw_and_swap_count()); 170 EXPECT_EQ(0, client_->draw_and_swap_count());
170 scheduler_->SurfaceDamaged(sid1); 171 scheduler_->SurfaceDamaged(sid1);
171 scheduler_->BeginFrameDeadlineForTest(); 172 scheduler_->BeginFrameDeadlineForTest();
172 EXPECT_EQ(1, client_->draw_and_swap_count()); 173 EXPECT_EQ(1, client_->draw_and_swap_count());
173 174
174 // Deadline triggers immediately on OutputSurfaceLost. 175 // Deadline triggers immediately on OutputSurfaceLost.
175 BeginFrameForTest(); 176 BeginFrameForTest();
176 EXPECT_LT(now_src().Now(), 177 EXPECT_LT(now_src().NowTicks(),
177 scheduler_->DesiredBeginFrameDeadlineTimeForTest()); 178 scheduler_->DesiredBeginFrameDeadlineTimeForTest());
178 scheduler_->OutputSurfaceLost(); 179 scheduler_->OutputSurfaceLost();
179 EXPECT_GE(now_src().Now(), 180 EXPECT_GE(now_src().NowTicks(),
180 scheduler_->DesiredBeginFrameDeadlineTimeForTest()); 181 scheduler_->DesiredBeginFrameDeadlineTimeForTest());
181 182
182 // Deadline does not DrawAndSwap after OutputSurfaceLost. 183 // Deadline does not DrawAndSwap after OutputSurfaceLost.
183 EXPECT_EQ(1, client_->draw_and_swap_count()); 184 EXPECT_EQ(1, client_->draw_and_swap_count());
184 scheduler_->SurfaceDamaged(sid1); 185 scheduler_->SurfaceDamaged(sid1);
185 scheduler_->BeginFrameDeadlineForTest(); 186 scheduler_->BeginFrameDeadlineForTest();
186 EXPECT_EQ(1, client_->draw_and_swap_count()); 187 EXPECT_EQ(1, client_->draw_and_swap_count());
187 } 188 }
188 189
189 TEST_F(DisplaySchedulerTest, RootSurfaceResourcesLocked) { 190 TEST_F(DisplaySchedulerTest, RootSurfaceResourcesLocked) {
190 SurfaceId sid1(1); 191 SurfaceId sid1(1);
191 base::TimeTicks late_deadline; 192 base::TimeTicks late_deadline;
192 193
193 // DrawAndSwap normally. 194 // DrawAndSwap normally.
194 BeginFrameForTest(); 195 BeginFrameForTest();
195 EXPECT_LT(now_src().Now(), 196 EXPECT_LT(now_src().NowTicks(),
196 scheduler_->DesiredBeginFrameDeadlineTimeForTest()); 197 scheduler_->DesiredBeginFrameDeadlineTimeForTest());
197 EXPECT_EQ(0, client_->draw_and_swap_count()); 198 EXPECT_EQ(0, client_->draw_and_swap_count());
198 scheduler_->SurfaceDamaged(sid1); 199 scheduler_->SurfaceDamaged(sid1);
199 scheduler_->BeginFrameDeadlineForTest(); 200 scheduler_->BeginFrameDeadlineForTest();
200 EXPECT_EQ(1, client_->draw_and_swap_count()); 201 EXPECT_EQ(1, client_->draw_and_swap_count());
201 202
202 // Deadline triggers late while root resources are locked. 203 // Deadline triggers late while root resources are locked.
203 late_deadline = now_src().Now() + BeginFrameArgs::DefaultInterval(); 204 late_deadline = now_src().NowTicks() + BeginFrameArgs::DefaultInterval();
204 BeginFrameForTest(); 205 BeginFrameForTest();
205 scheduler_->SurfaceDamaged(sid1); 206 scheduler_->SurfaceDamaged(sid1);
206 EXPECT_GT(late_deadline, scheduler_->DesiredBeginFrameDeadlineTimeForTest()); 207 EXPECT_GT(late_deadline, scheduler_->DesiredBeginFrameDeadlineTimeForTest());
207 scheduler_->SetRootSurfaceResourcesLocked(true); 208 scheduler_->SetRootSurfaceResourcesLocked(true);
208 EXPECT_EQ(late_deadline, scheduler_->DesiredBeginFrameDeadlineTimeForTest()); 209 EXPECT_EQ(late_deadline, scheduler_->DesiredBeginFrameDeadlineTimeForTest());
209 210
210 // Deadline does not DrawAndSwap while root resources are locked. 211 // Deadline does not DrawAndSwap while root resources are locked.
211 EXPECT_EQ(1, client_->draw_and_swap_count()); 212 EXPECT_EQ(1, client_->draw_and_swap_count());
212 scheduler_->SurfaceDamaged(sid1); 213 scheduler_->SurfaceDamaged(sid1);
213 scheduler_->BeginFrameDeadlineForTest(); 214 scheduler_->BeginFrameDeadlineForTest();
214 EXPECT_EQ(1, client_->draw_and_swap_count()); 215 EXPECT_EQ(1, client_->draw_and_swap_count());
215 216
216 // Deadline triggers normally when root resources are unlocked. 217 // Deadline triggers normally when root resources are unlocked.
217 late_deadline = now_src().Now() + BeginFrameArgs::DefaultInterval(); 218 late_deadline = now_src().NowTicks() + BeginFrameArgs::DefaultInterval();
218 BeginFrameForTest(); 219 BeginFrameForTest();
219 scheduler_->SurfaceDamaged(sid1); 220 scheduler_->SurfaceDamaged(sid1);
220 EXPECT_EQ(late_deadline, scheduler_->DesiredBeginFrameDeadlineTimeForTest()); 221 EXPECT_EQ(late_deadline, scheduler_->DesiredBeginFrameDeadlineTimeForTest());
221 scheduler_->SetRootSurfaceResourcesLocked(false); 222 scheduler_->SetRootSurfaceResourcesLocked(false);
222 EXPECT_EQ(base::TimeTicks(), 223 EXPECT_EQ(base::TimeTicks(),
223 scheduler_->DesiredBeginFrameDeadlineTimeForTest()); 224 scheduler_->DesiredBeginFrameDeadlineTimeForTest());
224 225
225 EXPECT_EQ(1, client_->draw_and_swap_count()); 226 EXPECT_EQ(1, client_->draw_and_swap_count());
226 scheduler_->BeginFrameDeadlineForTest(); 227 scheduler_->BeginFrameDeadlineForTest();
227 EXPECT_EQ(2, client_->draw_and_swap_count()); 228 EXPECT_EQ(2, client_->draw_and_swap_count());
228 } 229 }
229 230
230 TEST_F(DisplaySchedulerTest, DidSwapBuffers) { 231 TEST_F(DisplaySchedulerTest, DidSwapBuffers) {
231 SurfaceId sid1(1); 232 SurfaceId sid1(1);
232 SurfaceId sid2(2); 233 SurfaceId sid2(2);
233 base::TimeTicks late_deadline; 234 base::TimeTicks late_deadline;
234 235
235 // Get scheduler to detect surface 1 and 2 as active. 236 // Get scheduler to detect surface 1 and 2 as active.
236 BeginFrameForTest(); 237 BeginFrameForTest();
237 scheduler_->SurfaceDamaged(sid1); 238 scheduler_->SurfaceDamaged(sid1);
238 scheduler_->SurfaceDamaged(sid2); 239 scheduler_->SurfaceDamaged(sid2);
239 scheduler_->BeginFrameDeadlineForTest(); 240 scheduler_->BeginFrameDeadlineForTest();
240 BeginFrameForTest(); 241 BeginFrameForTest();
241 scheduler_->SurfaceDamaged(sid1); 242 scheduler_->SurfaceDamaged(sid1);
242 scheduler_->SurfaceDamaged(sid2); 243 scheduler_->SurfaceDamaged(sid2);
243 scheduler_->BeginFrameDeadlineForTest(); 244 scheduler_->BeginFrameDeadlineForTest();
244 245
245 // DrawAndSwap normally. 246 // DrawAndSwap normally.
246 BeginFrameForTest(); 247 BeginFrameForTest();
247 EXPECT_LT(now_src().Now(), 248 EXPECT_LT(now_src().NowTicks(),
248 scheduler_->DesiredBeginFrameDeadlineTimeForTest()); 249 scheduler_->DesiredBeginFrameDeadlineTimeForTest());
249 EXPECT_EQ(2, client_->draw_and_swap_count()); 250 EXPECT_EQ(2, client_->draw_and_swap_count());
250 scheduler_->SurfaceDamaged(sid1); 251 scheduler_->SurfaceDamaged(sid1);
251 scheduler_->SurfaceDamaged(sid2); 252 scheduler_->SurfaceDamaged(sid2);
252 scheduler_->BeginFrameDeadlineForTest(); 253 scheduler_->BeginFrameDeadlineForTest();
253 EXPECT_EQ(3, client_->draw_and_swap_count()); 254 EXPECT_EQ(3, client_->draw_and_swap_count());
254 scheduler_->DidSwapBuffers(); 255 scheduler_->DidSwapBuffers();
255 256
256 // Deadline triggers early when swap throttled. 257 // Deadline triggers early when swap throttled.
257 BeginFrameForTest(); 258 BeginFrameForTest();
258 // Damage surface 1, but not surface 2 so we avoid triggering deadline 259 // Damage surface 1, but not surface 2 so we avoid triggering deadline
259 // early because all surfaces are ready. 260 // early because all surfaces are ready.
260 scheduler_->SurfaceDamaged(sid1); 261 scheduler_->SurfaceDamaged(sid1);
261 EXPECT_EQ(scheduler_->DesiredBeginFrameDeadlineTimeForTest(), 262 EXPECT_EQ(scheduler_->DesiredBeginFrameDeadlineTimeForTest(),
262 base::TimeTicks()); 263 base::TimeTicks());
263 264
264 // Don't draw and swap in deadline while swap throttled. 265 // Don't draw and swap in deadline while swap throttled.
265 EXPECT_EQ(3, client_->draw_and_swap_count()); 266 EXPECT_EQ(3, client_->draw_and_swap_count());
266 scheduler_->BeginFrameDeadlineForTest(); 267 scheduler_->BeginFrameDeadlineForTest();
267 EXPECT_EQ(3, client_->draw_and_swap_count()); 268 EXPECT_EQ(3, client_->draw_and_swap_count());
268 269
269 // Deadline triggers normally once not swap throttled. 270 // Deadline triggers normally once not swap throttled.
270 // Damage from previous BeginFrame should cary over, so don't damage again. 271 // Damage from previous BeginFrame should cary over, so don't damage again.
271 late_deadline = now_src().Now() + BeginFrameArgs::DefaultInterval(); 272 late_deadline = now_src().NowTicks() + BeginFrameArgs::DefaultInterval();
272 scheduler_->DidSwapBuffersComplete(); 273 scheduler_->DidSwapBuffersComplete();
273 BeginFrameForTest(); 274 BeginFrameForTest();
274 EXPECT_GT(scheduler_->DesiredBeginFrameDeadlineTimeForTest(), 275 EXPECT_GT(scheduler_->DesiredBeginFrameDeadlineTimeForTest(),
275 now_src().Now()); 276 now_src().NowTicks());
276 EXPECT_LT(scheduler_->DesiredBeginFrameDeadlineTimeForTest(), late_deadline); 277 EXPECT_LT(scheduler_->DesiredBeginFrameDeadlineTimeForTest(), late_deadline);
277 // Still waiting for surface 2. Once it updates, deadline should trigger 278 // Still waiting for surface 2. Once it updates, deadline should trigger
278 // immediately again. 279 // immediately again.
279 scheduler_->SurfaceDamaged(sid2); 280 scheduler_->SurfaceDamaged(sid2);
280 EXPECT_EQ(scheduler_->DesiredBeginFrameDeadlineTimeForTest(), 281 EXPECT_EQ(scheduler_->DesiredBeginFrameDeadlineTimeForTest(),
281 base::TimeTicks()); 282 base::TimeTicks());
282 // Draw and swap now that we aren't throttled. 283 // Draw and swap now that we aren't throttled.
283 EXPECT_EQ(3, client_->draw_and_swap_count()); 284 EXPECT_EQ(3, client_->draw_and_swap_count());
284 scheduler_->BeginFrameDeadlineForTest(); 285 scheduler_->BeginFrameDeadlineForTest();
285 EXPECT_EQ(4, client_->draw_and_swap_count()); 286 EXPECT_EQ(4, client_->draw_and_swap_count());
(...skipping 26 matching lines...) Expand all
312 313
313 scheduler_->SetRootSurfaceResourcesLocked(true); 314 scheduler_->SetRootSurfaceResourcesLocked(true);
314 EXPECT_EQ(count++, scheduler_->scheduler_begin_frame_deadline_count()); 315 EXPECT_EQ(count++, scheduler_->scheduler_begin_frame_deadline_count());
315 316
316 scheduler_->OutputSurfaceLost(); 317 scheduler_->OutputSurfaceLost();
317 EXPECT_EQ(count++, scheduler_->scheduler_begin_frame_deadline_count()); 318 EXPECT_EQ(count++, scheduler_->scheduler_begin_frame_deadline_count());
318 } 319 }
319 320
320 } // namespace 321 } // namespace
321 } // namespace cc 322 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698