OLD | NEW |
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 143 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
154 EXPECT_CALL(*time_domain_.get(), RequestWakeup(_, delay)); | 154 EXPECT_CALL(*time_domain_.get(), RequestWakeup(_, delay)); |
155 base::TimeTicks now = time_domain_->Now(); | 155 base::TimeTicks now = time_domain_->Now(); |
156 base::TimeTicks delayed_runtime = now + delay; | 156 base::TimeTicks delayed_runtime = now + delay; |
157 time_domain_->ScheduleDelayedWork(task_queue_.get(), delayed_runtime, now); | 157 time_domain_->ScheduleDelayedWork(task_queue_.get(), delayed_runtime, now); |
158 | 158 |
159 base::TimeTicks next_run_time; | 159 base::TimeTicks next_run_time; |
160 ASSERT_TRUE(time_domain_->NextScheduledRunTime(&next_run_time)); | 160 ASSERT_TRUE(time_domain_->NextScheduledRunTime(&next_run_time)); |
161 EXPECT_EQ(delayed_runtime, next_run_time); | 161 EXPECT_EQ(delayed_runtime, next_run_time); |
162 | 162 |
163 LazyNow lazy_now = time_domain_->CreateLazyNow(); | 163 LazyNow lazy_now = time_domain_->CreateLazyNow(); |
164 time_domain_->UpdateWorkQueues(false, nullptr, lazy_now); | 164 time_domain_->UpdateWorkQueues(lazy_now); |
165 ASSERT_TRUE(time_domain_->NextScheduledRunTime(&next_run_time)); | 165 ASSERT_TRUE(time_domain_->NextScheduledRunTime(&next_run_time)); |
166 EXPECT_EQ(delayed_runtime, next_run_time); | 166 EXPECT_EQ(delayed_runtime, next_run_time); |
167 | 167 |
168 time_domain_->SetNow(delayed_runtime); | 168 time_domain_->SetNow(delayed_runtime); |
169 lazy_now = time_domain_->CreateLazyNow(); | 169 lazy_now = time_domain_->CreateLazyNow(); |
170 time_domain_->UpdateWorkQueues(false, nullptr, lazy_now); | 170 time_domain_->UpdateWorkQueues(lazy_now); |
171 ASSERT_FALSE(time_domain_->NextScheduledRunTime(&next_run_time)); | 171 ASSERT_FALSE(time_domain_->NextScheduledRunTime(&next_run_time)); |
172 } | 172 } |
173 | 173 |
174 TEST_F(TimeDomainTest, ClearExpiredWakeups) { | 174 TEST_F(TimeDomainTest, ClearExpiredWakeups) { |
175 base::TimeTicks now = time_domain_->Now(); | 175 base::TimeTicks now = time_domain_->Now(); |
176 base::TimeDelta delay1 = base::TimeDelta::FromMilliseconds(10); | 176 base::TimeDelta delay1 = base::TimeDelta::FromMilliseconds(10); |
177 base::TimeDelta delay2 = base::TimeDelta::FromMilliseconds(20); | 177 base::TimeDelta delay2 = base::TimeDelta::FromMilliseconds(20); |
178 base::TimeTicks run_time1 = now + delay1; | 178 base::TimeTicks run_time1 = now + delay1; |
179 base::TimeTicks run_time2 = now + delay2; | 179 base::TimeTicks run_time2 = now + delay2; |
180 | 180 |
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
263 ASSERT_TRUE(time_domain_->NextScheduledRunTime(&next_run_time)); | 263 ASSERT_TRUE(time_domain_->NextScheduledRunTime(&next_run_time)); |
264 EXPECT_EQ(delayed_runtime1, next_run_time); | 264 EXPECT_EQ(delayed_runtime1, next_run_time); |
265 Mock::VerifyAndClearExpectations(time_domain_.get()); | 265 Mock::VerifyAndClearExpectations(time_domain_.get()); |
266 | 266 |
267 time_domain_->CancelDelayedWork(task_queue_.get(), delayed_runtime2); | 267 time_domain_->CancelDelayedWork(task_queue_.get(), delayed_runtime2); |
268 ASSERT_TRUE(time_domain_->NextScheduledRunTime(&next_run_time)); | 268 ASSERT_TRUE(time_domain_->NextScheduledRunTime(&next_run_time)); |
269 EXPECT_EQ(delayed_runtime1, next_run_time); | 269 EXPECT_EQ(delayed_runtime1, next_run_time); |
270 | 270 |
271 time_domain_->SetNow(delayed_runtime1); | 271 time_domain_->SetNow(delayed_runtime1); |
272 LazyNow lazy_now = time_domain_->CreateLazyNow(); | 272 LazyNow lazy_now = time_domain_->CreateLazyNow(); |
273 time_domain_->UpdateWorkQueues(false, nullptr, lazy_now); | 273 time_domain_->UpdateWorkQueues(lazy_now); |
274 ASSERT_FALSE(time_domain_->NextScheduledRunTime(&next_run_time)); | 274 ASSERT_FALSE(time_domain_->NextScheduledRunTime(&next_run_time)); |
275 } | 275 } |
276 | 276 |
277 namespace { | 277 namespace { |
278 class MockObserver : public TimeDomain::Observer { | 278 class MockObserver : public TimeDomain::Observer { |
279 public: | 279 public: |
280 ~MockObserver() override {} | 280 ~MockObserver() override {} |
281 | 281 |
282 MOCK_METHOD0(OnTimeDomainHasImmediateWork, void()); | 282 MOCK_METHOD0(OnTimeDomainHasImmediateWork, void()); |
283 MOCK_METHOD0(OnTimeDomainHasDelayedWork, void()); | 283 MOCK_METHOD0(OnTimeDomainHasDelayedWork, void()); |
(...skipping 18 matching lines...) Expand all Loading... |
302 TEST_F(TimeDomainWithObserverTest, OnTimeDomainHasDelayedWork) { | 302 TEST_F(TimeDomainWithObserverTest, OnTimeDomainHasDelayedWork) { |
303 EXPECT_CALL(*observer_, OnTimeDomainHasDelayedWork()); | 303 EXPECT_CALL(*observer_, OnTimeDomainHasDelayedWork()); |
304 EXPECT_CALL(*time_domain_.get(), RequestWakeup(_, _)); | 304 EXPECT_CALL(*time_domain_.get(), RequestWakeup(_, _)); |
305 base::TimeTicks now = time_domain_->Now(); | 305 base::TimeTicks now = time_domain_->Now(); |
306 time_domain_->ScheduleDelayedWork( | 306 time_domain_->ScheduleDelayedWork( |
307 task_queue_.get(), now + base::TimeDelta::FromMilliseconds(10), now); | 307 task_queue_.get(), now + base::TimeDelta::FromMilliseconds(10), now); |
308 } | 308 } |
309 | 309 |
310 } // namespace scheduler | 310 } // namespace scheduler |
311 } // namespace blink | 311 } // namespace blink |
OLD | NEW |