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

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

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

Powered by Google App Engine
This is Rietveld 408576698