Index: base/task_scheduler/task_traits_unittest.cc |
diff --git a/base/task_scheduler/task_traits_unittest.cc b/base/task_scheduler/task_traits_unittest.cc |
index ed9065f7144ac0d20f6906879f991213f7d2b3be..ea2e23fd24d24ff7bc08114b58bfe717e9e9c31f 100644 |
--- a/base/task_scheduler/task_traits_unittest.cc |
+++ b/base/task_scheduler/task_traits_unittest.cc |
@@ -78,4 +78,76 @@ TEST(TaskSchedulerTaskTraitsTest, Copy) { |
traits_copy.with_base_sync_primitives()); |
} |
+TEST(TaskSchedulerTaskTraitsTest, MergePriority) { |
gab
2017/05/09 14:32:31
Rename tests to "Override" too.
fdoray
2017/05/09 14:58:33
Done.
|
+ constexpr TaskTraits left = {TaskPriority::BACKGROUND}; |
+ constexpr TaskTraits right = {TaskPriority::USER_BLOCKING}; |
+ constexpr TaskTraits merged = TaskTraits::Merge(left, right); |
+ EXPECT_TRUE(merged.priority_set_explicitly()); |
+ EXPECT_EQ(TaskPriority::USER_BLOCKING, merged.priority()); |
+ EXPECT_EQ(TaskShutdownBehavior::SKIP_ON_SHUTDOWN, merged.shutdown_behavior()); |
gab
2017/05/09 14:32:31
EXPECT_FALSE(shutdown_behavior_set_explitly) also
fdoray
2017/05/09 14:58:34
Done.
|
+ EXPECT_FALSE(merged.may_block()); |
+ EXPECT_FALSE(merged.with_base_sync_primitives()); |
+} |
+ |
+TEST(TaskSchedulerTaskTraitsTest, MergeShutdownBehavior) { |
+ constexpr TaskTraits left = {TaskShutdownBehavior::CONTINUE_ON_SHUTDOWN}; |
+ constexpr TaskTraits right = {TaskShutdownBehavior::BLOCK_SHUTDOWN}; |
+ constexpr TaskTraits merged = TaskTraits::Merge(left, right); |
+ EXPECT_FALSE(merged.priority_set_explicitly()); |
+ EXPECT_EQ(TaskPriority::USER_VISIBLE, merged.priority()); |
+ EXPECT_EQ(TaskShutdownBehavior::BLOCK_SHUTDOWN, merged.shutdown_behavior()); |
+ EXPECT_FALSE(merged.may_block()); |
+ EXPECT_FALSE(merged.with_base_sync_primitives()); |
+} |
+ |
+TEST(TaskSchedulerTaskTraitsTest, MergeMayBlock) { |
+ { |
+ constexpr TaskTraits left = {MayBlock()}; |
+ constexpr TaskTraits right = {}; |
+ constexpr TaskTraits merged = TaskTraits::Merge(left, right); |
+ EXPECT_FALSE(merged.priority_set_explicitly()); |
+ EXPECT_EQ(TaskPriority::USER_VISIBLE, merged.priority()); |
+ EXPECT_EQ(TaskShutdownBehavior::SKIP_ON_SHUTDOWN, |
+ merged.shutdown_behavior()); |
+ EXPECT_TRUE(merged.may_block()); |
+ EXPECT_FALSE(merged.with_base_sync_primitives()); |
+ } |
+ { |
+ constexpr TaskTraits left = {}; |
+ constexpr TaskTraits right = {MayBlock()}; |
+ constexpr TaskTraits merged = TaskTraits::Merge(left, right); |
+ EXPECT_FALSE(merged.priority_set_explicitly()); |
+ EXPECT_EQ(TaskPriority::USER_VISIBLE, merged.priority()); |
+ EXPECT_EQ(TaskShutdownBehavior::SKIP_ON_SHUTDOWN, |
+ merged.shutdown_behavior()); |
+ EXPECT_TRUE(merged.may_block()); |
+ EXPECT_FALSE(merged.with_base_sync_primitives()); |
+ } |
+} |
+ |
+TEST(TaskSchedulerTaskTraitsTest, MergeWithBaseSyncPrimitives) { |
+ { |
+ constexpr TaskTraits left = {WithBaseSyncPrimitives()}; |
+ constexpr TaskTraits right = {}; |
+ constexpr TaskTraits merged = TaskTraits::Merge(left, right); |
+ EXPECT_FALSE(merged.priority_set_explicitly()); |
+ EXPECT_EQ(TaskPriority::USER_VISIBLE, merged.priority()); |
+ EXPECT_EQ(TaskShutdownBehavior::SKIP_ON_SHUTDOWN, |
+ merged.shutdown_behavior()); |
+ EXPECT_FALSE(merged.may_block()); |
+ EXPECT_TRUE(merged.with_base_sync_primitives()); |
+ } |
+ { |
+ constexpr TaskTraits left = {}; |
+ constexpr TaskTraits right = {WithBaseSyncPrimitives()}; |
+ constexpr TaskTraits merged = TaskTraits::Merge(left, right); |
+ EXPECT_FALSE(merged.priority_set_explicitly()); |
+ EXPECT_EQ(TaskPriority::USER_VISIBLE, merged.priority()); |
+ EXPECT_EQ(TaskShutdownBehavior::SKIP_ON_SHUTDOWN, |
+ merged.shutdown_behavior()); |
+ EXPECT_FALSE(merged.may_block()); |
+ EXPECT_TRUE(merged.with_base_sync_primitives()); |
+ } |
+} |
gab
2017/05/09 14:32:31
Also test a big override of all values with some o
fdoray
2017/05/09 14:58:33
Done.
|
+ |
} // namespace base |