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

Side by Side Diff: components/task_scheduler_util/variations/browser_variations_util_unittest.cc

Issue 2626783002: Remove old APIs from components/task_scheduler_util/. (Closed)
Patch Set: fix build error Created 3 years, 11 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
(Empty)
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
3 // found in the LICENSE file.
4
5 // TODO(fdoray): Remove this file once TaskScheduler initialization in the
6 // browser process uses the components/task_scheduler_util/browser/ API on all
7 // platforms.
8
9 #include "components/task_scheduler_util/variations/browser_variations_util.h"
10
11 #include <map>
12 #include <vector>
13
14 #include "base/metrics/field_trial.h"
15 #include "base/task_scheduler/scheduler_worker_pool_params.h"
16 #include "components/variations/variations_associated_data.h"
17 #include "testing/gtest/include/gtest/gtest.h"
18
19 namespace task_scheduler_util {
20 namespace variations {
21
22 namespace {
23
24 using StandbyThreadPolicy =
25 base::SchedulerWorkerPoolParams::StandbyThreadPolicy;
26
27 constexpr char kFieldTrialName[] = "BrowserScheduler";
28 constexpr char kFieldTrialTestGroup[] = "Test";
29
30 class TaskSchedulerUtilBrowserVariationsUtilTest : public ::testing::Test {
31 public:
32 TaskSchedulerUtilBrowserVariationsUtilTest() : field_trial_list_(nullptr) {}
33
34 ~TaskSchedulerUtilBrowserVariationsUtilTest() override {
35 // Ensure that the maps are cleared between tests, since they are stored as
36 // process singletons.
37 ::variations::testing::ClearAllVariationIDs();
38 ::variations::testing::ClearAllVariationParams();
39 }
40
41 private:
42 base::FieldTrialList field_trial_list_;
43
44 DISALLOW_COPY_AND_ASSIGN(TaskSchedulerUtilBrowserVariationsUtilTest);
45 };
46
47 } // namespace
48
49 TEST_F(TaskSchedulerUtilBrowserVariationsUtilTest, OrderingParams5) {
50 std::map<std::string, std::string> params;
51 params["Background"] = "1;1;1;0;42";
52 params["BackgroundFileIO"] = "2;2;1;0;52";
53 params["Foreground"] = "4;4;1;0;62";
54 params["ForegroundFileIO"] = "8;8;1;0;72";
55 ASSERT_TRUE(::variations::AssociateVariationParams(kFieldTrialName,
56 kFieldTrialTestGroup,
57 params));
58
59 base::FieldTrialList::CreateFieldTrial(kFieldTrialName, kFieldTrialTestGroup);
60 auto params_vector = GetBrowserSchedulerWorkerPoolParamsFromVariations();
61 ASSERT_EQ(4U, params_vector.size());
62
63 EXPECT_EQ(StandbyThreadPolicy::ONE, params_vector[0].standby_thread_policy());
64 EXPECT_EQ(1U, params_vector[0].max_threads());
65 EXPECT_EQ(base::TimeDelta::FromMilliseconds(42),
66 params_vector[0].suggested_reclaim_time());
67
68 EXPECT_EQ(StandbyThreadPolicy::ONE, params_vector[1].standby_thread_policy());
69 EXPECT_EQ(2U, params_vector[1].max_threads());
70 EXPECT_EQ(base::TimeDelta::FromMilliseconds(52),
71 params_vector[1].suggested_reclaim_time());
72
73 EXPECT_EQ(StandbyThreadPolicy::ONE, params_vector[2].standby_thread_policy());
74 EXPECT_EQ(4U, params_vector[2].max_threads());
75 EXPECT_EQ(base::TimeDelta::FromMilliseconds(62),
76 params_vector[2].suggested_reclaim_time());
77
78 EXPECT_EQ(StandbyThreadPolicy::ONE, params_vector[3].standby_thread_policy());
79 EXPECT_EQ(8U, params_vector[3].max_threads());
80 EXPECT_EQ(base::TimeDelta::FromMilliseconds(72),
81 params_vector[3].suggested_reclaim_time());
82 }
83
84 TEST_F(TaskSchedulerUtilBrowserVariationsUtilTest, OrderingParams6) {
85 std::map<std::string, std::string> params;
86 params["Background"] = "1;1;1;0;42;lazy";
87 params["BackgroundFileIO"] = "2;2;1;0;52;one";
88 params["Foreground"] = "4;4;1;0;62;lazy";
89 params["ForegroundFileIO"] = "8;8;1;0;72;one";
90 ASSERT_TRUE(::variations::AssociateVariationParams(kFieldTrialName,
91 kFieldTrialTestGroup,
92 params));
93
94 base::FieldTrialList::CreateFieldTrial(kFieldTrialName, kFieldTrialTestGroup);
95 auto params_vector = GetBrowserSchedulerWorkerPoolParamsFromVariations();
96 ASSERT_EQ(4U, params_vector.size());
97
98 EXPECT_EQ(StandbyThreadPolicy::LAZY,
99 params_vector[0].standby_thread_policy());
100 EXPECT_EQ(1U, params_vector[0].max_threads());
101 EXPECT_EQ(base::TimeDelta::FromMilliseconds(42),
102 params_vector[0].suggested_reclaim_time());
103
104 EXPECT_EQ(StandbyThreadPolicy::ONE, params_vector[1].standby_thread_policy());
105 EXPECT_EQ(2U, params_vector[1].max_threads());
106 EXPECT_EQ(base::TimeDelta::FromMilliseconds(52),
107 params_vector[1].suggested_reclaim_time());
108
109 EXPECT_EQ(StandbyThreadPolicy::LAZY,
110 params_vector[2].standby_thread_policy());
111 EXPECT_EQ(4U, params_vector[2].max_threads());
112 EXPECT_EQ(base::TimeDelta::FromMilliseconds(62),
113 params_vector[2].suggested_reclaim_time());
114
115 EXPECT_EQ(StandbyThreadPolicy::ONE, params_vector[3].standby_thread_policy());
116 EXPECT_EQ(8U, params_vector[3].max_threads());
117 EXPECT_EQ(base::TimeDelta::FromMilliseconds(72),
118 params_vector[3].suggested_reclaim_time());
119 }
120
121 TEST_F(TaskSchedulerUtilBrowserVariationsUtilTest, NoData) {
122 auto params_vector = GetBrowserSchedulerWorkerPoolParamsFromVariations();
123 EXPECT_TRUE(params_vector.empty());
124 }
125
126 TEST_F(TaskSchedulerUtilBrowserVariationsUtilTest, IncompleteParameters) {
127 std::map<std::string, std::string> params;
128 params["Background"] = "1;1;1;0";
129 params["BackgroundFileIO"] = "2;2;1;0";
130 params["Foreground"] = "4;4;1;0";
131 params["ForegroundFileIO"] = "8;8;1;0";
132 base::FieldTrialList::CreateFieldTrial(kFieldTrialName, kFieldTrialTestGroup);
133 ASSERT_TRUE(::variations::AssociateVariationParams(kFieldTrialName,
134 kFieldTrialTestGroup,
135 params));
136 auto params_vector = GetBrowserSchedulerWorkerPoolParamsFromVariations();
137 EXPECT_TRUE(params_vector.empty());
138 }
139
140 TEST_F(TaskSchedulerUtilBrowserVariationsUtilTest, InvalidParameters) {
141 std::map<std::string, std::string> params;
142 params["Background"] = "a;b;c;d;e";
143 params["BackgroundFileIO"] = "a;b;c;d;e";
144 params["Foreground"] = "a;b;c;d;e";
145 params["ForegroundFileIO"] = "a;b;c;d;e";
146 base::FieldTrialList::CreateFieldTrial(kFieldTrialName, kFieldTrialTestGroup);
147 ASSERT_TRUE(::variations::AssociateVariationParams(kFieldTrialName,
148 kFieldTrialTestGroup,
149 params));
150 auto params_vector = GetBrowserSchedulerWorkerPoolParamsFromVariations();
151 EXPECT_TRUE(params_vector.empty());
152 }
153
154 } // namespace variations
155 } // namespace task_scheduler_util
OLDNEW
« no previous file with comments | « components/task_scheduler_util/variations/browser_variations_util.cc ('k') | ios/chrome/browser/web/BUILD.gn » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698