Chromium Code Reviews| 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 |