| 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 |