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

Side by Side Diff: components/scheduler/child/worker_scheduler_impl_unittest.cc

Issue 987193002: Redirect the MessageLoop's task runner to the renderer scheduler (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebased. Created 5 years, 5 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 "components/scheduler/child/worker_scheduler_impl.h" 5 #include "components/scheduler/child/worker_scheduler_impl.h"
6 6
7 #include "base/callback.h" 7 #include "base/callback.h"
8 #include "base/strings/stringprintf.h" 8 #include "base/strings/stringprintf.h"
9 #include "base/test/simple_test_tick_clock.h" 9 #include "base/test/simple_test_tick_clock.h"
10 #include "cc/test/ordered_simple_task_runner.h" 10 #include "cc/test/ordered_simple_task_runner.h"
11 #include "components/scheduler/child/nestable_task_runner_for_test.h" 11 #include "components/scheduler/child/scheduler_task_runner_delegate_for_test.h"
12 #include "components/scheduler/child/scheduler_message_loop_delegate.h"
13 #include "components/scheduler/child/test_time_source.h" 12 #include "components/scheduler/child/test_time_source.h"
14 #include "testing/gmock/include/gmock/gmock.h" 13 #include "testing/gmock/include/gmock/gmock.h"
15 #include "testing/gtest/include/gtest/gtest.h" 14 #include "testing/gtest/include/gtest/gtest.h"
16 15
17 using testing::ElementsAreArray; 16 using testing::ElementsAreArray;
18 17
19 namespace scheduler { 18 namespace scheduler {
20 19
21 namespace { 20 namespace {
22 void NopTask() { 21 void NopTask() {
(...skipping 24 matching lines...) Expand all
47 base::TimeTicks deadline) { 46 base::TimeTicks deadline) {
48 timeline->push_back(base::StringPrintf("run TimelineIdleTestTask deadline %d", 47 timeline->push_back(base::StringPrintf("run TimelineIdleTestTask deadline %d",
49 TimeTicksToIntMs(deadline))); 48 TimeTicksToIntMs(deadline)));
50 } 49 }
51 50
52 }; // namespace 51 }; // namespace
53 52
54 class WorkerSchedulerImplForTest : public WorkerSchedulerImpl { 53 class WorkerSchedulerImplForTest : public WorkerSchedulerImpl {
55 public: 54 public:
56 WorkerSchedulerImplForTest( 55 WorkerSchedulerImplForTest(
57 scoped_refptr<NestableSingleThreadTaskRunner> main_task_runner, 56 scoped_refptr<SchedulerTaskRunnerDelegate> main_task_runner,
58 base::SimpleTestTickClock* clock_) 57 base::SimpleTestTickClock* clock_)
59 : WorkerSchedulerImpl(main_task_runner), 58 : WorkerSchedulerImpl(main_task_runner),
60 clock_(clock_), 59 clock_(clock_),
61 timeline_(nullptr) {} 60 timeline_(nullptr) {}
62 61
63 void RecordTimelineEvents(std::vector<std::string>* timeline) { 62 void RecordTimelineEvents(std::vector<std::string>* timeline) {
64 timeline_ = timeline; 63 timeline_ = timeline;
65 } 64 }
66 65
67 private: 66 private:
(...skipping 18 matching lines...) Expand all
86 85
87 base::SimpleTestTickClock* clock_; // NOT OWNED 86 base::SimpleTestTickClock* clock_; // NOT OWNED
88 std::vector<std::string>* timeline_; // NOT OWNED 87 std::vector<std::string>* timeline_; // NOT OWNED
89 }; 88 };
90 89
91 class WorkerSchedulerImplTest : public testing::Test { 90 class WorkerSchedulerImplTest : public testing::Test {
92 public: 91 public:
93 WorkerSchedulerImplTest() 92 WorkerSchedulerImplTest()
94 : clock_(new base::SimpleTestTickClock()), 93 : clock_(new base::SimpleTestTickClock()),
95 mock_task_runner_(new cc::OrderedSimpleTaskRunner(clock_.get(), true)), 94 mock_task_runner_(new cc::OrderedSimpleTaskRunner(clock_.get(), true)),
96 nestable_task_runner_( 95 main_task_runner_(
97 NestableTaskRunnerForTest::Create(mock_task_runner_)), 96 SchedulerTaskRunnerDelegateForTest::Create(mock_task_runner_)),
98 scheduler_(new WorkerSchedulerImplForTest(nestable_task_runner_, 97 scheduler_(
99 clock_.get())), 98 new WorkerSchedulerImplForTest(main_task_runner_, clock_.get())),
100 timeline_(nullptr) { 99 timeline_(nullptr) {
101 clock_->Advance(base::TimeDelta::FromMicroseconds(5000)); 100 clock_->Advance(base::TimeDelta::FromMicroseconds(5000));
102 scheduler_->GetSchedulerHelperForTesting()->SetTimeSourceForTesting( 101 scheduler_->GetSchedulerHelperForTesting()->SetTimeSourceForTesting(
103 make_scoped_ptr(new TestTimeSource(clock_.get()))); 102 make_scoped_ptr(new TestTimeSource(clock_.get())));
104 scheduler_->GetSchedulerHelperForTesting() 103 scheduler_->GetSchedulerHelperForTesting()
105 ->GetTaskQueueManagerForTesting() 104 ->GetTaskQueueManagerForTesting()
106 ->SetTimeSourceForTesting( 105 ->SetTimeSourceForTesting(
107 make_scoped_ptr(new TestTimeSource(clock_.get()))); 106 make_scoped_ptr(new TestTimeSource(clock_.get())));
108 } 107 }
109 108
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
169 static base::TimeDelta maximum_idle_period_duration() { 168 static base::TimeDelta maximum_idle_period_duration() {
170 return base::TimeDelta::FromMilliseconds( 169 return base::TimeDelta::FromMilliseconds(
171 IdleHelper::kMaximumIdlePeriodMillis); 170 IdleHelper::kMaximumIdlePeriodMillis);
172 } 171 }
173 172
174 protected: 173 protected:
175 scoped_ptr<base::SimpleTestTickClock> clock_; 174 scoped_ptr<base::SimpleTestTickClock> clock_;
176 // Only one of mock_task_runner_ or message_loop_ will be set. 175 // Only one of mock_task_runner_ or message_loop_ will be set.
177 scoped_refptr<cc::OrderedSimpleTaskRunner> mock_task_runner_; 176 scoped_refptr<cc::OrderedSimpleTaskRunner> mock_task_runner_;
178 177
179 scoped_refptr<NestableSingleThreadTaskRunner> nestable_task_runner_; 178 scoped_refptr<SchedulerTaskRunnerDelegate> main_task_runner_;
180 scoped_ptr<WorkerSchedulerImplForTest> scheduler_; 179 scoped_ptr<WorkerSchedulerImplForTest> scheduler_;
181 scoped_refptr<base::SingleThreadTaskRunner> default_task_runner_; 180 scoped_refptr<base::SingleThreadTaskRunner> default_task_runner_;
182 scoped_refptr<SingleThreadIdleTaskRunner> idle_task_runner_; 181 scoped_refptr<SingleThreadIdleTaskRunner> idle_task_runner_;
183 std::vector<std::string>* timeline_; // NOT OWNED 182 std::vector<std::string>* timeline_; // NOT OWNED
184 183
185 DISALLOW_COPY_AND_ASSIGN(WorkerSchedulerImplTest); 184 DISALLOW_COPY_AND_ASSIGN(WorkerSchedulerImplTest);
186 }; 185 };
187 186
188 TEST_F(WorkerSchedulerImplTest, TestPostDefaultTask) { 187 TEST_F(WorkerSchedulerImplTest, TestPostDefaultTask) {
189 Init(); 188 Init();
(...skipping 190 matching lines...) Expand 10 before | Expand all | Expand 10 after
380 "run RecordTimelineTask @ 55", 379 "run RecordTimelineTask @ 55",
381 "IsNotQuiescent @ 55", // NOTE we have to wait for quiescence. 380 "IsNotQuiescent @ 55", // NOTE we have to wait for quiescence.
382 "CanEnterLongIdlePeriod @ 355", 381 "CanEnterLongIdlePeriod @ 355",
383 "run TimelineIdleTestTask deadline 405", 382 "run TimelineIdleTestTask deadline 405",
384 "RunUntilIdle end @ 355"}; 383 "RunUntilIdle end @ 355"};
385 384
386 EXPECT_THAT(timeline, ElementsAreArray(expected_timeline)); 385 EXPECT_THAT(timeline, ElementsAreArray(expected_timeline));
387 } 386 }
388 387
389 } // namespace scheduler 388 } // namespace scheduler
OLDNEW
« no previous file with comments | « components/scheduler/child/worker_scheduler_impl.cc ('k') | components/scheduler/renderer/renderer_scheduler.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698