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

Side by Side Diff: components/task_scheduler_util/common/variations_util_unittest.cc

Issue 2788223002: Generate TaskScheduler::InitParams from components/task_scheduler_util/. (Closed)
Patch Set: self-review Created 3 years, 8 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 unified diff | Download patch
OLDNEW
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698