Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(279)

Unified Diff: base/task_scheduler/task_traits_unittest.cc

Issue 2873453002: Add base::TaskTraits::Override(). (Closed)
Patch Set: self-review Created 3 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« base/task_scheduler/task_traits.h ('K') | « base/task_scheduler/task_traits.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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
« base/task_scheduler/task_traits.h ('K') | « base/task_scheduler/task_traits.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698