Index: third_party/WebKit/Source/platform/scheduler/base/task_queue_manager_unittest.cc |
diff --git a/third_party/WebKit/Source/platform/scheduler/base/task_queue_manager_unittest.cc b/third_party/WebKit/Source/platform/scheduler/base/task_queue_manager_unittest.cc |
index b8d18c42ef451d713ec8544ffa654125901e3634..a7883ec293b89ce99d9fe7deef71c336a4e18353 100644 |
--- a/third_party/WebKit/Source/platform/scheduler/base/task_queue_manager_unittest.cc |
+++ b/third_party/WebKit/Source/platform/scheduler/base/task_queue_manager_unittest.cc |
@@ -1763,380 +1763,6 @@ TEST_F(TaskQueueManagerTest, CurrentlyExecutingTaskQueue_NestedLoop) { |
EXPECT_EQ(nullptr, manager_->currently_executing_task_queue()); |
} |
-TEST_F(TaskQueueManagerTest, NullHandleConvertsToFalse) { |
- EXPECT_FALSE(TaskQueue::TaskHandle()); |
-} |
- |
-TEST_F(TaskQueueManagerTest, PostCancellableTask) { |
- Initialize(1u); |
- |
- std::vector<EnqueueOrder> run_order; |
- runners_[0]->PostCancellableDelayedTask( |
- FROM_HERE, base::Bind(&TestTask, 1, &run_order), base::TimeDelta()); |
- |
- test_task_runner_->RunUntilIdle(); |
- EXPECT_THAT(run_order, ElementsAre(1)); |
-} |
- |
-TEST_F(TaskQueueManagerTest, PostCancellableTask_AndCancel_OnIncomingQueue) { |
- Initialize(1u); |
- |
- std::vector<EnqueueOrder> run_order; |
- TaskQueue::TaskHandle handle = runners_[0]->PostCancellableDelayedTask( |
- FROM_HERE, base::Bind(&TestTask, 1, &run_order), base::TimeDelta()); |
- EXPECT_TRUE(handle); |
- |
- EXPECT_TRUE(runners_[0]->IsTaskPending(handle)); |
- EXPECT_TRUE(runners_[0]->CancelTask(handle)); |
- EXPECT_FALSE(runners_[0]->IsTaskPending(handle)); |
- test_task_runner_->RunUntilIdle(); |
- EXPECT_TRUE(run_order.empty()); |
-} |
- |
-TEST_F(TaskQueueManagerTest, PostThreeTasks_AndCancelOne_OnIncomingQueue) { |
- Initialize(1u); |
- |
- std::vector<EnqueueOrder> run_order; |
- runners_[0]->PostCancellableDelayedTask( |
- FROM_HERE, base::Bind(&TestTask, 1, &run_order), base::TimeDelta()); |
- |
- TaskQueue::TaskHandle handle = runners_[0]->PostCancellableDelayedTask( |
- FROM_HERE, base::Bind(&TestTask, 2, &run_order), base::TimeDelta()); |
- EXPECT_TRUE(handle); |
- |
- runners_[0]->PostCancellableDelayedTask( |
- FROM_HERE, base::Bind(&TestTask, 3, &run_order), base::TimeDelta()); |
- |
- EXPECT_TRUE(runners_[0]->IsTaskPending(handle)); |
- EXPECT_TRUE(runners_[0]->CancelTask(handle)); |
- EXPECT_FALSE(runners_[0]->IsTaskPending(handle)); |
- test_task_runner_->RunUntilIdle(); |
- EXPECT_THAT(run_order, ElementsAre(1, 3)); |
-} |
- |
-TEST_F(TaskQueueManagerTest, PostCancellableTask_AndCancel_OnWorkQueue) { |
- Initialize(1u); |
- |
- std::vector<EnqueueOrder> run_order; |
- TaskQueue::TaskHandle handle = runners_[0]->PostCancellableDelayedTask( |
- FROM_HERE, base::Bind(&TestTask, 1, &run_order), base::TimeDelta()); |
- EXPECT_TRUE(handle); |
- |
- // Force the task onto the work queue. |
- UpdateWorkQueues(LazyNow(now_src_.get())); |
- |
- EXPECT_TRUE(runners_[0]->IsTaskPending(handle)); |
- EXPECT_TRUE(runners_[0]->CancelTask(handle)); |
- EXPECT_FALSE(runners_[0]->IsTaskPending(handle)); |
- test_task_runner_->RunUntilIdle(); |
- EXPECT_TRUE(run_order.empty()); |
-} |
- |
-TEST_F(TaskQueueManagerTest, PostThreeTasks_AndCancelOne_OnWorkQueue) { |
- Initialize(1u); |
- |
- std::vector<EnqueueOrder> run_order; |
- runners_[0]->PostCancellableDelayedTask( |
- FROM_HERE, base::Bind(&TestTask, 1, &run_order), base::TimeDelta()); |
- |
- TaskQueue::TaskHandle handle = runners_[0]->PostCancellableDelayedTask( |
- FROM_HERE, base::Bind(&TestTask, 2, &run_order), base::TimeDelta()); |
- EXPECT_TRUE(handle); |
- |
- runners_[0]->PostCancellableDelayedTask( |
- FROM_HERE, base::Bind(&TestTask, 3, &run_order), base::TimeDelta()); |
- |
- // Force the tasks onto the work queue. |
- UpdateWorkQueues(LazyNow(now_src_.get())); |
- |
- EXPECT_TRUE(runners_[0]->IsTaskPending(handle)); |
- EXPECT_TRUE(runners_[0]->CancelTask(handle)); |
- EXPECT_FALSE(runners_[0]->IsTaskPending(handle)); |
- test_task_runner_->RunUntilIdle(); |
- EXPECT_THAT(run_order, ElementsAre(1, 3)); |
-} |
- |
-TEST_F(TaskQueueManagerTest, PostThreeTasksOnDifferentQueues_AndCancelOne) { |
- Initialize(3u); |
- |
- std::vector<EnqueueOrder> run_order; |
- runners_[0]->PostCancellableDelayedTask( |
- FROM_HERE, base::Bind(&TestTask, 1, &run_order), base::TimeDelta()); |
- |
- TaskQueue::TaskHandle handle = runners_[1]->PostCancellableDelayedTask( |
- FROM_HERE, base::Bind(&TestTask, 2, &run_order), base::TimeDelta()); |
- EXPECT_TRUE(handle); |
- |
- runners_[2]->PostCancellableDelayedTask( |
- FROM_HERE, base::Bind(&TestTask, 3, &run_order), base::TimeDelta()); |
- |
- // Force the tasks onto the work queues. |
- UpdateWorkQueues(LazyNow(now_src_.get())); |
- |
- EXPECT_TRUE(runners_[1]->IsTaskPending(handle)); |
- EXPECT_TRUE(runners_[1]->CancelTask(handle)); |
- EXPECT_FALSE(runners_[1]->IsTaskPending(handle)); |
- test_task_runner_->RunUntilIdle(); |
- EXPECT_THAT(run_order, ElementsAre(1, 3)); |
-} |
- |
-TEST_F(TaskQueueManagerTest, TryToCancelTaskAfterItsRun) { |
- Initialize(1u); |
- |
- std::vector<EnqueueOrder> run_order; |
- TaskQueue::TaskHandle handle = runners_[0]->PostCancellableDelayedTask( |
- FROM_HERE, base::Bind(&TestTask, 1, &run_order), base::TimeDelta()); |
- EXPECT_TRUE(handle); |
- |
- EXPECT_TRUE(runners_[0]->IsTaskPending(handle)); |
- test_task_runner_->RunUntilIdle(); |
- EXPECT_FALSE(runners_[0]->IsTaskPending(handle)); |
- EXPECT_THAT(run_order, ElementsAre(1)); |
- |
- EXPECT_FALSE(runners_[0]->CancelTask(handle)); |
-} |
- |
-TEST_F(TaskQueueManagerTest, PostCancellableDelayedTask) { |
- Initialize(1u); |
- |
- std::vector<EnqueueOrder> run_order; |
- runners_[0]->PostCancellableDelayedTask(FROM_HERE, |
- base::Bind(&TestTask, 1, &run_order), |
- base::TimeDelta::FromMilliseconds(1)); |
- |
- test_task_runner_->RunForPeriod(base::TimeDelta::FromMilliseconds(1)); |
- EXPECT_THAT(run_order, ElementsAre(1)); |
-} |
- |
-TEST_F(TaskQueueManagerTest, |
- PostCancellableDelayedTask_AndCancel_OnIncomingQueue) { |
- Initialize(1u); |
- |
- std::vector<EnqueueOrder> run_order; |
- TaskQueue::TaskHandle handle = runners_[0]->PostCancellableDelayedTask( |
- FROM_HERE, base::Bind(&TestTask, 1, &run_order), |
- base::TimeDelta::FromMilliseconds(1)); |
- EXPECT_TRUE(handle); |
- |
- EXPECT_TRUE(runners_[0]->IsTaskPending(handle)); |
- EXPECT_TRUE(runners_[0]->CancelTask(handle)); |
- EXPECT_FALSE(runners_[0]->IsTaskPending(handle)); |
- test_task_runner_->RunForPeriod(base::TimeDelta::FromMilliseconds(1)); |
- EXPECT_TRUE(run_order.empty()); |
-} |
- |
-TEST_F(TaskQueueManagerTest, |
- PostThreeDelayedTasks_AndCancelOne_OnIncomingQueue) { |
- Initialize(1u); |
- |
- std::vector<EnqueueOrder> run_order; |
- runners_[0]->PostCancellableDelayedTask(FROM_HERE, |
- base::Bind(&TestTask, 1, &run_order), |
- base::TimeDelta::FromMilliseconds(3)); |
- |
- TaskQueue::TaskHandle handle = runners_[0]->PostCancellableDelayedTask( |
- FROM_HERE, base::Bind(&TestTask, 2, &run_order), |
- base::TimeDelta::FromMilliseconds(2)); |
- EXPECT_TRUE(handle); |
- |
- runners_[0]->PostCancellableDelayedTask(FROM_HERE, |
- base::Bind(&TestTask, 3, &run_order), |
- base::TimeDelta::FromMilliseconds(1)); |
- |
- EXPECT_TRUE(runners_[0]->IsTaskPending(handle)); |
- EXPECT_TRUE(runners_[0]->CancelTask(handle)); |
- EXPECT_FALSE(runners_[0]->IsTaskPending(handle)); |
- test_task_runner_->RunForPeriod(base::TimeDelta::FromMilliseconds(3)); |
- EXPECT_THAT(run_order, ElementsAre(3, 1)); |
-} |
- |
-TEST_F(TaskQueueManagerTest, DelayedTaskCancellationRemovesWakeup) { |
- Initialize(1u); |
- |
- std::vector<EnqueueOrder> run_order; |
- TaskQueue::TaskHandle handle = runners_[0]->PostCancellableDelayedTask( |
- FROM_HERE, base::Bind(&TestTask, 1, &run_order), |
- base::TimeDelta::FromMilliseconds(1)); |
- EXPECT_TRUE(handle); |
- |
- EXPECT_TRUE(runners_[0]->CancelTask(handle)); |
- |
- base::TimeTicks dummy; |
- EXPECT_FALSE(manager_->real_time_domain()->NextScheduledRunTime(&dummy)); |
-} |
- |
-TEST_F(TaskQueueManagerTest, DelayedTaskCancellationDoesntRemoveWakeupCaseA) { |
- Initialize(1u); |
- |
- base::TimeTicks start_time = manager_->delegate()->NowTicks(); |
- |
- std::vector<EnqueueOrder> run_order; |
- runners_[0]->PostCancellableDelayedTask(FROM_HERE, |
- base::Bind(&TestTask, 1, &run_order), |
- base::TimeDelta::FromMilliseconds(1)); |
- |
- TaskQueue::TaskHandle handle = runners_[0]->PostCancellableDelayedTask( |
- FROM_HERE, base::Bind(&TestTask, 2, &run_order), |
- base::TimeDelta::FromMilliseconds(1)); |
- EXPECT_TRUE(handle); |
- |
- EXPECT_TRUE(runners_[0]->CancelTask(handle)); |
- |
- base::TimeTicks run_time; |
- EXPECT_TRUE(manager_->real_time_domain()->NextScheduledRunTime(&run_time)); |
- EXPECT_EQ(run_time, start_time + base::TimeDelta::FromMilliseconds(1)); |
-} |
- |
-TEST_F(TaskQueueManagerTest, DelayedTaskCancellationDoesntRemoveWakeupCaseB) { |
- Initialize(1u); |
- |
- base::TimeTicks start_time = manager_->delegate()->NowTicks(); |
- |
- std::vector<EnqueueOrder> run_order; |
- TaskQueue::TaskHandle handle = runners_[0]->PostCancellableDelayedTask( |
- FROM_HERE, base::Bind(&TestTask, 1, &run_order), |
- base::TimeDelta::FromMilliseconds(1)); |
- EXPECT_TRUE(handle); |
- |
- runners_[0]->PostCancellableDelayedTask(FROM_HERE, |
- base::Bind(&TestTask, 2, &run_order), |
- base::TimeDelta::FromMilliseconds(1)); |
- |
- EXPECT_TRUE(runners_[0]->CancelTask(handle)); |
- |
- base::TimeTicks run_time; |
- EXPECT_TRUE(manager_->real_time_domain()->NextScheduledRunTime(&run_time)); |
- EXPECT_EQ(run_time, start_time + base::TimeDelta::FromMilliseconds(1)); |
-} |
- |
-TEST_F(TaskQueueManagerTest, DelayedTaskCancellationRemovesMiddleWakeup) { |
- Initialize(1u); |
- |
- base::TimeTicks start_time = manager_->delegate()->NowTicks(); |
- |
- std::vector<EnqueueOrder> run_order; |
- // Note the TimeDomain doesn't attempt to clear the next wakeup. |
- runners_[0]->PostCancellableDelayedTask(FROM_HERE, |
- base::Bind(&TestTask, 1, &run_order), |
- base::TimeDelta::FromMilliseconds(1)); |
- |
- TaskQueue::TaskHandle handle = runners_[0]->PostCancellableDelayedTask( |
- FROM_HERE, base::Bind(&TestTask, 2, &run_order), |
- base::TimeDelta::FromMilliseconds(2)); |
- EXPECT_TRUE(handle); |
- |
- runners_[0]->PostCancellableDelayedTask( |
- FROM_HERE, base::Bind(&TestTask, 1, &run_order), |
- base::TimeDelta::FromMilliseconds(10)); |
- |
- // But it should clear subsequent ones. |
- EXPECT_TRUE(runners_[0]->CancelTask(handle)); |
- test_task_runner_->RunForPeriod(base::TimeDelta::FromMilliseconds(1)); |
- |
- base::TimeTicks run_time; |
- EXPECT_TRUE(manager_->real_time_domain()->NextScheduledRunTime(&run_time)); |
- EXPECT_EQ(run_time, start_time + base::TimeDelta::FromMilliseconds(10)); |
-} |
- |
-TEST_F(TaskQueueManagerTest, PostDelayedCancellableTask_AndCancel_OnWorkQueue) { |
- Initialize(1u); |
- |
- std::vector<EnqueueOrder> run_order; |
- TaskQueue::TaskHandle handle = runners_[0]->PostCancellableDelayedTask( |
- FROM_HERE, base::Bind(&TestTask, 1, &run_order), |
- base::TimeDelta::FromMilliseconds(1)); |
- EXPECT_TRUE(handle); |
- |
- // Force the task onto the work queue. |
- now_src_->Advance(base::TimeDelta::FromMilliseconds(10)); |
- UpdateWorkQueues(LazyNow(now_src_.get())); |
- |
- EXPECT_TRUE(runners_[0]->IsTaskPending(handle)); |
- EXPECT_TRUE(runners_[0]->CancelTask(handle)); |
- EXPECT_FALSE(runners_[0]->IsTaskPending(handle)); |
- test_task_runner_->RunUntilIdle(); |
- EXPECT_TRUE(run_order.empty()); |
-} |
- |
-TEST_F(TaskQueueManagerTest, PostThreeDelayedTasks_AndCancelOne_OnWorkQueue) { |
- Initialize(1u); |
- |
- std::vector<EnqueueOrder> run_order; |
- runners_[0]->PostCancellableDelayedTask(FROM_HERE, |
- base::Bind(&TestTask, 1, &run_order), |
- base::TimeDelta::FromMilliseconds(3)); |
- |
- TaskQueue::TaskHandle handle = runners_[0]->PostCancellableDelayedTask( |
- FROM_HERE, base::Bind(&TestTask, 2, &run_order), |
- base::TimeDelta::FromMilliseconds(2)); |
- EXPECT_TRUE(handle); |
- |
- runners_[0]->PostCancellableDelayedTask(FROM_HERE, |
- base::Bind(&TestTask, 3, &run_order), |
- base::TimeDelta::FromMilliseconds(1)); |
- |
- // Force the tasks onto the work queue. |
- now_src_->Advance(base::TimeDelta::FromMilliseconds(10)); |
- UpdateWorkQueues(LazyNow(now_src_.get())); |
- |
- EXPECT_TRUE(runners_[0]->IsTaskPending(handle)); |
- EXPECT_TRUE(runners_[0]->CancelTask(handle)); |
- EXPECT_FALSE(runners_[0]->IsTaskPending(handle)); |
- test_task_runner_->RunUntilIdle(); |
- EXPECT_THAT(run_order, ElementsAre(3, 1)); |
-} |
- |
-TEST_F(TaskQueueManagerTest, BulkPostingDelayedTasks_AndCancelOnWorkQueue) { |
- Initialize(1u); |
- |
- const size_t num_iterations = 1000; |
- std::vector<EnqueueOrder> run_order; |
- std::vector<TaskQueue::TaskHandle> handles(num_iterations); |
- |
- for (size_t i = 0; i < num_iterations; i++) { |
- handles[i] = runners_[0]->PostCancellableDelayedTask( |
- FROM_HERE, base::Bind(&TestTask, i, &run_order), |
- base::TimeDelta::FromMilliseconds(1000)); |
- |
- if (i % 4 == 0) |
- now_src_->Advance(base::TimeDelta::FromMilliseconds(1)); |
- } |
- |
- // Force the tasks onto the work queue. |
- now_src_->Advance(base::TimeDelta::FromMilliseconds(2000)); |
- UpdateWorkQueues(LazyNow(now_src_.get())); |
- |
- // Cancel three timers. |
- EXPECT_TRUE(runners_[0]->CancelTask(handles[123])); |
- EXPECT_TRUE(runners_[0]->CancelTask(handles[456])); |
- EXPECT_TRUE(runners_[0]->CancelTask(handles[789])); |
- |
- test_task_runner_->RunUntilIdle(); |
- |
- // Make sure all tasks bar the canceled ones ran. |
- EXPECT_EQ(num_iterations - 3, run_order.size()); |
- EXPECT_THAT(run_order, Not(Contains(123))); |
- EXPECT_THAT(run_order, Not(Contains(456))); |
- EXPECT_THAT(run_order, Not(Contains(789))); |
-} |
- |
-TEST_F(TaskQueueManagerTest, TryToCancelDelayedTaskAfterItsRun) { |
- Initialize(1u); |
- |
- std::vector<EnqueueOrder> run_order; |
- TaskQueue::TaskHandle handle = runners_[0]->PostCancellableDelayedTask( |
- FROM_HERE, base::Bind(&TestTask, 1, &run_order), |
- base::TimeDelta::FromMilliseconds(1)); |
- EXPECT_TRUE(handle); |
- |
- EXPECT_TRUE(runners_[0]->IsTaskPending(handle)); |
- test_task_runner_->RunForPeriod(base::TimeDelta::FromMilliseconds(2)); |
- EXPECT_FALSE(runners_[0]->IsTaskPending(handle)); |
- EXPECT_THAT(run_order, ElementsAre(1)); |
- |
- EXPECT_FALSE(runners_[0]->CancelTask(handle)); |
-} |
- |
void OnTraceDataCollected(base::Closure quit_closure, |
base::trace_event::TraceResultBuffer* buffer, |
const scoped_refptr<base::RefCountedString>& json, |