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 |