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

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

Issue 2812703002: Revert of [scheduler] Add TaskQueue::Observer (Closed)
Patch Set: Manual Revert Created 3 years, 8 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 side-by-side diff with in-line comments
Download patch
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 f736a67882193e5d32d758a21f9e1d8fecb72388..1c47328ee3da2aae8f1fdf7ae01d81c1de47b342 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
@@ -24,17 +24,19 @@ namespace scheduler {
class MockTimeDomain : public TimeDomain {
public:
- MockTimeDomain()
- : now_(base::TimeTicks() + base::TimeDelta::FromSeconds(1)) {}
+ explicit MockTimeDomain(TimeDomain::Observer* observer)
+ : TimeDomain(observer),
+ now_(base::TimeTicks() + base::TimeDelta::FromSeconds(1)) {}
~MockTimeDomain() override {}
using TimeDomain::CancelDelayedWork;
using TimeDomain::NextScheduledRunTime;
using TimeDomain::NextScheduledTaskQueue;
+ using TimeDomain::OnQueueHasImmediateWork;
using TimeDomain::ScheduleDelayedWork;
using TimeDomain::UnregisterQueue;
- using TimeDomain::WakeUpReadyDelayedQueues;
+ using TimeDomain::WakeupReadyDelayedQueues;
// TimeSource implementation:
LazyNow CreateLazyNow() const override { return LazyNow(now_); }
@@ -51,10 +53,10 @@ class MockTimeDomain : public TimeDomain {
void OnRegisterWithTaskQueueManager(
TaskQueueManager* task_queue_manager) override {}
- MOCK_METHOD2(RequestWakeUpAt,
+ MOCK_METHOD2(RequestWakeupAt,
void(base::TimeTicks now, base::TimeTicks run_time));
- MOCK_METHOD1(CancelWakeUpAt, void(base::TimeTicks run_time));
+ MOCK_METHOD1(CancelWakeupAt, void(base::TimeTicks run_time));
void SetNow(base::TimeTicks now) { now_ = now; }
@@ -80,7 +82,7 @@ class TimeDomainTest : public testing::Test {
}
virtual MockTimeDomain* CreateMockTimeDomain() {
- return new MockTimeDomain();
+ return new MockTimeDomain(nullptr);
}
std::unique_ptr<MockTimeDomain> time_domain_;
@@ -90,7 +92,7 @@ class TimeDomainTest : public testing::Test {
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));
+ EXPECT_CALL(*time_domain_.get(), RequestWakeupAt(_, delayed_runtime));
base::TimeTicks now = time_domain_->Now();
time_domain_->ScheduleDelayedWork(task_queue_.get(), {now + delay, 0}, now);
@@ -103,15 +105,15 @@ TEST_F(TimeDomainTest, ScheduleDelayedWork) {
EXPECT_EQ(task_queue_.get(), next_task_queue);
Mock::VerifyAndClearExpectations(time_domain_.get());
- EXPECT_CALL(*time_domain_.get(), CancelWakeUpAt(_)).Times(AnyNumber());
+ EXPECT_CALL(*time_domain_.get(), CancelWakeupAt(_)).Times(AnyNumber());
}
-TEST_F(TimeDomainTest, ScheduleDelayedWorkSupersedesPreviousWakeUp) {
+TEST_F(TimeDomainTest, ScheduleDelayedWorkSupersedesPreviousWakeup) {
base::TimeDelta delay1 = base::TimeDelta::FromMilliseconds(10);
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));
+ EXPECT_CALL(*time_domain_.get(), RequestWakeupAt(_, delayed_runtime1));
base::TimeTicks now = time_domain_->Now();
time_domain_->ScheduleDelayedWork(task_queue_.get(), {delayed_runtime1, 0},
now);
@@ -122,9 +124,9 @@ TEST_F(TimeDomainTest, ScheduleDelayedWorkSupersedesPreviousWakeUp) {
Mock::VerifyAndClearExpectations(time_domain_.get());
- // Now scheduler a later wake_up, which should replace the previously
- // requested one.
- EXPECT_CALL(*time_domain_.get(), RequestWakeUpAt(_, delayed_runtime2));
+ // 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, 0},
now);
@@ -132,10 +134,10 @@ TEST_F(TimeDomainTest, ScheduleDelayedWorkSupersedesPreviousWakeUp) {
EXPECT_EQ(delayed_runtime2, next_scheduled_runtime);
Mock::VerifyAndClearExpectations(time_domain_.get());
- EXPECT_CALL(*time_domain_.get(), CancelWakeUpAt(_)).Times(AnyNumber());
+ EXPECT_CALL(*time_domain_.get(), CancelWakeupAt(_)).Times(AnyNumber());
}
-TEST_F(TimeDomainTest, RequestWakeUpAt_OnlyCalledForEarlierTasks) {
+TEST_F(TimeDomainTest, RequestWakeupAt_OnlyCalledForEarlierTasks) {
scoped_refptr<internal::TaskQueueImpl> task_queue2 = make_scoped_refptr(
new internal::TaskQueueImpl(nullptr, time_domain_.get(),
TaskQueue::Spec(TaskQueue::QueueType::TEST),
@@ -156,27 +158,27 @@ TEST_F(TimeDomainTest, RequestWakeUpAt_OnlyCalledForEarlierTasks) {
base::TimeDelta delay3 = base::TimeDelta::FromMilliseconds(30);
base::TimeDelta delay4 = base::TimeDelta::FromMilliseconds(1);
- // RequestWakeUpAt should always be called if there are no other wake_ups.
+ // RequestWakeupAt should always be called if there are no other wakeups.
base::TimeTicks now = time_domain_->Now();
- EXPECT_CALL(*time_domain_.get(), RequestWakeUpAt(_, now + delay1));
+ EXPECT_CALL(*time_domain_.get(), RequestWakeupAt(_, now + delay1));
time_domain_->ScheduleDelayedWork(task_queue_.get(), {now + delay1, 0}, now);
Mock::VerifyAndClearExpectations(time_domain_.get());
- // RequestWakeUpAt should not be called when scheduling later tasks.
- EXPECT_CALL(*time_domain_.get(), RequestWakeUpAt(_, _)).Times(0);
+ // RequestWakeupAt should not be called when scheduling later tasks.
+ EXPECT_CALL(*time_domain_.get(), RequestWakeupAt(_, _)).Times(0);
time_domain_->ScheduleDelayedWork(task_queue2.get(), {now + delay2, 0}, now);
time_domain_->ScheduleDelayedWork(task_queue3.get(), {now + delay3, 0}, now);
- // RequestWakeUpAt should be called when scheduling earlier tasks.
+ // RequestWakeupAt should be called when scheduling earlier tasks.
Mock::VerifyAndClearExpectations(time_domain_.get());
- EXPECT_CALL(*time_domain_.get(), RequestWakeUpAt(_, now + delay4));
+ EXPECT_CALL(*time_domain_.get(), RequestWakeupAt(_, now + delay4));
time_domain_->ScheduleDelayedWork(task_queue4.get(), {now + delay4, 0}, 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(), RequestWakeupAt(_, _));
+ EXPECT_CALL(*time_domain_.get(), CancelWakeupAt(_)).Times(2);
task_queue2->UnregisterTaskQueue();
task_queue3->UnregisterTaskQueue();
task_queue4->UnregisterTaskQueue();
@@ -189,11 +191,11 @@ TEST_F(TimeDomainTest, UnregisterQueue) {
"test.category", "test.category"));
base::TimeTicks now = time_domain_->Now();
- base::TimeTicks wake_up1 = now + base::TimeDelta::FromMilliseconds(10);
- EXPECT_CALL(*time_domain_.get(), RequestWakeUpAt(_, wake_up1)).Times(1);
- time_domain_->ScheduleDelayedWork(task_queue_.get(), {wake_up1, 0}, now);
- base::TimeTicks wake_up2 = now + base::TimeDelta::FromMilliseconds(100);
- time_domain_->ScheduleDelayedWork(task_queue2_.get(), {wake_up2, 0}, now);
+ base::TimeTicks wakeup1 = now + base::TimeDelta::FromMilliseconds(10);
+ EXPECT_CALL(*time_domain_.get(), RequestWakeupAt(_, wakeup1)).Times(1);
+ time_domain_->ScheduleDelayedWork(task_queue_.get(), {wakeup1, 0}, now);
+ base::TimeTicks wakeup2 = now + base::TimeDelta::FromMilliseconds(100);
+ time_domain_->ScheduleDelayedWork(task_queue2_.get(), {wakeup2, 0}, now);
TaskQueue* next_task_queue;
EXPECT_TRUE(time_domain_->NextScheduledTaskQueue(&next_task_queue));
@@ -201,8 +203,8 @@ TEST_F(TimeDomainTest, UnregisterQueue) {
testing::Mock::VerifyAndClearExpectations(time_domain_.get());
- EXPECT_CALL(*time_domain_.get(), CancelWakeUpAt(wake_up1)).Times(1);
- EXPECT_CALL(*time_domain_.get(), RequestWakeUpAt(_, wake_up2)).Times(1);
+ 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>();
@@ -211,17 +213,17 @@ TEST_F(TimeDomainTest, UnregisterQueue) {
testing::Mock::VerifyAndClearExpectations(time_domain_.get());
- EXPECT_CALL(*time_domain_.get(), CancelWakeUpAt(wake_up2)).Times(1);
+ 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) {
+TEST_F(TimeDomainTest, WakeupReadyDelayedQueues) {
base::TimeDelta delay = base::TimeDelta::FromMilliseconds(50);
base::TimeTicks now = time_domain_->Now();
base::TimeTicks delayed_runtime = now + delay;
- EXPECT_CALL(*time_domain_.get(), RequestWakeUpAt(_, delayed_runtime));
+ EXPECT_CALL(*time_domain_.get(), RequestWakeupAt(_, delayed_runtime));
time_domain_->ScheduleDelayedWork(task_queue_.get(), {delayed_runtime, 0},
now);
@@ -230,23 +232,23 @@ TEST_F(TimeDomainTest, WakeUpReadyDelayedQueues) {
EXPECT_EQ(delayed_runtime, next_run_time);
LazyNow lazy_now = time_domain_->CreateLazyNow();
- time_domain_->WakeUpReadyDelayedQueues(&lazy_now);
+ time_domain_->WakeupReadyDelayedQueues(&lazy_now);
ASSERT_TRUE(time_domain_->NextScheduledRunTime(&next_run_time));
EXPECT_EQ(delayed_runtime, next_run_time);
time_domain_->SetNow(delayed_runtime);
lazy_now = time_domain_->CreateLazyNow();
- time_domain_->WakeUpReadyDelayedQueues(&lazy_now);
+ time_domain_->WakeupReadyDelayedQueues(&lazy_now);
ASSERT_FALSE(time_domain_->NextScheduledRunTime(&next_run_time));
}
-TEST_F(TimeDomainTest, WakeUpReadyDelayedQueuesWithIdenticalRuntimes) {
+TEST_F(TimeDomainTest, WakeupReadyDelayedQueuesWithIdenticalRuntimes) {
int sequence_num = 0;
base::TimeDelta delay = base::TimeDelta::FromMilliseconds(50);
base::TimeTicks now = time_domain_->Now();
base::TimeTicks delayed_runtime = now + delay;
- EXPECT_CALL(*time_domain_.get(), RequestWakeUpAt(_, delayed_runtime));
- EXPECT_CALL(*time_domain_.get(), CancelWakeUpAt(delayed_runtime));
+ EXPECT_CALL(*time_domain_.get(), RequestWakeupAt(_, delayed_runtime));
+ EXPECT_CALL(*time_domain_.get(), CancelWakeupAt(delayed_runtime));
scoped_refptr<internal::TaskQueueImpl> task_queue2 = make_scoped_refptr(
new internal::TaskQueueImpl(nullptr, time_domain_.get(),
@@ -259,7 +261,7 @@ TEST_F(TimeDomainTest, WakeUpReadyDelayedQueuesWithIdenticalRuntimes) {
{delayed_runtime, ++sequence_num}, now);
LazyNow lazy_now = time_domain_->CreateLazyNow();
- time_domain_->WakeUpReadyDelayedQueues(&lazy_now);
+ time_domain_->WakeupReadyDelayedQueues(&lazy_now);
// The second task queue should wake up first since it has a lower sequence
// number.
@@ -274,14 +276,14 @@ TEST_F(TimeDomainTest, CancelDelayedWork) {
base::TimeTicks now = time_domain_->Now();
base::TimeTicks run_time = now + base::TimeDelta::FromMilliseconds(20);
- EXPECT_CALL(*time_domain_.get(), RequestWakeUpAt(_, run_time));
+ EXPECT_CALL(*time_domain_.get(), RequestWakeupAt(_, run_time));
time_domain_->ScheduleDelayedWork(task_queue_.get(), {run_time, 0}, now);
TaskQueue* next_task_queue;
EXPECT_TRUE(time_domain_->NextScheduledTaskQueue(&next_task_queue));
EXPECT_EQ(task_queue_.get(), next_task_queue);
- EXPECT_CALL(*time_domain_.get(), CancelWakeUpAt(run_time));
+ EXPECT_CALL(*time_domain_.get(), CancelWakeupAt(run_time));
time_domain_->CancelDelayedWork(task_queue_.get());
EXPECT_FALSE(time_domain_->NextScheduledTaskQueue(&next_task_queue));
}
@@ -295,11 +297,11 @@ TEST_F(TimeDomainTest, CancelDelayedWork_TwoQueues) {
base::TimeTicks now = time_domain_->Now();
base::TimeTicks run_time1 = now + base::TimeDelta::FromMilliseconds(20);
base::TimeTicks run_time2 = now + base::TimeDelta::FromMilliseconds(40);
- EXPECT_CALL(*time_domain_.get(), RequestWakeUpAt(_, run_time1));
+ EXPECT_CALL(*time_domain_.get(), RequestWakeupAt(_, run_time1));
time_domain_->ScheduleDelayedWork(task_queue_.get(), {run_time1, 0}, now);
Mock::VerifyAndClearExpectations(time_domain_.get());
- EXPECT_CALL(*time_domain_.get(), RequestWakeUpAt(_, _)).Times(0);
+ EXPECT_CALL(*time_domain_.get(), RequestWakeupAt(_, _)).Times(0);
time_domain_->ScheduleDelayedWork(task_queue2.get(), {run_time2, 0}, now);
Mock::VerifyAndClearExpectations(time_domain_.get());
@@ -311,8 +313,8 @@ TEST_F(TimeDomainTest, CancelDelayedWork_TwoQueues) {
ASSERT_TRUE(time_domain_->NextScheduledRunTime(&next_run_time));
EXPECT_EQ(run_time1, next_run_time);
- EXPECT_CALL(*time_domain_.get(), CancelWakeUpAt(run_time1));
- EXPECT_CALL(*time_domain_.get(), RequestWakeUpAt(_, run_time2));
+ EXPECT_CALL(*time_domain_.get(), CancelWakeupAt(run_time1));
+ EXPECT_CALL(*time_domain_.get(), RequestWakeupAt(_, run_time2));
time_domain_->CancelDelayedWork(task_queue_.get());
EXPECT_TRUE(time_domain_->NextScheduledTaskQueue(&next_task_queue));
EXPECT_EQ(task_queue2.get(), next_task_queue);
@@ -321,12 +323,45 @@ TEST_F(TimeDomainTest, CancelDelayedWork_TwoQueues) {
EXPECT_EQ(run_time2, next_run_time);
Mock::VerifyAndClearExpectations(time_domain_.get());
- EXPECT_CALL(*time_domain_.get(), RequestWakeUpAt(_, _)).Times(AnyNumber());
- EXPECT_CALL(*time_domain_.get(), CancelWakeUpAt(_)).Times(AnyNumber());
+ EXPECT_CALL(*time_domain_.get(), RequestWakeupAt(_, _)).Times(AnyNumber());
+ EXPECT_CALL(*time_domain_.get(), CancelWakeupAt(_)).Times(AnyNumber());
// Tidy up.
task_queue2->UnregisterTaskQueue();
}
+namespace {
+class MockObserver : public TimeDomain::Observer {
+ public:
+ ~MockObserver() override {}
+
+ MOCK_METHOD1(OnTimeDomainHasImmediateWork, void(TaskQueue*));
+ MOCK_METHOD1(OnTimeDomainHasDelayedWork, void(TaskQueue*));
+};
+} // namespace
+
+class TimeDomainWithObserverTest : public TimeDomainTest {
+ public:
+ MockTimeDomain* CreateMockTimeDomain() override {
+ observer_.reset(new MockObserver());
+ return new MockTimeDomain(observer_.get());
+ }
+
+ std::unique_ptr<MockObserver> observer_;
+};
+
+TEST_F(TimeDomainWithObserverTest, OnTimeDomainHasImmediateWork) {
+ EXPECT_CALL(*observer_, OnTimeDomainHasImmediateWork(task_queue_.get()));
+ time_domain_->OnQueueHasImmediateWork(task_queue_.get());
+}
+
+TEST_F(TimeDomainWithObserverTest, OnTimeDomainHasDelayedWork) {
+ EXPECT_CALL(*observer_, OnTimeDomainHasDelayedWork(task_queue_.get()));
+ EXPECT_CALL(*time_domain_.get(), RequestWakeupAt(_, _));
+ base::TimeTicks now = time_domain_->Now();
+ time_domain_->ScheduleDelayedWork(
+ task_queue_.get(), {now + base::TimeDelta::FromMilliseconds(10), 0}, now);
+}
+
} // namespace scheduler
} // namespace blink

Powered by Google App Engine
This is Rietveld 408576698