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)); |