Index: base/task_scheduler/test_task_factory.cc |
diff --git a/base/task_scheduler/test_task_factory.cc b/base/task_scheduler/test_task_factory.cc |
index 5edf3dda17a16ed39b26e0ac71b1be1781c6592c..8de786c6f7c3dbd49e72b15c80ae041b40dcf3c1 100644 |
--- a/base/task_scheduler/test_task_factory.cc |
+++ b/base/task_scheduler/test_task_factory.cc |
@@ -9,6 +9,8 @@ |
#include "base/location.h" |
#include "base/logging.h" |
#include "base/synchronization/waitable_event.h" |
+#include "base/thread_task_runner_handle.h" |
+#include "base/threading/sequenced_task_runner_handle.h" |
#include "testing/gtest/include/gtest/gtest.h" |
namespace base { |
@@ -52,6 +54,27 @@ void TestTaskFactory::RunTaskCallback(size_t task_index, |
EXPECT_TRUE(task_runner_->RunsTasksOnCurrentThread()); |
+ // Verify TaskRunnerHandles are set as expected in the task's scope. |
+ switch (execution_mode_) { |
gab
2016/04/27 15:26:59
Note to self (realized this while doing another re
gab
2016/04/27 20:21:40
Done.
|
+ case ExecutionMode::PARALLEL: |
+ EXPECT_FALSE(ThreadTaskRunnerHandle::IsSet()); |
+ EXPECT_FALSE(SequencedTaskRunnerHandle::IsSet()); |
+ break; |
+ case ExecutionMode::SEQUENCED: |
+ EXPECT_FALSE(ThreadTaskRunnerHandle::IsSet()); |
+ EXPECT_TRUE(SequencedTaskRunnerHandle::IsSet()); |
+ EXPECT_EQ(task_runner_, SequencedTaskRunnerHandle::Get()); |
+ break; |
+ case ExecutionMode::SINGLE_THREADED: |
+ // SequencedTaskRunnerHandle inherits from ThreadTaskRunnerHandle so |
+ // both are expected to be "set" in the SINGLE_THREADED case. |
+ EXPECT_TRUE(ThreadTaskRunnerHandle::IsSet()); |
+ EXPECT_TRUE(SequencedTaskRunnerHandle::IsSet()); |
+ EXPECT_EQ(task_runner_, ThreadTaskRunnerHandle::Get()); |
+ EXPECT_EQ(task_runner_, SequencedTaskRunnerHandle::Get()); |
+ break; |
+ } |
+ |
{ |
AutoLock auto_lock(lock_); |