| Index: third_party/WebKit/Source/platform/scheduler/base/time_domain_unittest.cc
|
| diff --git a/third_party/WebKit/Source/platform/scheduler/base/time_domain_unittest.cc b/third_party/WebKit/Source/platform/scheduler/base/time_domain_unittest.cc
|
| index 0337330a0422ce0b6ebbb9a95256511a2808c22e..f8eaf85248b9d070cb12a7625f0a2f9b0e84ded5 100644
|
| --- a/third_party/WebKit/Source/platform/scheduler/base/time_domain_unittest.cc
|
| +++ b/third_party/WebKit/Source/platform/scheduler/base/time_domain_unittest.cc
|
| @@ -53,10 +53,7 @@
|
| void OnRegisterWithTaskQueueManager(
|
| TaskQueueManager* task_queue_manager) override {}
|
|
|
| - MOCK_METHOD2(RequestWakeupAt,
|
| - void(LazyNow* lazy_now, base::TimeTicks run_time));
|
| -
|
| - MOCK_METHOD1(CancelWakeupAt, void(base::TimeTicks run_time));
|
| + MOCK_METHOD2(RequestWakeup, void(base::TimeTicks now, base::TimeDelta delay));
|
|
|
| void SetNow(base::TimeTicks now) { now_ = now; }
|
|
|
| @@ -92,10 +89,9 @@
|
| TEST_F(TimeDomainTest, ScheduleDelayedWork) {
|
| base::TimeDelta delay = base::TimeDelta::FromMilliseconds(10);
|
| base::TimeTicks delayed_runtime = time_domain_->Now() + delay;
|
| - EXPECT_CALL(*time_domain_.get(), RequestWakeupAt(_, delayed_runtime));
|
| - LazyNow lazy_now = time_domain_->CreateLazyNow();
|
| - time_domain_->ScheduleDelayedWork(task_queue_.get(), lazy_now.Now() + delay,
|
| - &lazy_now);
|
| + EXPECT_CALL(*time_domain_.get(), RequestWakeup(_, delay));
|
| + base::TimeTicks now = time_domain_->Now();
|
| + time_domain_->ScheduleDelayedWork(task_queue_.get(), now + delay, now);
|
|
|
| base::TimeTicks next_scheduled_runtime;
|
| EXPECT_TRUE(time_domain_->NextScheduledRunTime(&next_scheduled_runtime));
|
| @@ -111,10 +107,9 @@
|
| base::TimeDelta delay2 = base::TimeDelta::FromMilliseconds(100);
|
| base::TimeTicks delayed_runtime1 = time_domain_->Now() + delay1;
|
| base::TimeTicks delayed_runtime2 = time_domain_->Now() + delay2;
|
| - EXPECT_CALL(*time_domain_.get(), RequestWakeupAt(_, delayed_runtime1));
|
| - LazyNow lazy_now = time_domain_->CreateLazyNow();
|
| - time_domain_->ScheduleDelayedWork(task_queue_.get(), delayed_runtime1,
|
| - &lazy_now);
|
| + EXPECT_CALL(*time_domain_.get(), RequestWakeup(_, delay1));
|
| + base::TimeTicks now = time_domain_->Now();
|
| + time_domain_->ScheduleDelayedWork(task_queue_.get(), delayed_runtime1, now);
|
|
|
| base::TimeTicks next_scheduled_runtime;
|
| EXPECT_TRUE(time_domain_->NextScheduledRunTime(&next_scheduled_runtime));
|
| @@ -124,15 +119,14 @@
|
|
|
| // Now scheduler a later wakeup, which should replace the previously requested
|
| // one.
|
| - EXPECT_CALL(*time_domain_.get(), RequestWakeupAt(_, delayed_runtime2));
|
| - time_domain_->ScheduleDelayedWork(task_queue_.get(), delayed_runtime2,
|
| - &lazy_now);
|
| + EXPECT_CALL(*time_domain_.get(), RequestWakeup(_, delay2));
|
| + time_domain_->ScheduleDelayedWork(task_queue_.get(), delayed_runtime2, now);
|
|
|
| EXPECT_TRUE(time_domain_->NextScheduledRunTime(&next_scheduled_runtime));
|
| EXPECT_EQ(delayed_runtime2, next_scheduled_runtime);
|
| }
|
|
|
| -TEST_F(TimeDomainTest, RequestWakeupAt_OnlyCalledForEarlierTasks) {
|
| +TEST_F(TimeDomainTest, RequestWakeup_OnlyCalledForEarlierTasks) {
|
| scoped_refptr<internal::TaskQueueImpl> task_queue2 = make_scoped_refptr(
|
| new internal::TaskQueueImpl(nullptr, time_domain_.get(),
|
| TaskQueue::Spec(TaskQueue::QueueType::TEST),
|
| @@ -153,31 +147,23 @@
|
| base::TimeDelta delay3 = base::TimeDelta::FromMilliseconds(30);
|
| base::TimeDelta delay4 = base::TimeDelta::FromMilliseconds(1);
|
|
|
| - // RequestWakeupAt should always be called if there are no other wakeups.
|
| - LazyNow lazy_now = time_domain_->CreateLazyNow();
|
| - EXPECT_CALL(*time_domain_.get(), RequestWakeupAt(_, lazy_now.Now() + delay1));
|
| - time_domain_->ScheduleDelayedWork(task_queue_.get(), lazy_now.Now() + delay1,
|
| - &lazy_now);
|
| + // RequestWakeup should always be called if there are no other wakeups.
|
| + EXPECT_CALL(*time_domain_.get(), RequestWakeup(_, delay1));
|
| + base::TimeTicks now = time_domain_->Now();
|
| + time_domain_->ScheduleDelayedWork(task_queue_.get(), now + delay1, now);
|
|
|
| Mock::VerifyAndClearExpectations(time_domain_.get());
|
|
|
| - // RequestWakeupAt should not be called when scheduling later tasks.
|
| - EXPECT_CALL(*time_domain_.get(), RequestWakeupAt(_, _)).Times(0);
|
| - time_domain_->ScheduleDelayedWork(task_queue2.get(), lazy_now.Now() + delay2,
|
| - &lazy_now);
|
| - time_domain_->ScheduleDelayedWork(task_queue3.get(), lazy_now.Now() + delay3,
|
| - &lazy_now);
|
| -
|
| - // RequestWakeupAt should be called when scheduling earlier tasks.
|
| + // RequestWakeup should not be called when scheduling later tasks.
|
| + EXPECT_CALL(*time_domain_.get(), RequestWakeup(_, _)).Times(0);
|
| + time_domain_->ScheduleDelayedWork(task_queue2.get(), now + delay2, now);
|
| + time_domain_->ScheduleDelayedWork(task_queue3.get(), now + delay3, now);
|
| +
|
| + // RequestWakeup should be called when scheduling earlier tasks.
|
| Mock::VerifyAndClearExpectations(time_domain_.get());
|
| - EXPECT_CALL(*time_domain_.get(), RequestWakeupAt(_, lazy_now.Now() + delay4));
|
| - time_domain_->ScheduleDelayedWork(task_queue4.get(), lazy_now.Now() + delay4,
|
| - &lazy_now);
|
| -
|
| - Mock::VerifyAndClearExpectations(time_domain_.get());
|
| -
|
| - EXPECT_CALL(*time_domain_.get(), RequestWakeupAt(_, _));
|
| - EXPECT_CALL(*time_domain_.get(), CancelWakeupAt(_)).Times(2);
|
| + EXPECT_CALL(*time_domain_.get(), RequestWakeup(_, delay4));
|
| + time_domain_->ScheduleDelayedWork(task_queue4.get(), now + delay4, now);
|
| +
|
| task_queue2->UnregisterTaskQueue();
|
| task_queue3->UnregisterTaskQueue();
|
| task_queue4->UnregisterTaskQueue();
|
| @@ -189,49 +175,38 @@
|
| TaskQueue::Spec(TaskQueue::QueueType::TEST),
|
| "test.category", "test.category"));
|
|
|
| - LazyNow lazy_now = time_domain_->CreateLazyNow();
|
| - base::TimeTicks wakeup1 =
|
| - lazy_now.Now() + base::TimeDelta::FromMilliseconds(10);
|
| - EXPECT_CALL(*time_domain_.get(), RequestWakeupAt(_, wakeup1)).Times(1);
|
| - time_domain_->ScheduleDelayedWork(task_queue_.get(), wakeup1, &lazy_now);
|
| - base::TimeTicks wakeup2 =
|
| - lazy_now.Now() + base::TimeDelta::FromMilliseconds(100);
|
| - time_domain_->ScheduleDelayedWork(task_queue2_.get(), wakeup2, &lazy_now);
|
| + EXPECT_CALL(*time_domain_.get(), RequestWakeup(_, _)).Times(1);
|
| + base::TimeTicks now = time_domain_->Now();
|
| + time_domain_->ScheduleDelayedWork(
|
| + task_queue_.get(), now + base::TimeDelta::FromMilliseconds(10), now);
|
| + time_domain_->ScheduleDelayedWork(
|
| + task_queue2_.get(), now + base::TimeDelta::FromMilliseconds(100), now);
|
|
|
| TaskQueue* next_task_queue;
|
| EXPECT_TRUE(time_domain_->NextScheduledTaskQueue(&next_task_queue));
|
| EXPECT_EQ(task_queue_.get(), next_task_queue);
|
| -
|
| - testing::Mock::VerifyAndClearExpectations(time_domain_.get());
|
| -
|
| - EXPECT_CALL(*time_domain_.get(), CancelWakeupAt(wakeup1)).Times(1);
|
| - EXPECT_CALL(*time_domain_.get(), RequestWakeupAt(_, wakeup2)).Times(1);
|
|
|
| time_domain_->UnregisterQueue(task_queue_.get());
|
| task_queue_ = scoped_refptr<internal::TaskQueueImpl>();
|
| EXPECT_TRUE(time_domain_->NextScheduledTaskQueue(&next_task_queue));
|
| EXPECT_EQ(task_queue2_.get(), next_task_queue);
|
|
|
| - testing::Mock::VerifyAndClearExpectations(time_domain_.get());
|
| -
|
| - EXPECT_CALL(*time_domain_.get(), CancelWakeupAt(wakeup2)).Times(1);
|
| -
|
| time_domain_->UnregisterQueue(task_queue2_.get());
|
| EXPECT_FALSE(time_domain_->NextScheduledTaskQueue(&next_task_queue));
|
| }
|
|
|
| TEST_F(TimeDomainTest, WakeupReadyDelayedQueues) {
|
| base::TimeDelta delay = base::TimeDelta::FromMilliseconds(50);
|
| - LazyNow lazy_now = time_domain_->CreateLazyNow();
|
| - base::TimeTicks delayed_runtime = lazy_now.Now() + delay;
|
| - EXPECT_CALL(*time_domain_.get(), RequestWakeupAt(_, delayed_runtime));
|
| - time_domain_->ScheduleDelayedWork(task_queue_.get(), delayed_runtime,
|
| - &lazy_now);
|
| + EXPECT_CALL(*time_domain_.get(), RequestWakeup(_, delay));
|
| + base::TimeTicks now = time_domain_->Now();
|
| + base::TimeTicks delayed_runtime = now + delay;
|
| + time_domain_->ScheduleDelayedWork(task_queue_.get(), delayed_runtime, now);
|
|
|
| base::TimeTicks next_run_time;
|
| ASSERT_TRUE(time_domain_->NextScheduledRunTime(&next_run_time));
|
| EXPECT_EQ(delayed_runtime, next_run_time);
|
|
|
| + LazyNow lazy_now = time_domain_->CreateLazyNow();
|
| time_domain_->WakeupReadyDelayedQueues(&lazy_now);
|
| ASSERT_TRUE(time_domain_->NextScheduledRunTime(&next_run_time));
|
| EXPECT_EQ(delayed_runtime, next_run_time);
|
| @@ -243,10 +218,9 @@
|
| }
|
|
|
| TEST_F(TimeDomainTest, CancelDelayedWork) {
|
| - LazyNow lazy_now = time_domain_->CreateLazyNow();
|
| - time_domain_->ScheduleDelayedWork(
|
| - task_queue_.get(), lazy_now.Now() + base::TimeDelta::FromMilliseconds(20),
|
| - &lazy_now);
|
| + base::TimeTicks now = time_domain_->Now();
|
| + time_domain_->ScheduleDelayedWork(
|
| + task_queue_.get(), now + base::TimeDelta::FromMilliseconds(20), now);
|
|
|
| TaskQueue* next_task_queue;
|
| EXPECT_TRUE(time_domain_->NextScheduledTaskQueue(&next_task_queue));
|
| @@ -283,11 +257,10 @@
|
|
|
| TEST_F(TimeDomainWithObserverTest, OnTimeDomainHasDelayedWork) {
|
| EXPECT_CALL(*observer_, OnTimeDomainHasDelayedWork(task_queue_.get()));
|
| - EXPECT_CALL(*time_domain_.get(), RequestWakeupAt(_, _));
|
| - LazyNow lazy_now = time_domain_->CreateLazyNow();
|
| - time_domain_->ScheduleDelayedWork(
|
| - task_queue_.get(), lazy_now.Now() + base::TimeDelta::FromMilliseconds(10),
|
| - &lazy_now);
|
| + EXPECT_CALL(*time_domain_.get(), RequestWakeup(_, _));
|
| + base::TimeTicks now = time_domain_->Now();
|
| + time_domain_->ScheduleDelayedWork(
|
| + task_queue_.get(), now + base::TimeDelta::FromMilliseconds(10), now);
|
| }
|
|
|
| } // namespace scheduler
|
|
|