Chromium Code Reviews| Index: base/task_scheduler/scheduler_worker_pool_impl_unittest.cc |
| diff --git a/base/task_scheduler/scheduler_worker_pool_impl_unittest.cc b/base/task_scheduler/scheduler_worker_pool_impl_unittest.cc |
| index bbc6723c6671adeea5dab6f9fd9b8fc7d74073d2..abf63ea781861d88ca6d744ff8dd7f4904ef5f5d 100644 |
| --- a/base/task_scheduler/scheduler_worker_pool_impl_unittest.cc |
| +++ b/base/task_scheduler/scheduler_worker_pool_impl_unittest.cc |
| @@ -327,6 +327,29 @@ TEST_P(TaskSchedulerWorkerPoolImplTest, PostDelayedTask) { |
| task_ran.Wait(); |
| } |
| +// Verify that the RunsTasksOnCurrentThread() method of a SEQUENCED TaskRunner |
| +// returns false when called from a task that isn't part of the sequence. |
| +TEST_P(TaskSchedulerWorkerPoolImplTest, SequencedRunsTasksOnCurrentThread) { |
| + scoped_refptr<TaskRunner> task_runner( |
| + worker_pool_->CreateTaskRunnerWithTraits(TaskTraits(), GetParam())); |
| + scoped_refptr<TaskRunner> sequenced_task_runner( |
| + worker_pool_->CreateTaskRunnerWithTraits(TaskTraits(), |
| + ExecutionMode::SEQUENCED)); |
| + |
| + WaitableEvent task_ran(WaitableEvent::ResetPolicy::MANUAL, |
| + WaitableEvent::InitialState::NOT_SIGNALED); |
| + task_runner->PostTask( |
| + FROM_HERE, |
| + Bind( |
| + [](scoped_refptr<TaskRunner> sequenced_task_runner, |
| + WaitableEvent* task_ran) { |
| + EXPECT_FALSE(sequenced_task_runner->RunsTasksOnCurrentThread()); |
|
robliao
2016/09/14 15:50:27
We only ever check for false for RunsTasksOnCurren
fdoray
2016/09/14 16:56:44
This is already tested by https://cs.chromium.org/
robliao
2016/09/14 17:20:42
Gotcha. Let's add a quick comment about that here
fdoray
2016/09/15 12:19:01
Done. Added comment about TestTaskFactory in this
|
| + task_ran->Signal(); |
| + }, |
| + sequenced_task_runner, Unretained(&task_ran))); |
| + task_ran.Wait(); |
| +} |
| + |
| INSTANTIATE_TEST_CASE_P(Parallel, |
| TaskSchedulerWorkerPoolImplTest, |
| ::testing::Values(ExecutionMode::PARALLEL)); |