Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2017 The Chromium Authors. All rights reserved. | 1 // Copyright 2017 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "base/task_scheduler/task_traits.h" | 5 #include "base/task_scheduler/task_traits.h" |
| 6 | 6 |
| 7 #include "testing/gtest/include/gtest/gtest.h" | 7 #include "testing/gtest/include/gtest/gtest.h" |
| 8 | 8 |
| 9 namespace base { | 9 namespace base { |
| 10 | 10 |
| (...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 71 constexpr TaskTraits traits_copy(traits); | 71 constexpr TaskTraits traits_copy(traits); |
| 72 EXPECT_EQ(traits.priority_set_explicitly(), | 72 EXPECT_EQ(traits.priority_set_explicitly(), |
| 73 traits_copy.priority_set_explicitly()); | 73 traits_copy.priority_set_explicitly()); |
| 74 EXPECT_EQ(traits.priority(), traits_copy.priority()); | 74 EXPECT_EQ(traits.priority(), traits_copy.priority()); |
| 75 EXPECT_EQ(traits.shutdown_behavior(), traits_copy.shutdown_behavior()); | 75 EXPECT_EQ(traits.shutdown_behavior(), traits_copy.shutdown_behavior()); |
| 76 EXPECT_EQ(traits.may_block(), traits_copy.may_block()); | 76 EXPECT_EQ(traits.may_block(), traits_copy.may_block()); |
| 77 EXPECT_EQ(traits.with_base_sync_primitives(), | 77 EXPECT_EQ(traits.with_base_sync_primitives(), |
| 78 traits_copy.with_base_sync_primitives()); | 78 traits_copy.with_base_sync_primitives()); |
| 79 } | 79 } |
| 80 | 80 |
| 81 TEST(TaskSchedulerTaskTraitsTest, MergePriority) { | |
|
gab
2017/05/09 14:32:31
Rename tests to "Override" too.
fdoray
2017/05/09 14:58:33
Done.
| |
| 82 constexpr TaskTraits left = {TaskPriority::BACKGROUND}; | |
| 83 constexpr TaskTraits right = {TaskPriority::USER_BLOCKING}; | |
| 84 constexpr TaskTraits merged = TaskTraits::Merge(left, right); | |
| 85 EXPECT_TRUE(merged.priority_set_explicitly()); | |
| 86 EXPECT_EQ(TaskPriority::USER_BLOCKING, merged.priority()); | |
| 87 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.
| |
| 88 EXPECT_FALSE(merged.may_block()); | |
| 89 EXPECT_FALSE(merged.with_base_sync_primitives()); | |
| 90 } | |
| 91 | |
| 92 TEST(TaskSchedulerTaskTraitsTest, MergeShutdownBehavior) { | |
| 93 constexpr TaskTraits left = {TaskShutdownBehavior::CONTINUE_ON_SHUTDOWN}; | |
| 94 constexpr TaskTraits right = {TaskShutdownBehavior::BLOCK_SHUTDOWN}; | |
| 95 constexpr TaskTraits merged = TaskTraits::Merge(left, right); | |
| 96 EXPECT_FALSE(merged.priority_set_explicitly()); | |
| 97 EXPECT_EQ(TaskPriority::USER_VISIBLE, merged.priority()); | |
| 98 EXPECT_EQ(TaskShutdownBehavior::BLOCK_SHUTDOWN, merged.shutdown_behavior()); | |
| 99 EXPECT_FALSE(merged.may_block()); | |
| 100 EXPECT_FALSE(merged.with_base_sync_primitives()); | |
| 101 } | |
| 102 | |
| 103 TEST(TaskSchedulerTaskTraitsTest, MergeMayBlock) { | |
| 104 { | |
| 105 constexpr TaskTraits left = {MayBlock()}; | |
| 106 constexpr TaskTraits right = {}; | |
| 107 constexpr TaskTraits merged = TaskTraits::Merge(left, right); | |
| 108 EXPECT_FALSE(merged.priority_set_explicitly()); | |
| 109 EXPECT_EQ(TaskPriority::USER_VISIBLE, merged.priority()); | |
| 110 EXPECT_EQ(TaskShutdownBehavior::SKIP_ON_SHUTDOWN, | |
| 111 merged.shutdown_behavior()); | |
| 112 EXPECT_TRUE(merged.may_block()); | |
| 113 EXPECT_FALSE(merged.with_base_sync_primitives()); | |
| 114 } | |
| 115 { | |
| 116 constexpr TaskTraits left = {}; | |
| 117 constexpr TaskTraits right = {MayBlock()}; | |
| 118 constexpr TaskTraits merged = TaskTraits::Merge(left, right); | |
| 119 EXPECT_FALSE(merged.priority_set_explicitly()); | |
| 120 EXPECT_EQ(TaskPriority::USER_VISIBLE, merged.priority()); | |
| 121 EXPECT_EQ(TaskShutdownBehavior::SKIP_ON_SHUTDOWN, | |
| 122 merged.shutdown_behavior()); | |
| 123 EXPECT_TRUE(merged.may_block()); | |
| 124 EXPECT_FALSE(merged.with_base_sync_primitives()); | |
| 125 } | |
| 126 } | |
| 127 | |
| 128 TEST(TaskSchedulerTaskTraitsTest, MergeWithBaseSyncPrimitives) { | |
| 129 { | |
| 130 constexpr TaskTraits left = {WithBaseSyncPrimitives()}; | |
| 131 constexpr TaskTraits right = {}; | |
| 132 constexpr TaskTraits merged = TaskTraits::Merge(left, right); | |
| 133 EXPECT_FALSE(merged.priority_set_explicitly()); | |
| 134 EXPECT_EQ(TaskPriority::USER_VISIBLE, merged.priority()); | |
| 135 EXPECT_EQ(TaskShutdownBehavior::SKIP_ON_SHUTDOWN, | |
| 136 merged.shutdown_behavior()); | |
| 137 EXPECT_FALSE(merged.may_block()); | |
| 138 EXPECT_TRUE(merged.with_base_sync_primitives()); | |
| 139 } | |
| 140 { | |
| 141 constexpr TaskTraits left = {}; | |
| 142 constexpr TaskTraits right = {WithBaseSyncPrimitives()}; | |
| 143 constexpr TaskTraits merged = TaskTraits::Merge(left, right); | |
| 144 EXPECT_FALSE(merged.priority_set_explicitly()); | |
| 145 EXPECT_EQ(TaskPriority::USER_VISIBLE, merged.priority()); | |
| 146 EXPECT_EQ(TaskShutdownBehavior::SKIP_ON_SHUTDOWN, | |
| 147 merged.shutdown_behavior()); | |
| 148 EXPECT_FALSE(merged.may_block()); | |
| 149 EXPECT_TRUE(merged.with_base_sync_primitives()); | |
| 150 } | |
| 151 } | |
|
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.
| |
| 152 | |
| 81 } // namespace base | 153 } // namespace base |
| OLD | NEW |