OLD | NEW |
1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 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 "components/task_scheduler_util/common/variations_util.h" | 5 #include "components/task_scheduler_util/common/variations_util.h" |
6 | 6 |
7 #include <map> | 7 #include <map> |
8 #include <string> | 8 #include <string> |
9 #include <vector> | 9 #include <vector> |
10 | 10 |
11 #include "build/build_config.h" | 11 #include "build/build_config.h" |
12 #include "base/command_line.h" | 12 #include "base/command_line.h" |
13 #include "base/macros.h" | 13 #include "base/macros.h" |
14 #include "base/metrics/field_trial.h" | 14 #include "base/metrics/field_trial.h" |
15 #include "base/task_scheduler/scheduler_worker_params.h" | 15 #include "base/task_scheduler/scheduler_worker_params.h" |
16 #include "base/task_scheduler/scheduler_worker_pool_params.h" | 16 #include "base/task_scheduler/scheduler_worker_pool_params.h" |
17 #include "base/threading/platform_thread.h" | |
18 #include "components/variations/variations_associated_data.h" | 17 #include "components/variations/variations_associated_data.h" |
19 #include "testing/gtest/include/gtest/gtest.h" | 18 #include "testing/gtest/include/gtest/gtest.h" |
20 | 19 |
21 namespace task_scheduler_util { | 20 namespace task_scheduler_util { |
22 | 21 |
23 namespace { | 22 namespace { |
24 | 23 |
25 using StandbyThreadPolicy = | 24 using StandbyThreadPolicy = |
26 base::SchedulerWorkerPoolParams::StandbyThreadPolicy; | 25 base::SchedulerWorkerPoolParams::StandbyThreadPolicy; |
27 using ThreadPriority = base::ThreadPriority; | 26 using SchedulerBackwardCompatibility = base::SchedulerBackwardCompatibility; |
28 | 27 |
29 #if !defined(OS_IOS) | 28 #if !defined(OS_IOS) |
30 constexpr char kFieldTrialName[] = "BrowserScheduler"; | 29 constexpr char kFieldTrialName[] = "BrowserScheduler"; |
31 constexpr char kFieldTrialTestGroup[] = "Test"; | 30 constexpr char kFieldTrialTestGroup[] = "Test"; |
32 constexpr char kTaskSchedulerVariationParamsSwitch[] = | 31 constexpr char kTaskSchedulerVariationParamsSwitch[] = |
33 "task-scheduler-variation-params"; | 32 "task-scheduler-variation-params"; |
34 #endif // !defined(OS_IOS) | 33 #endif // !defined(OS_IOS) |
35 | 34 |
36 std::vector<SchedulerImmutableWorkerPoolParams> GetImmutableWorkerPoolParams() { | |
37 std::vector<SchedulerImmutableWorkerPoolParams> constant_worker_pool_params; | |
38 constant_worker_pool_params.emplace_back("Background", | |
39 ThreadPriority::BACKGROUND); | |
40 constant_worker_pool_params.emplace_back("BackgroundFileIO", | |
41 ThreadPriority::BACKGROUND); | |
42 constant_worker_pool_params.emplace_back("Foreground", | |
43 ThreadPriority::NORMAL); | |
44 constant_worker_pool_params.emplace_back( | |
45 "ForegroundFileIO", ThreadPriority::NORMAL, | |
46 base::SchedulerBackwardCompatibility::INIT_COM_STA); | |
47 return constant_worker_pool_params; | |
48 } | |
49 | |
50 class TaskSchedulerUtilVariationsUtilTest : public testing::Test { | 35 class TaskSchedulerUtilVariationsUtilTest : public testing::Test { |
51 public: | 36 public: |
52 TaskSchedulerUtilVariationsUtilTest() : field_trial_list_(nullptr) {} | 37 TaskSchedulerUtilVariationsUtilTest() : field_trial_list_(nullptr) {} |
53 ~TaskSchedulerUtilVariationsUtilTest() override { | 38 ~TaskSchedulerUtilVariationsUtilTest() override { |
54 // Ensure that the maps are cleared between tests, since they are stored as | 39 // Ensure that the maps are cleared between tests, since they are stored as |
55 // process singletons. | 40 // process singletons. |
56 variations::testing::ClearAllVariationIDs(); | 41 variations::testing::ClearAllVariationIDs(); |
57 variations::testing::ClearAllVariationParams(); | 42 variations::testing::ClearAllVariationParams(); |
58 } | 43 } |
59 | 44 |
60 private: | 45 private: |
61 base::FieldTrialList field_trial_list_; | 46 base::FieldTrialList field_trial_list_; |
62 | 47 |
63 DISALLOW_COPY_AND_ASSIGN(TaskSchedulerUtilVariationsUtilTest); | 48 DISALLOW_COPY_AND_ASSIGN(TaskSchedulerUtilVariationsUtilTest); |
64 }; | 49 }; |
65 | 50 |
66 } // namespace | 51 } // namespace |
67 | 52 |
68 TEST_F(TaskSchedulerUtilVariationsUtilTest, OrderingParams5) { | 53 TEST_F(TaskSchedulerUtilVariationsUtilTest, OrderingParams5) { |
69 std::map<std::string, std::string> variation_params; | 54 std::map<std::string, std::string> variation_params; |
70 variation_params["Background"] = "1;1;1;0;42"; | 55 variation_params["RendererBackground"] = "1;1;1;0;42"; |
71 variation_params["BackgroundFileIO"] = "2;2;1;0;52"; | 56 variation_params["RendererBackgroundBlocking"] = "2;2;1;0;52"; |
72 variation_params["Foreground"] = "4;4;1;0;62"; | 57 variation_params["RendererForeground"] = "4;4;1;0;62"; |
73 variation_params["ForegroundFileIO"] = "8;8;1;0;72"; | 58 variation_params["RendererForegroundBlocking"] = "8;8;1;0;72"; |
74 | 59 |
75 auto params_vector = | 60 auto init_params = GetTaskSchedulerInitParams( |
76 GetWorkerPoolParams(GetImmutableWorkerPoolParams(), variation_params); | 61 "Renderer", variation_params, |
77 ASSERT_EQ(4U, params_vector.size()); | 62 base::SchedulerBackwardCompatibility::INIT_COM_STA); |
| 63 ASSERT_TRUE(init_params); |
78 | 64 |
79 EXPECT_EQ("Background", params_vector[0].name()); | 65 EXPECT_EQ(StandbyThreadPolicy::ONE, |
80 EXPECT_EQ(ThreadPriority::BACKGROUND, params_vector[0].priority_hint()); | 66 init_params->background_worker_pool_params.standby_thread_policy()); |
81 EXPECT_EQ(StandbyThreadPolicy::ONE, params_vector[0].standby_thread_policy()); | 67 EXPECT_EQ(1U, init_params->background_worker_pool_params.max_threads()); |
82 EXPECT_EQ(1U, params_vector[0].max_threads()); | 68 EXPECT_EQ( |
83 EXPECT_EQ(base::TimeDelta::FromMilliseconds(42), | 69 base::TimeDelta::FromMilliseconds(42), |
84 params_vector[0].suggested_reclaim_time()); | 70 init_params->background_worker_pool_params.suggested_reclaim_time()); |
| 71 EXPECT_EQ( |
| 72 base::SchedulerBackwardCompatibility::DISABLED, |
| 73 init_params->background_worker_pool_params.backward_compatibility()); |
| 74 |
| 75 EXPECT_EQ(StandbyThreadPolicy::ONE, |
| 76 init_params->background_blocking_worker_pool_params |
| 77 .standby_thread_policy()); |
| 78 EXPECT_EQ(2U, |
| 79 init_params->background_blocking_worker_pool_params.max_threads()); |
| 80 EXPECT_EQ(base::TimeDelta::FromMilliseconds(52), |
| 81 init_params->background_blocking_worker_pool_params |
| 82 .suggested_reclaim_time()); |
85 EXPECT_EQ(base::SchedulerBackwardCompatibility::DISABLED, | 83 EXPECT_EQ(base::SchedulerBackwardCompatibility::DISABLED, |
86 params_vector[0].backward_compatibility()); | 84 init_params->background_blocking_worker_pool_params |
| 85 .backward_compatibility()); |
87 | 86 |
88 EXPECT_EQ("BackgroundFileIO", params_vector[1].name()); | 87 EXPECT_EQ(StandbyThreadPolicy::ONE, |
89 EXPECT_EQ(ThreadPriority::BACKGROUND, params_vector[1].priority_hint()); | 88 init_params->foreground_worker_pool_params.standby_thread_policy()); |
90 EXPECT_EQ(StandbyThreadPolicy::ONE, params_vector[1].standby_thread_policy()); | 89 EXPECT_EQ(4U, init_params->foreground_worker_pool_params.max_threads()); |
91 EXPECT_EQ(2U, params_vector[1].max_threads()); | 90 EXPECT_EQ( |
92 EXPECT_EQ(base::TimeDelta::FromMilliseconds(52), | 91 base::TimeDelta::FromMilliseconds(62), |
93 params_vector[1].suggested_reclaim_time()); | 92 init_params->foreground_worker_pool_params.suggested_reclaim_time()); |
94 EXPECT_EQ(base::SchedulerBackwardCompatibility::DISABLED, | 93 EXPECT_EQ( |
95 params_vector[1].backward_compatibility()); | 94 base::SchedulerBackwardCompatibility::DISABLED, |
| 95 init_params->foreground_worker_pool_params.backward_compatibility()); |
96 | 96 |
97 EXPECT_EQ("Foreground", params_vector[2].name()); | 97 EXPECT_EQ(StandbyThreadPolicy::ONE, |
98 EXPECT_EQ(ThreadPriority::NORMAL, params_vector[2].priority_hint()); | 98 init_params->foreground_blocking_worker_pool_params |
99 EXPECT_EQ(StandbyThreadPolicy::ONE, params_vector[2].standby_thread_policy()); | 99 .standby_thread_policy()); |
100 EXPECT_EQ(4U, params_vector[2].max_threads()); | 100 EXPECT_EQ(8U, |
101 EXPECT_EQ(base::TimeDelta::FromMilliseconds(62), | 101 init_params->foreground_blocking_worker_pool_params.max_threads()); |
102 params_vector[2].suggested_reclaim_time()); | |
103 EXPECT_EQ(base::SchedulerBackwardCompatibility::DISABLED, | |
104 params_vector[2].backward_compatibility()); | |
105 | |
106 EXPECT_EQ("ForegroundFileIO", params_vector[3].name()); | |
107 EXPECT_EQ(ThreadPriority::NORMAL, params_vector[3].priority_hint()); | |
108 EXPECT_EQ(StandbyThreadPolicy::ONE, params_vector[3].standby_thread_policy()); | |
109 EXPECT_EQ(8U, params_vector[3].max_threads()); | |
110 EXPECT_EQ(base::TimeDelta::FromMilliseconds(72), | 102 EXPECT_EQ(base::TimeDelta::FromMilliseconds(72), |
111 params_vector[3].suggested_reclaim_time()); | 103 init_params->foreground_blocking_worker_pool_params |
| 104 .suggested_reclaim_time()); |
112 EXPECT_EQ(base::SchedulerBackwardCompatibility::INIT_COM_STA, | 105 EXPECT_EQ(base::SchedulerBackwardCompatibility::INIT_COM_STA, |
113 params_vector[3].backward_compatibility()); | 106 init_params->foreground_blocking_worker_pool_params |
| 107 .backward_compatibility()); |
114 } | 108 } |
115 | 109 |
116 TEST_F(TaskSchedulerUtilVariationsUtilTest, OrderingParams6) { | 110 TEST_F(TaskSchedulerUtilVariationsUtilTest, OrderingParams6) { |
117 std::map<std::string, std::string> variation_params; | 111 std::map<std::string, std::string> variation_params; |
118 variation_params["Background"] = "1;1;1;0;42;lazy"; | 112 variation_params["RendererBackground"] = "1;1;1;0;42;lazy"; |
119 variation_params["BackgroundFileIO"] = "2;2;1;0;52;one"; | 113 variation_params["RendererBackgroundBlocking"] = "2;2;1;0;52;one"; |
120 variation_params["Foreground"] = "4;4;1;0;62;lazy"; | 114 variation_params["RendererForeground"] = "4;4;1;0;62;lazy"; |
121 variation_params["ForegroundFileIO"] = "8;8;1;0;72;one"; | 115 variation_params["RendererForegroundBlocking"] = "8;8;1;0;72;one"; |
122 | 116 |
123 auto params_vector = | 117 auto init_params = GetTaskSchedulerInitParams( |
124 GetWorkerPoolParams(GetImmutableWorkerPoolParams(), variation_params); | 118 "Renderer", variation_params, |
125 ASSERT_EQ(4U, params_vector.size()); | 119 base::SchedulerBackwardCompatibility::INIT_COM_STA); |
| 120 ASSERT_TRUE(init_params); |
126 | 121 |
127 EXPECT_EQ("Background", params_vector[0].name()); | |
128 EXPECT_EQ(ThreadPriority::BACKGROUND, params_vector[0].priority_hint()); | |
129 EXPECT_EQ(StandbyThreadPolicy::LAZY, | 122 EXPECT_EQ(StandbyThreadPolicy::LAZY, |
130 params_vector[0].standby_thread_policy()); | 123 init_params->background_worker_pool_params.standby_thread_policy()); |
131 EXPECT_EQ(1U, params_vector[0].max_threads()); | 124 EXPECT_EQ(1U, init_params->background_worker_pool_params.max_threads()); |
132 EXPECT_EQ(base::TimeDelta::FromMilliseconds(42), | 125 EXPECT_EQ( |
133 params_vector[0].suggested_reclaim_time()); | 126 base::TimeDelta::FromMilliseconds(42), |
| 127 init_params->background_worker_pool_params.suggested_reclaim_time()); |
| 128 EXPECT_EQ( |
| 129 base::SchedulerBackwardCompatibility::DISABLED, |
| 130 init_params->background_worker_pool_params.backward_compatibility()); |
| 131 |
| 132 EXPECT_EQ(StandbyThreadPolicy::ONE, |
| 133 init_params->background_blocking_worker_pool_params |
| 134 .standby_thread_policy()); |
| 135 EXPECT_EQ(2U, |
| 136 init_params->background_blocking_worker_pool_params.max_threads()); |
| 137 EXPECT_EQ(base::TimeDelta::FromMilliseconds(52), |
| 138 init_params->background_blocking_worker_pool_params |
| 139 .suggested_reclaim_time()); |
134 EXPECT_EQ(base::SchedulerBackwardCompatibility::DISABLED, | 140 EXPECT_EQ(base::SchedulerBackwardCompatibility::DISABLED, |
135 params_vector[0].backward_compatibility()); | 141 init_params->background_blocking_worker_pool_params |
| 142 .backward_compatibility()); |
136 | 143 |
137 EXPECT_EQ("BackgroundFileIO", params_vector[1].name()); | 144 EXPECT_EQ(StandbyThreadPolicy::LAZY, |
138 EXPECT_EQ(ThreadPriority::BACKGROUND, params_vector[1].priority_hint()); | 145 init_params->foreground_worker_pool_params.standby_thread_policy()); |
139 EXPECT_EQ(StandbyThreadPolicy::ONE, params_vector[1].standby_thread_policy()); | 146 EXPECT_EQ(4U, init_params->foreground_worker_pool_params.max_threads()); |
140 EXPECT_EQ(2U, params_vector[1].max_threads()); | 147 EXPECT_EQ( |
141 EXPECT_EQ(base::TimeDelta::FromMilliseconds(52), | 148 base::TimeDelta::FromMilliseconds(62), |
142 params_vector[1].suggested_reclaim_time()); | 149 init_params->foreground_worker_pool_params.suggested_reclaim_time()); |
143 EXPECT_EQ(base::SchedulerBackwardCompatibility::DISABLED, | 150 EXPECT_EQ( |
144 params_vector[1].backward_compatibility()); | 151 base::SchedulerBackwardCompatibility::DISABLED, |
| 152 init_params->foreground_worker_pool_params.backward_compatibility()); |
145 | 153 |
146 EXPECT_EQ("Foreground", params_vector[2].name()); | 154 EXPECT_EQ(StandbyThreadPolicy::ONE, |
147 EXPECT_EQ(ThreadPriority::NORMAL, params_vector[2].priority_hint()); | 155 init_params->foreground_blocking_worker_pool_params |
148 EXPECT_EQ(StandbyThreadPolicy::LAZY, | 156 .standby_thread_policy()); |
149 params_vector[2].standby_thread_policy()); | 157 EXPECT_EQ(8U, |
150 EXPECT_EQ(4U, params_vector[2].max_threads()); | 158 init_params->foreground_blocking_worker_pool_params.max_threads()); |
151 EXPECT_EQ(base::TimeDelta::FromMilliseconds(62), | |
152 params_vector[2].suggested_reclaim_time()); | |
153 EXPECT_EQ(base::SchedulerBackwardCompatibility::DISABLED, | |
154 params_vector[2].backward_compatibility()); | |
155 | |
156 EXPECT_EQ("ForegroundFileIO", params_vector[3].name()); | |
157 EXPECT_EQ(ThreadPriority::NORMAL, params_vector[3].priority_hint()); | |
158 EXPECT_EQ(StandbyThreadPolicy::ONE, params_vector[3].standby_thread_policy()); | |
159 EXPECT_EQ(8U, params_vector[3].max_threads()); | |
160 EXPECT_EQ(base::TimeDelta::FromMilliseconds(72), | 159 EXPECT_EQ(base::TimeDelta::FromMilliseconds(72), |
161 params_vector[3].suggested_reclaim_time()); | 160 init_params->foreground_blocking_worker_pool_params |
| 161 .suggested_reclaim_time()); |
162 EXPECT_EQ(base::SchedulerBackwardCompatibility::INIT_COM_STA, | 162 EXPECT_EQ(base::SchedulerBackwardCompatibility::INIT_COM_STA, |
163 params_vector[3].backward_compatibility()); | 163 init_params->foreground_blocking_worker_pool_params |
| 164 .backward_compatibility()); |
164 } | 165 } |
165 | 166 |
166 TEST_F(TaskSchedulerUtilVariationsUtilTest, NoData) { | 167 TEST_F(TaskSchedulerUtilVariationsUtilTest, NoData) { |
167 EXPECT_TRUE(GetWorkerPoolParams(GetImmutableWorkerPoolParams(), | 168 EXPECT_FALSE(GetTaskSchedulerInitParams( |
168 std::map<std::string, std::string>()) | 169 "Renderer", std::map<std::string, std::string>())); |
169 .empty()); | |
170 } | 170 } |
171 | 171 |
172 TEST_F(TaskSchedulerUtilVariationsUtilTest, IncompleteParameters) { | 172 TEST_F(TaskSchedulerUtilVariationsUtilTest, IncompleteParameters) { |
173 std::map<std::string, std::string> variation_params; | 173 std::map<std::string, std::string> variation_params; |
174 variation_params["Background"] = "1;1;1;0"; | 174 variation_params["RendererBackground"] = "1;1;1;0"; |
175 variation_params["BackgroundFileIO"] = "2;2;1;0"; | 175 variation_params["RendererBackgroundBlocking"] = "2;2;1;0"; |
176 variation_params["Foreground"] = "4;4;1;0"; | 176 variation_params["RendererForeground"] = "4;4;1;0"; |
177 variation_params["ForegroundFileIO"] = "8;8;1;0"; | 177 variation_params["RendererForegroundBlocking"] = "8;8;1;0"; |
178 EXPECT_TRUE( | 178 EXPECT_FALSE(GetTaskSchedulerInitParams("Renderer", variation_params)); |
179 GetWorkerPoolParams(GetImmutableWorkerPoolParams(), variation_params) | |
180 .empty()); | |
181 } | 179 } |
182 | 180 |
183 TEST_F(TaskSchedulerUtilVariationsUtilTest, InvalidParameters) { | 181 TEST_F(TaskSchedulerUtilVariationsUtilTest, InvalidParametersFormat) { |
184 std::map<std::string, std::string> variation_params; | 182 std::map<std::string, std::string> variation_params; |
185 variation_params["Background"] = "a;b;c;d;e"; | 183 variation_params["RendererBackground"] = "a;b;c;d;e"; |
186 variation_params["BackgroundFileIO"] = "a;b;c;d;e"; | 184 variation_params["RendererBackgroundBlocking"] = "a;b;c;d;e"; |
187 variation_params["Foreground"] = "a;b;c;d;e"; | 185 variation_params["RendererForeground"] = "a;b;c;d;e"; |
188 variation_params["ForegroundFileIO"] = "a;b;c;d;e"; | 186 variation_params["RendererForegroundBlocking"] = "a;b;c;d;e"; |
189 EXPECT_TRUE( | 187 EXPECT_FALSE(GetTaskSchedulerInitParams("Renderer", variation_params)); |
190 GetWorkerPoolParams(GetImmutableWorkerPoolParams(), variation_params) | 188 } |
191 .empty()); | 189 |
| 190 TEST_F(TaskSchedulerUtilVariationsUtilTest, ZeroMaxThreads) { |
| 191 // The Background pool has a maximum number of threads equal to zero, which is |
| 192 // invalid. |
| 193 std::map<std::string, std::string> variation_params; |
| 194 variation_params["RendererBackground"] = "0;0;0;0;0;lazy"; |
| 195 variation_params["RendererBackgroundBlocking"] = "2;2;1;0;52;one"; |
| 196 variation_params["RendererForeground"] = "4;4;1;0;62;lazy"; |
| 197 variation_params["RendererForegroundBlocking"] = "8;8;1;0;72;one"; |
| 198 EXPECT_FALSE(GetTaskSchedulerInitParams("Renderer", variation_params)); |
| 199 } |
| 200 |
| 201 TEST_F(TaskSchedulerUtilVariationsUtilTest, NegativeMaxThreads) { |
| 202 // The Background pool has a negative maximum number of threads, which is |
| 203 // invalid. |
| 204 std::map<std::string, std::string> variation_params; |
| 205 variation_params["RendererBackground"] = "-5;-5;0;0;0;lazy"; |
| 206 variation_params["RendererBackgroundBlocking"] = "2;2;1;0;52;one"; |
| 207 variation_params["RendererForeground"] = "4;4;1;0;62;lazy"; |
| 208 variation_params["RendererForegroundBlocking"] = "8;8;1;0;72;one"; |
| 209 EXPECT_FALSE(GetTaskSchedulerInitParams("Renderer", variation_params)); |
| 210 } |
| 211 |
| 212 TEST_F(TaskSchedulerUtilVariationsUtilTest, ZeroSuggestedReclaimTime) { |
| 213 // The Background pool has a zero suggested reclaim time, which is invalid. |
| 214 std::map<std::string, std::string> variation_params; |
| 215 variation_params["RendererBackground"] = "1;1;1;0;0;lazy"; |
| 216 variation_params["RendererBackgroundBlocking"] = "2;2;1;0;52;one"; |
| 217 variation_params["RendererForeground"] = "4;4;1;0;62;lazy"; |
| 218 variation_params["RendererForegroundBlocking"] = "8;8;1;0;72;one"; |
| 219 EXPECT_FALSE(GetTaskSchedulerInitParams("Renderer", variation_params)); |
| 220 } |
| 221 |
| 222 TEST_F(TaskSchedulerUtilVariationsUtilTest, NegativeSuggestedReclaimTime) { |
| 223 // The Background pool has a negative suggested reclaim time, which is |
| 224 // invalid. |
| 225 std::map<std::string, std::string> variation_params; |
| 226 variation_params["RendererBackground"] = "1;1;1;0;-5;lazy"; |
| 227 variation_params["RendererBackgroundBlocking"] = "2;2;1;0;52;one"; |
| 228 variation_params["RendererForeground"] = "4;4;1;0;62;lazy"; |
| 229 variation_params["RendererForegroundBlocking"] = "8;8;1;0;72;one"; |
| 230 EXPECT_FALSE(GetTaskSchedulerInitParams("Renderer", variation_params)); |
192 } | 231 } |
193 | 232 |
194 #if !defined(OS_IOS) | 233 #if !defined(OS_IOS) |
195 // Verify that AddVariationParamsToCommandLine() serializes BrowserScheduler | 234 // Verify that AddVariationParamsToCommandLine() serializes BrowserScheduler |
196 // variation params that start with the specified prefix to the command line and | 235 // variation params that start with the specified prefix to the command line and |
197 // that GetVariationParamsFromCommandLine() correctly deserializes them. | 236 // that GetVariationParamsFromCommandLine() correctly deserializes them. |
198 TEST_F(TaskSchedulerUtilVariationsUtilTest, CommandLine) { | 237 TEST_F(TaskSchedulerUtilVariationsUtilTest, CommandLine) { |
199 std::map<std::string, std::string> in_variation_params; | 238 std::map<std::string, std::string> in_variation_params; |
200 in_variation_params["PrefixFoo"] = "Foo"; | 239 in_variation_params["PrefixFoo"] = "Foo"; |
201 in_variation_params["PrefixBar"] = "Bar"; | 240 in_variation_params["PrefixBar"] = "Bar"; |
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
257 | 296 |
258 // Verify that GetVariationParamsFromCommandLine() returns an empty map when the | 297 // Verify that GetVariationParamsFromCommandLine() returns an empty map when the |
259 // command line doesn't have a --task-scheduler-variation-params switch. | 298 // command line doesn't have a --task-scheduler-variation-params switch. |
260 TEST_F(TaskSchedulerUtilVariationsUtilTest, CommandLineNoSwitch) { | 299 TEST_F(TaskSchedulerUtilVariationsUtilTest, CommandLineNoSwitch) { |
261 base::CommandLine command_line(base::CommandLine::NO_PROGRAM); | 300 base::CommandLine command_line(base::CommandLine::NO_PROGRAM); |
262 EXPECT_TRUE(GetVariationParamsFromCommandLine(command_line).empty()); | 301 EXPECT_TRUE(GetVariationParamsFromCommandLine(command_line).empty()); |
263 } | 302 } |
264 #endif // !defined(OS_IOS) | 303 #endif // !defined(OS_IOS) |
265 | 304 |
266 } // namespace task_scheduler_util | 305 } // namespace task_scheduler_util |
OLD | NEW |