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

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

Issue 2061273002: cc: Make BackToBackBeginFrameSource a SyntheticBeginFrameSource. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: syntheticbeginframesource: delete-DEBUG_FRAMES Created 4 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
« no previous file with comments | « cc/surfaces/display.cc ('k') | cc/surfaces/surface_display_output_surface_unittest.cc » ('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 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/test/simple_test_tick_clock.h"
10 #include "base/trace_event/trace_event.h" 10 #include "base/trace_event/trace_event.h"
11 #include "cc/output/begin_frame_args.h" 11 #include "cc/output/begin_frame_args.h"
12 #include "cc/surfaces/display.h" 12 #include "cc/surfaces/display.h"
13 #include "cc/test/fake_external_begin_frame_source.h"
13 #include "cc/test/scheduler_test_common.h" 14 #include "cc/test/scheduler_test_common.h"
14 #include "testing/gtest/include/gtest/gtest.h" 15 #include "testing/gtest/include/gtest/gtest.h"
15 16
16 namespace cc { 17 namespace cc {
17 namespace { 18 namespace {
18 19
19 const int kMaxPendingSwaps = 1; 20 const int kMaxPendingSwaps = 1;
20 21
21 class FakeDisplaySchedulerClient : public DisplaySchedulerClient { 22 class FakeDisplaySchedulerClient : public DisplaySchedulerClient {
22 public: 23 public:
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
64 return scheduler_begin_frame_deadline_count_; 65 return scheduler_begin_frame_deadline_count_;
65 } 66 }
66 67
67 protected: 68 protected:
68 int scheduler_begin_frame_deadline_count_; 69 int scheduler_begin_frame_deadline_count_;
69 }; 70 };
70 71
71 class DisplaySchedulerTest : public testing::Test { 72 class DisplaySchedulerTest : public testing::Test {
72 public: 73 public:
73 DisplaySchedulerTest() 74 DisplaySchedulerTest()
74 : now_src_(new base::SimpleTestTickClock()), 75 : fake_begin_frame_source_(0.f, false),
76 now_src_(new base::SimpleTestTickClock()),
75 task_runner_(new base::NullTaskRunner), 77 task_runner_(new base::NullTaskRunner),
76 client_(new FakeDisplaySchedulerClient), 78 client_(new FakeDisplaySchedulerClient),
77 scheduler_(new TestDisplayScheduler(client_.get(), 79 scheduler_(new TestDisplayScheduler(client_.get(),
78 &fake_begin_frame_source_, 80 &fake_begin_frame_source_,
79 task_runner_.get(), 81 task_runner_.get(),
80 kMaxPendingSwaps)) { 82 kMaxPendingSwaps)) {
81 now_src_->Advance(base::TimeDelta::FromMicroseconds(10000)); 83 now_src_->Advance(base::TimeDelta::FromMicroseconds(10000));
82 } 84 }
83 85
84 ~DisplaySchedulerTest() override {} 86 ~DisplaySchedulerTest() override {}
85 87
86 void SetUp() override { scheduler_->SetRootSurfaceResourcesLocked(false); } 88 void SetUp() override { scheduler_->SetRootSurfaceResourcesLocked(false); }
87 89
88 void BeginFrameForTest() { 90 void BeginFrameForTest() {
89 base::TimeTicks frame_time = now_src_->NowTicks(); 91 base::TimeTicks frame_time = now_src_->NowTicks();
90 base::TimeDelta interval = BeginFrameArgs::DefaultInterval(); 92 base::TimeDelta interval = BeginFrameArgs::DefaultInterval();
91 base::TimeTicks deadline = frame_time + interval; 93 base::TimeTicks deadline = frame_time + interval;
92 fake_begin_frame_source_.TestOnBeginFrame( 94 fake_begin_frame_source_.TestOnBeginFrame(
93 BeginFrameArgs::Create(BEGINFRAME_FROM_HERE, frame_time, deadline, 95 BeginFrameArgs::Create(BEGINFRAME_FROM_HERE, frame_time, deadline,
94 interval, BeginFrameArgs::NORMAL)); 96 interval, BeginFrameArgs::NORMAL));
95 } 97 }
96 98
97 protected: 99 protected:
98 base::SimpleTestTickClock& now_src() { return *now_src_; } 100 base::SimpleTestTickClock& now_src() { return *now_src_; }
99 FakeDisplaySchedulerClient& client() { return *client_; } 101 FakeDisplaySchedulerClient& client() { return *client_; }
100 DisplayScheduler& scheduler() { return *scheduler_; } 102 DisplayScheduler& scheduler() { return *scheduler_; }
101 103
102 FakeBeginFrameSource fake_begin_frame_source_; 104 FakeExternalBeginFrameSource fake_begin_frame_source_;
103 105
104 std::unique_ptr<base::SimpleTestTickClock> now_src_; 106 std::unique_ptr<base::SimpleTestTickClock> now_src_;
105 scoped_refptr<base::NullTaskRunner> task_runner_; 107 scoped_refptr<base::NullTaskRunner> task_runner_;
106 std::unique_ptr<FakeDisplaySchedulerClient> client_; 108 std::unique_ptr<FakeDisplaySchedulerClient> client_;
107 std::unique_ptr<TestDisplayScheduler> scheduler_; 109 std::unique_ptr<TestDisplayScheduler> scheduler_;
108 }; 110 };
109 111
110 TEST_F(DisplaySchedulerTest, ResizeHasLateDeadlineUntilNewRootSurface) { 112 TEST_F(DisplaySchedulerTest, ResizeHasLateDeadlineUntilNewRootSurface) {
111 SurfaceId root_surface_id1(0, 1, 0); 113 SurfaceId root_surface_id1(0, 1, 0);
112 SurfaceId root_surface_id2(0, 2, 0); 114 SurfaceId root_surface_id2(0, 2, 0);
(...skipping 324 matching lines...) Expand 10 before | Expand all | Expand 10 after
437 439
438 scheduler_->SetRootSurfaceResourcesLocked(true); 440 scheduler_->SetRootSurfaceResourcesLocked(true);
439 EXPECT_EQ(count++, scheduler_->scheduler_begin_frame_deadline_count()); 441 EXPECT_EQ(count++, scheduler_->scheduler_begin_frame_deadline_count());
440 442
441 scheduler_->OutputSurfaceLost(); 443 scheduler_->OutputSurfaceLost();
442 EXPECT_EQ(count++, scheduler_->scheduler_begin_frame_deadline_count()); 444 EXPECT_EQ(count++, scheduler_->scheduler_begin_frame_deadline_count());
443 } 445 }
444 446
445 } // namespace 447 } // namespace
446 } // namespace cc 448 } // namespace cc
OLDNEW
« no previous file with comments | « cc/surfaces/display.cc ('k') | cc/surfaces/surface_display_output_surface_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698