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

Side by Side Diff: third_party/WebKit/Source/platform/scheduler/base/time_domain_unittest.cc

Issue 2437003002: [scheduler] Add type to scheduler::TaskQueue (Closed)
Patch Set: fix windows compilation Created 4 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
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 "platform/scheduler/base/time_domain.h" 5 #include "platform/scheduler/base/time_domain.h"
6 6
7 #include "base/macros.h" 7 #include "base/macros.h"
8 #include "base/memory/ptr_util.h" 8 #include "base/memory/ptr_util.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"
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
56 private: 56 private:
57 base::TimeTicks now_; 57 base::TimeTicks now_;
58 58
59 DISALLOW_COPY_AND_ASSIGN(MockTimeDomain); 59 DISALLOW_COPY_AND_ASSIGN(MockTimeDomain);
60 }; 60 };
61 61
62 class TimeDomainTest : public testing::Test { 62 class TimeDomainTest : public testing::Test {
63 public: 63 public:
64 void SetUp() final { 64 void SetUp() final {
65 time_domain_ = base::WrapUnique(CreateMockTimeDomain()); 65 time_domain_ = base::WrapUnique(CreateMockTimeDomain());
66 task_queue_ = make_scoped_refptr(new internal::TaskQueueImpl( 66 task_queue_ = make_scoped_refptr(
67 nullptr, time_domain_.get(), TaskQueue::Spec("test_queue"), 67 new internal::TaskQueueImpl(nullptr, time_domain_.get(),
68 "test.category", "test.category")); 68 TaskQueue::Spec(TaskQueue::QueueType::TEST),
69 "test.category", "test.category"));
69 } 70 }
70 71
71 void TearDown() final { 72 void TearDown() final {
72 if (task_queue_) 73 if (task_queue_)
73 task_queue_->UnregisterTaskQueue(); 74 task_queue_->UnregisterTaskQueue();
74 } 75 }
75 76
76 virtual MockTimeDomain* CreateMockTimeDomain() { 77 virtual MockTimeDomain* CreateMockTimeDomain() {
77 return new MockTimeDomain(nullptr); 78 return new MockTimeDomain(nullptr);
78 } 79 }
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
115 // Now scheduler a later wakeup, which should replace the previously requested 116 // Now scheduler a later wakeup, which should replace the previously requested
116 // one. 117 // one.
117 EXPECT_CALL(*time_domain_.get(), RequestWakeup(_, delay2)); 118 EXPECT_CALL(*time_domain_.get(), RequestWakeup(_, delay2));
118 time_domain_->ScheduleDelayedWork(task_queue_.get(), delayed_runtime2, now); 119 time_domain_->ScheduleDelayedWork(task_queue_.get(), delayed_runtime2, now);
119 120
120 EXPECT_TRUE(time_domain_->NextScheduledRunTime(&next_scheduled_runtime)); 121 EXPECT_TRUE(time_domain_->NextScheduledRunTime(&next_scheduled_runtime));
121 EXPECT_EQ(delayed_runtime2, next_scheduled_runtime); 122 EXPECT_EQ(delayed_runtime2, next_scheduled_runtime);
122 } 123 }
123 124
124 TEST_F(TimeDomainTest, RequestWakeup_OnlyCalledForEarlierTasks) { 125 TEST_F(TimeDomainTest, RequestWakeup_OnlyCalledForEarlierTasks) {
125 scoped_refptr<internal::TaskQueueImpl> task_queue2 = 126 scoped_refptr<internal::TaskQueueImpl> task_queue2 = make_scoped_refptr(
126 make_scoped_refptr(new internal::TaskQueueImpl( 127 new internal::TaskQueueImpl(nullptr, time_domain_.get(),
127 nullptr, time_domain_.get(), TaskQueue::Spec("test_queue2"), 128 TaskQueue::Spec(TaskQueue::QueueType::TEST),
128 "test.category", "test.category")); 129 "test.category", "test.category"));
129 130
130 scoped_refptr<internal::TaskQueueImpl> task_queue3 = 131 scoped_refptr<internal::TaskQueueImpl> task_queue3 = make_scoped_refptr(
131 make_scoped_refptr(new internal::TaskQueueImpl( 132 new internal::TaskQueueImpl(nullptr, time_domain_.get(),
132 nullptr, time_domain_.get(), TaskQueue::Spec("test_queue3"), 133 TaskQueue::Spec(TaskQueue::QueueType::TEST),
133 "test.category", "test.category")); 134 "test.category", "test.category"));
134 135
135 scoped_refptr<internal::TaskQueueImpl> task_queue4 = 136 scoped_refptr<internal::TaskQueueImpl> task_queue4 = make_scoped_refptr(
136 make_scoped_refptr(new internal::TaskQueueImpl( 137 new internal::TaskQueueImpl(nullptr, time_domain_.get(),
137 nullptr, time_domain_.get(), TaskQueue::Spec("test_queue4"), 138 TaskQueue::Spec(TaskQueue::QueueType::TEST),
138 "test.category", "test.category")); 139 "test.category", "test.category"));
139 140
140 base::TimeDelta delay1 = base::TimeDelta::FromMilliseconds(10); 141 base::TimeDelta delay1 = base::TimeDelta::FromMilliseconds(10);
141 base::TimeDelta delay2 = base::TimeDelta::FromMilliseconds(20); 142 base::TimeDelta delay2 = base::TimeDelta::FromMilliseconds(20);
142 base::TimeDelta delay3 = base::TimeDelta::FromMilliseconds(30); 143 base::TimeDelta delay3 = base::TimeDelta::FromMilliseconds(30);
143 base::TimeDelta delay4 = base::TimeDelta::FromMilliseconds(1); 144 base::TimeDelta delay4 = base::TimeDelta::FromMilliseconds(1);
144 145
145 // RequestWakeup should always be called if there are no other wakeups. 146 // RequestWakeup should always be called if there are no other wakeups.
146 EXPECT_CALL(*time_domain_.get(), RequestWakeup(_, delay1)); 147 EXPECT_CALL(*time_domain_.get(), RequestWakeup(_, delay1));
147 base::TimeTicks now = time_domain_->Now(); 148 base::TimeTicks now = time_domain_->Now();
148 time_domain_->ScheduleDelayedWork(task_queue_.get(), now + delay1, now); 149 time_domain_->ScheduleDelayedWork(task_queue_.get(), now + delay1, now);
149 150
150 Mock::VerifyAndClearExpectations(time_domain_.get()); 151 Mock::VerifyAndClearExpectations(time_domain_.get());
151 152
152 // RequestWakeup should not be called when scheduling later tasks. 153 // RequestWakeup should not be called when scheduling later tasks.
153 EXPECT_CALL(*time_domain_.get(), RequestWakeup(_, _)).Times(0); 154 EXPECT_CALL(*time_domain_.get(), RequestWakeup(_, _)).Times(0);
154 time_domain_->ScheduleDelayedWork(task_queue2.get(), now + delay2, now); 155 time_domain_->ScheduleDelayedWork(task_queue2.get(), now + delay2, now);
155 time_domain_->ScheduleDelayedWork(task_queue3.get(), now + delay3, now); 156 time_domain_->ScheduleDelayedWork(task_queue3.get(), now + delay3, now);
156 157
157 // RequestWakeup should be called when scheduling earlier tasks. 158 // RequestWakeup should be called when scheduling earlier tasks.
158 Mock::VerifyAndClearExpectations(time_domain_.get()); 159 Mock::VerifyAndClearExpectations(time_domain_.get());
159 EXPECT_CALL(*time_domain_.get(), RequestWakeup(_, delay4)); 160 EXPECT_CALL(*time_domain_.get(), RequestWakeup(_, delay4));
160 time_domain_->ScheduleDelayedWork(task_queue4.get(), now + delay4, now); 161 time_domain_->ScheduleDelayedWork(task_queue4.get(), now + delay4, now);
161 } 162 }
162 163
163 TEST_F(TimeDomainTest, UnregisterQueue) { 164 TEST_F(TimeDomainTest, UnregisterQueue) {
164 scoped_refptr<internal::TaskQueueImpl> task_queue2_ = 165 scoped_refptr<internal::TaskQueueImpl> task_queue2_ = make_scoped_refptr(
165 make_scoped_refptr(new internal::TaskQueueImpl( 166 new internal::TaskQueueImpl(nullptr, time_domain_.get(),
166 nullptr, time_domain_.get(), TaskQueue::Spec("test_queue2"), 167 TaskQueue::Spec(TaskQueue::QueueType::TEST),
167 "test.category", "test.category")); 168 "test.category", "test.category"));
168 169
169 EXPECT_CALL(*time_domain_.get(), RequestWakeup(_, _)).Times(1); 170 EXPECT_CALL(*time_domain_.get(), RequestWakeup(_, _)).Times(1);
170 base::TimeTicks now = time_domain_->Now(); 171 base::TimeTicks now = time_domain_->Now();
171 time_domain_->ScheduleDelayedWork( 172 time_domain_->ScheduleDelayedWork(
172 task_queue_.get(), now + base::TimeDelta::FromMilliseconds(10), now); 173 task_queue_.get(), now + base::TimeDelta::FromMilliseconds(10), now);
173 time_domain_->ScheduleDelayedWork( 174 time_domain_->ScheduleDelayedWork(
174 task_queue2_.get(), now + base::TimeDelta::FromMilliseconds(100), now); 175 task_queue2_.get(), now + base::TimeDelta::FromMilliseconds(100), now);
175 176
176 TaskQueue* next_task_queue; 177 TaskQueue* next_task_queue;
177 EXPECT_TRUE(time_domain_->NextScheduledTaskQueue(&next_task_queue)); 178 EXPECT_TRUE(time_domain_->NextScheduledTaskQueue(&next_task_queue));
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
236 TEST_F(TimeDomainWithObserverTest, OnTimeDomainHasDelayedWork) { 237 TEST_F(TimeDomainWithObserverTest, OnTimeDomainHasDelayedWork) {
237 EXPECT_CALL(*observer_, OnTimeDomainHasDelayedWork(task_queue_.get())); 238 EXPECT_CALL(*observer_, OnTimeDomainHasDelayedWork(task_queue_.get()));
238 EXPECT_CALL(*time_domain_.get(), RequestWakeup(_, _)); 239 EXPECT_CALL(*time_domain_.get(), RequestWakeup(_, _));
239 base::TimeTicks now = time_domain_->Now(); 240 base::TimeTicks now = time_domain_->Now();
240 time_domain_->ScheduleDelayedWork( 241 time_domain_->ScheduleDelayedWork(
241 task_queue_.get(), now + base::TimeDelta::FromMilliseconds(10), now); 242 task_queue_.get(), now + base::TimeDelta::FromMilliseconds(10), now);
242 } 243 }
243 244
244 } // namespace scheduler 245 } // namespace scheduler
245 } // namespace blink 246 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698