OLD | NEW |
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 "cc/scheduler/begin_frame_source.h" | 5 #include "cc/scheduler/begin_frame_source.h" |
6 | 6 |
7 #include <stdint.h> | 7 #include <stdint.h> |
8 | 8 |
| 9 #include "base/memory/ptr_util.h" |
9 #include "base/test/test_simple_task_runner.h" | 10 #include "base/test/test_simple_task_runner.h" |
10 #include "cc/test/begin_frame_args_test.h" | 11 #include "cc/test/begin_frame_args_test.h" |
11 #include "cc/test/begin_frame_source_test.h" | 12 #include "cc/test/begin_frame_source_test.h" |
12 #include "cc/test/scheduler_test_common.h" | 13 #include "cc/test/scheduler_test_common.h" |
13 #include "testing/gmock/include/gmock/gmock.h" | 14 #include "testing/gmock/include/gmock/gmock.h" |
14 #include "testing/gtest/include/gtest/gtest.h" | 15 #include "testing/gtest/include/gtest/gtest.h" |
15 | 16 |
16 using testing::Mock; | 17 using testing::Mock; |
17 using testing::StrictMock; | 18 using testing::StrictMock; |
18 | 19 |
(...skipping 173 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
192 void OnBeginFrameSourcePausedChanged(bool paused) override {} | 193 void OnBeginFrameSourcePausedChanged(bool paused) override {} |
193 }; | 194 }; |
194 | 195 |
195 TEST(BeginFrameSourceBaseTest, DetectAsValueIntoLoop) { | 196 TEST(BeginFrameSourceBaseTest, DetectAsValueIntoLoop) { |
196 LoopingBeginFrameObserver obs; | 197 LoopingBeginFrameObserver obs; |
197 FakeBeginFrameSource source; | 198 FakeBeginFrameSource source; |
198 | 199 |
199 obs.source_ = &source; | 200 obs.source_ = &source; |
200 source.AddObserver(&obs); | 201 source.AddObserver(&obs); |
201 | 202 |
202 scoped_ptr<base::trace_event::TracedValue> state( | 203 std::unique_ptr<base::trace_event::TracedValue> state( |
203 new base::trace_event::TracedValue()); | 204 new base::trace_event::TracedValue()); |
204 source.AsValueInto(state.get()); | 205 source.AsValueInto(state.get()); |
205 } | 206 } |
206 | 207 |
207 // BackToBackBeginFrameSource testing ----------------------------------------- | 208 // BackToBackBeginFrameSource testing ----------------------------------------- |
208 class TestBackToBackBeginFrameSource : public BackToBackBeginFrameSource { | 209 class TestBackToBackBeginFrameSource : public BackToBackBeginFrameSource { |
209 public: | 210 public: |
210 TestBackToBackBeginFrameSource(base::SimpleTestTickClock* now_src, | 211 TestBackToBackBeginFrameSource(base::SimpleTestTickClock* now_src, |
211 base::SingleThreadTaskRunner* task_runner) | 212 base::SingleThreadTaskRunner* task_runner) |
212 : BackToBackBeginFrameSource(task_runner), now_src_(now_src) {} | 213 : BackToBackBeginFrameSource(task_runner), now_src_(now_src) {} |
213 | 214 |
214 protected: | 215 protected: |
215 base::TimeTicks Now() override { return now_src_->NowTicks(); } | 216 base::TimeTicks Now() override { return now_src_->NowTicks(); } |
216 | 217 |
217 // Not owned. | 218 // Not owned. |
218 base::SimpleTestTickClock* now_src_; | 219 base::SimpleTestTickClock* now_src_; |
219 }; | 220 }; |
220 | 221 |
221 class BackToBackBeginFrameSourceTest : public ::testing::Test { | 222 class BackToBackBeginFrameSourceTest : public ::testing::Test { |
222 public: | 223 public: |
223 static const int64_t kDeadline; | 224 static const int64_t kDeadline; |
224 static const int64_t kInterval; | 225 static const int64_t kInterval; |
225 | 226 |
226 scoped_ptr<base::SimpleTestTickClock> now_src_; | 227 std::unique_ptr<base::SimpleTestTickClock> now_src_; |
227 scoped_refptr<OrderedSimpleTaskRunner> task_runner_; | 228 scoped_refptr<OrderedSimpleTaskRunner> task_runner_; |
228 scoped_ptr<TestBackToBackBeginFrameSource> source_; | 229 std::unique_ptr<TestBackToBackBeginFrameSource> source_; |
229 scoped_ptr<MockBeginFrameObserver> obs_; | 230 std::unique_ptr<MockBeginFrameObserver> obs_; |
230 | 231 |
231 void SetUp() override { | 232 void SetUp() override { |
232 now_src_.reset(new base::SimpleTestTickClock()); | 233 now_src_.reset(new base::SimpleTestTickClock()); |
233 now_src_->Advance(base::TimeDelta::FromMicroseconds(1000)); | 234 now_src_->Advance(base::TimeDelta::FromMicroseconds(1000)); |
234 task_runner_ = | 235 task_runner_ = |
235 make_scoped_refptr(new OrderedSimpleTaskRunner(now_src_.get(), false)); | 236 make_scoped_refptr(new OrderedSimpleTaskRunner(now_src_.get(), false)); |
236 source_.reset( | 237 source_.reset( |
237 new TestBackToBackBeginFrameSource(now_src_.get(), task_runner_.get())); | 238 new TestBackToBackBeginFrameSource(now_src_.get(), task_runner_.get())); |
238 obs_ = make_scoped_ptr(new ::testing::StrictMock<MockBeginFrameObserver>()); | 239 obs_ = |
| 240 base::WrapUnique(new ::testing::StrictMock<MockBeginFrameObserver>()); |
239 } | 241 } |
240 | 242 |
241 void TearDown() override { obs_.reset(); } | 243 void TearDown() override { obs_.reset(); } |
242 }; | 244 }; |
243 | 245 |
244 const int64_t BackToBackBeginFrameSourceTest::kDeadline = | 246 const int64_t BackToBackBeginFrameSourceTest::kDeadline = |
245 BeginFrameArgs::DefaultInterval().ToInternalValue(); | 247 BeginFrameArgs::DefaultInterval().ToInternalValue(); |
246 | 248 |
247 const int64_t BackToBackBeginFrameSourceTest::kInterval = | 249 const int64_t BackToBackBeginFrameSourceTest::kInterval = |
248 BeginFrameArgs::DefaultInterval().ToInternalValue(); | 250 BeginFrameArgs::DefaultInterval().ToInternalValue(); |
(...skipping 146 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
395 now_src_->Advance(base::TimeDelta::FromMicroseconds(50)); | 397 now_src_->Advance(base::TimeDelta::FromMicroseconds(50)); |
396 EXPECT_BEGIN_FRAME_USED(*obs_, 1150, 1150 + kDeadline, kInterval); | 398 EXPECT_BEGIN_FRAME_USED(*obs_, 1150, 1150 + kDeadline, kInterval); |
397 | 399 |
398 EXPECT_TRUE(task_runner_->HasPendingTasks()); | 400 EXPECT_TRUE(task_runner_->HasPendingTasks()); |
399 task_runner_->RunPendingTasks(); | 401 task_runner_->RunPendingTasks(); |
400 } | 402 } |
401 | 403 |
402 // SyntheticBeginFrameSource testing ------------------------------------------ | 404 // SyntheticBeginFrameSource testing ------------------------------------------ |
403 class SyntheticBeginFrameSourceTest : public ::testing::Test { | 405 class SyntheticBeginFrameSourceTest : public ::testing::Test { |
404 public: | 406 public: |
405 scoped_ptr<base::SimpleTestTickClock> now_src_; | 407 std::unique_ptr<base::SimpleTestTickClock> now_src_; |
406 scoped_refptr<OrderedSimpleTaskRunner> task_runner_; | 408 scoped_refptr<OrderedSimpleTaskRunner> task_runner_; |
407 scoped_ptr<TestSyntheticBeginFrameSource> source_; | 409 std::unique_ptr<TestSyntheticBeginFrameSource> source_; |
408 scoped_ptr<MockBeginFrameObserver> obs_; | 410 std::unique_ptr<MockBeginFrameObserver> obs_; |
409 | 411 |
410 void SetUp() override { | 412 void SetUp() override { |
411 now_src_.reset(new base::SimpleTestTickClock()); | 413 now_src_.reset(new base::SimpleTestTickClock()); |
412 now_src_->Advance(base::TimeDelta::FromMicroseconds(1000)); | 414 now_src_->Advance(base::TimeDelta::FromMicroseconds(1000)); |
413 task_runner_ = | 415 task_runner_ = |
414 make_scoped_refptr(new OrderedSimpleTaskRunner(now_src_.get(), false)); | 416 make_scoped_refptr(new OrderedSimpleTaskRunner(now_src_.get(), false)); |
415 source_.reset(new TestSyntheticBeginFrameSource( | 417 source_.reset(new TestSyntheticBeginFrameSource( |
416 now_src_.get(), task_runner_.get(), | 418 now_src_.get(), task_runner_.get(), |
417 base::TimeDelta::FromMicroseconds(10000))); | 419 base::TimeDelta::FromMicroseconds(10000))); |
418 obs_ = make_scoped_ptr(new MockBeginFrameObserver()); | 420 obs_ = base::WrapUnique(new MockBeginFrameObserver()); |
419 } | 421 } |
420 | 422 |
421 void TearDown() override { obs_.reset(); } | 423 void TearDown() override { obs_.reset(); } |
422 }; | 424 }; |
423 | 425 |
424 TEST_F(SyntheticBeginFrameSourceTest, | 426 TEST_F(SyntheticBeginFrameSourceTest, |
425 AddObserverCallsOnBeginFrameWithMissedTick) { | 427 AddObserverCallsOnBeginFrameWithMissedTick) { |
426 now_src_->Advance(base::TimeDelta::FromMicroseconds(9010)); | 428 now_src_->Advance(base::TimeDelta::FromMicroseconds(9010)); |
427 EXPECT_BEGIN_FRAME_SOURCE_PAUSED(*obs_, false); | 429 EXPECT_BEGIN_FRAME_SOURCE_PAUSED(*obs_, false); |
428 EXPECT_BEGIN_FRAME_USED_MISSED(*obs_, 10000, 20000, 10000); | 430 EXPECT_BEGIN_FRAME_USED_MISSED(*obs_, 10000, 20000, 10000); |
(...skipping 125 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
554 base::TimeDelta::FromInternalValue(10000)); | 556 base::TimeDelta::FromInternalValue(10000)); |
555 now_src_->Advance(base::TimeDelta::FromInternalValue(5000)); | 557 now_src_->Advance(base::TimeDelta::FromInternalValue(5000)); |
556 EXPECT_BEGIN_FRAME_SOURCE_PAUSED(obs, false); | 558 EXPECT_BEGIN_FRAME_SOURCE_PAUSED(obs, false); |
557 EXPECT_BEGIN_FRAME_USED_MISSED(obs, 10000, 20000, 10000); | 559 EXPECT_BEGIN_FRAME_USED_MISSED(obs, 10000, 20000, 10000); |
558 source_->AddObserver(&obs); | 560 source_->AddObserver(&obs); |
559 source_->RemoveObserver(&obs); | 561 source_->RemoveObserver(&obs); |
560 } | 562 } |
561 | 563 |
562 } // namespace | 564 } // namespace |
563 } // namespace cc | 565 } // namespace cc |
OLD | NEW |