| 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 |