| 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 26 matching lines...) Expand all Loading... |
| 37 using TimeDomain::UpdateWorkQueues; | 37 using TimeDomain::UpdateWorkQueues; |
| 38 using TimeDomain::OnQueueHasIncomingImmediateWork; | 38 using TimeDomain::OnQueueHasIncomingImmediateWork; |
| 39 | 39 |
| 40 // TimeSource implementation: | 40 // TimeSource implementation: |
| 41 LazyNow CreateLazyNow() const override { return LazyNow(now_); } | 41 LazyNow CreateLazyNow() const override { return LazyNow(now_); } |
| 42 base::TimeTicks Now() const override { return now_; } | 42 base::TimeTicks Now() const override { return now_; } |
| 43 | 43 |
| 44 void AsValueIntoInternal( | 44 void AsValueIntoInternal( |
| 45 base::trace_event::TracedValue* state) const override {} | 45 base::trace_event::TracedValue* state) const override {} |
| 46 | 46 |
| 47 bool MaybeAdvanceTime() override { return false; } | 47 base::Optional<base::TimeDelta> DelayTillNextTask( |
| 48 LazyNow* lazy_now) override { |
| 49 return base::Optional<base::TimeDelta>(); |
| 50 } |
| 48 const char* GetName() const override { return "Test"; } | 51 const char* GetName() const override { return "Test"; } |
| 49 void OnRegisterWithTaskQueueManager( | 52 void OnRegisterWithTaskQueueManager( |
| 50 TaskQueueManager* task_queue_manager) override {} | 53 TaskQueueManager* task_queue_manager) override {} |
| 51 | 54 |
| 52 MOCK_METHOD2(RequestWakeup, void(base::TimeTicks now, base::TimeDelta delay)); | 55 MOCK_METHOD2(RequestWakeup, void(base::TimeTicks now, base::TimeDelta delay)); |
| 53 | 56 |
| 54 void SetNow(base::TimeTicks now) { now_ = now; } | 57 void SetNow(base::TimeTicks now) { now_ = now; } |
| 55 | 58 |
| 56 private: | 59 private: |
| 57 base::TimeTicks now_; | 60 base::TimeTicks now_; |
| (...skipping 138 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 196 EXPECT_CALL(*time_domain_.get(), RequestWakeup(_, delay)); | 199 EXPECT_CALL(*time_domain_.get(), RequestWakeup(_, delay)); |
| 197 base::TimeTicks now = time_domain_->Now(); | 200 base::TimeTicks now = time_domain_->Now(); |
| 198 base::TimeTicks delayed_runtime = now + delay; | 201 base::TimeTicks delayed_runtime = now + delay; |
| 199 time_domain_->ScheduleDelayedWork(task_queue_.get(), delayed_runtime, now); | 202 time_domain_->ScheduleDelayedWork(task_queue_.get(), delayed_runtime, now); |
| 200 | 203 |
| 201 base::TimeTicks next_run_time; | 204 base::TimeTicks next_run_time; |
| 202 ASSERT_TRUE(time_domain_->NextScheduledRunTime(&next_run_time)); | 205 ASSERT_TRUE(time_domain_->NextScheduledRunTime(&next_run_time)); |
| 203 EXPECT_EQ(delayed_runtime, next_run_time); | 206 EXPECT_EQ(delayed_runtime, next_run_time); |
| 204 | 207 |
| 205 LazyNow lazy_now = time_domain_->CreateLazyNow(); | 208 LazyNow lazy_now = time_domain_->CreateLazyNow(); |
| 206 time_domain_->UpdateWorkQueues(lazy_now); | 209 time_domain_->UpdateWorkQueues(&lazy_now); |
| 207 ASSERT_TRUE(time_domain_->NextScheduledRunTime(&next_run_time)); | 210 ASSERT_TRUE(time_domain_->NextScheduledRunTime(&next_run_time)); |
| 208 EXPECT_EQ(delayed_runtime, next_run_time); | 211 EXPECT_EQ(delayed_runtime, next_run_time); |
| 209 | 212 |
| 210 time_domain_->SetNow(delayed_runtime); | 213 time_domain_->SetNow(delayed_runtime); |
| 211 lazy_now = time_domain_->CreateLazyNow(); | 214 lazy_now = time_domain_->CreateLazyNow(); |
| 212 time_domain_->UpdateWorkQueues(lazy_now); | 215 time_domain_->UpdateWorkQueues(&lazy_now); |
| 213 ASSERT_FALSE(time_domain_->NextScheduledRunTime(&next_run_time)); | 216 ASSERT_FALSE(time_domain_->NextScheduledRunTime(&next_run_time)); |
| 214 } | 217 } |
| 215 | 218 |
| 216 namespace { | 219 namespace { |
| 217 class MockObserver : public TimeDomain::Observer { | 220 class MockObserver : public TimeDomain::Observer { |
| 218 public: | 221 public: |
| 219 ~MockObserver() override {} | 222 ~MockObserver() override {} |
| 220 | 223 |
| 221 MOCK_METHOD1(OnTimeDomainHasImmediateWork, void(TaskQueue*)); | 224 MOCK_METHOD1(OnTimeDomainHasImmediateWork, void(TaskQueue*)); |
| 222 MOCK_METHOD1(OnTimeDomainHasDelayedWork, void(TaskQueue*)); | 225 MOCK_METHOD1(OnTimeDomainHasDelayedWork, void(TaskQueue*)); |
| (...skipping 18 matching lines...) Expand all Loading... |
| 241 TEST_F(TimeDomainWithObserverTest, OnTimeDomainHasDelayedWork) { | 244 TEST_F(TimeDomainWithObserverTest, OnTimeDomainHasDelayedWork) { |
| 242 EXPECT_CALL(*observer_, OnTimeDomainHasDelayedWork(task_queue_.get())); | 245 EXPECT_CALL(*observer_, OnTimeDomainHasDelayedWork(task_queue_.get())); |
| 243 EXPECT_CALL(*time_domain_.get(), RequestWakeup(_, _)); | 246 EXPECT_CALL(*time_domain_.get(), RequestWakeup(_, _)); |
| 244 base::TimeTicks now = time_domain_->Now(); | 247 base::TimeTicks now = time_domain_->Now(); |
| 245 time_domain_->ScheduleDelayedWork( | 248 time_domain_->ScheduleDelayedWork( |
| 246 task_queue_.get(), now + base::TimeDelta::FromMilliseconds(10), now); | 249 task_queue_.get(), now + base::TimeDelta::FromMilliseconds(10), now); |
| 247 } | 250 } |
| 248 | 251 |
| 249 } // namespace scheduler | 252 } // namespace scheduler |
| 250 } // namespace blink | 253 } // namespace blink |
| OLD | NEW |