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

Side by Side Diff: components/task_scheduler_util/common/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/common/variations_util.h"
6
7 #include <map>
8 #include <string>
9 #include <vector>
10
11 #include "base/task_scheduler/scheduler_worker_pool_params.h"
12 #include "base/threading/platform_thread.h"
13 #include "testing/gtest/include/gtest/gtest.h"
14
15 namespace task_scheduler_util {
16
17 namespace {
18
19 using StandbyThreadPolicy =
20 base::SchedulerWorkerPoolParams::StandbyThreadPolicy;
21 using ThreadPriority = base::ThreadPriority;
22
23 std::vector<SchedulerImmutableWorkerPoolParams> GetImmutableWorkerPoolParams() {
24 std::vector<SchedulerImmutableWorkerPoolParams> constant_worker_pool_params;
25 constant_worker_pool_params.emplace_back("Background",
26 ThreadPriority::BACKGROUND);
27 constant_worker_pool_params.emplace_back("BackgroundFileIO",
28 ThreadPriority::BACKGROUND);
29 constant_worker_pool_params.emplace_back("Foreground",
30 ThreadPriority::NORMAL);
31 constant_worker_pool_params.emplace_back("ForegroundFileIO",
32 ThreadPriority::NORMAL);
33 return constant_worker_pool_params;
34 }
35
36 } // namespace
37
38 TEST(TaskSchedulerUtilVariationsUtilTest, OrderingParams5) {
39 std::map<std::string, std::string> variation_params;
40 variation_params["Background"] = "1;1;1;0;42";
41 variation_params["BackgroundFileIO"] = "2;2;1;0;52";
42 variation_params["Foreground"] = "4;4;1;0;62";
43 variation_params["ForegroundFileIO"] = "8;8;1;0;72";
44
45 auto params_vector =
46 GetWorkerPoolParams(GetImmutableWorkerPoolParams(), variation_params);
47 ASSERT_EQ(4U, params_vector.size());
48
49 EXPECT_EQ("Background", params_vector[0].name());
50 EXPECT_EQ(ThreadPriority::BACKGROUND, params_vector[0].priority_hint());
51 EXPECT_EQ(StandbyThreadPolicy::ONE, params_vector[0].standby_thread_policy());
52 EXPECT_EQ(1U, params_vector[0].max_threads());
53 EXPECT_EQ(base::TimeDelta::FromMilliseconds(42),
54 params_vector[0].suggested_reclaim_time());
55
56 EXPECT_EQ("BackgroundFileIO", params_vector[1].name());
57 EXPECT_EQ(ThreadPriority::BACKGROUND, params_vector[1].priority_hint());
58 EXPECT_EQ(StandbyThreadPolicy::ONE, params_vector[1].standby_thread_policy());
59 EXPECT_EQ(2U, params_vector[1].max_threads());
60 EXPECT_EQ(base::TimeDelta::FromMilliseconds(52),
61 params_vector[1].suggested_reclaim_time());
62
63 EXPECT_EQ("Foreground", params_vector[2].name());
64 EXPECT_EQ(ThreadPriority::NORMAL, params_vector[2].priority_hint());
65 EXPECT_EQ(StandbyThreadPolicy::ONE, params_vector[2].standby_thread_policy());
66 EXPECT_EQ(4U, params_vector[2].max_threads());
67 EXPECT_EQ(base::TimeDelta::FromMilliseconds(62),
68 params_vector[2].suggested_reclaim_time());
69
70 EXPECT_EQ("ForegroundFileIO", params_vector[3].name());
71 EXPECT_EQ(ThreadPriority::NORMAL, params_vector[3].priority_hint());
72 EXPECT_EQ(StandbyThreadPolicy::ONE, params_vector[3].standby_thread_policy());
73 EXPECT_EQ(8U, params_vector[3].max_threads());
74 EXPECT_EQ(base::TimeDelta::FromMilliseconds(72),
75 params_vector[3].suggested_reclaim_time());
76 }
77
78 TEST(TaskSchedulerUtilVariationsUtilTest, OrderingParams6) {
79 std::map<std::string, std::string> variation_params;
80 variation_params["Background"] = "1;1;1;0;42;lazy";
81 variation_params["BackgroundFileIO"] = "2;2;1;0;52;one";
82 variation_params["Foreground"] = "4;4;1;0;62;lazy";
83 variation_params["ForegroundFileIO"] = "8;8;1;0;72;one";
84
85 auto params_vector =
86 GetWorkerPoolParams(GetImmutableWorkerPoolParams(), variation_params);
87 ASSERT_EQ(4U, params_vector.size());
88
89 EXPECT_EQ("Background", params_vector[0].name());
90 EXPECT_EQ(ThreadPriority::BACKGROUND, params_vector[0].priority_hint());
91 EXPECT_EQ(StandbyThreadPolicy::LAZY,
92 params_vector[0].standby_thread_policy());
93 EXPECT_EQ(1U, params_vector[0].max_threads());
94 EXPECT_EQ(base::TimeDelta::FromMilliseconds(42),
95 params_vector[0].suggested_reclaim_time());
96
97 EXPECT_EQ("BackgroundFileIO", params_vector[1].name());
98 EXPECT_EQ(ThreadPriority::BACKGROUND, params_vector[1].priority_hint());
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("Foreground", params_vector[2].name());
105 EXPECT_EQ(ThreadPriority::NORMAL, params_vector[2].priority_hint());
106 EXPECT_EQ(StandbyThreadPolicy::LAZY,
107 params_vector[2].standby_thread_policy());
108 EXPECT_EQ(4U, params_vector[2].max_threads());
109 EXPECT_EQ(base::TimeDelta::FromMilliseconds(62),
110 params_vector[2].suggested_reclaim_time());
111
112 EXPECT_EQ("ForegroundFileIO", params_vector[3].name());
113 EXPECT_EQ(ThreadPriority::NORMAL, params_vector[3].priority_hint());
114 EXPECT_EQ(StandbyThreadPolicy::ONE, params_vector[3].standby_thread_policy());
115 EXPECT_EQ(8U, params_vector[3].max_threads());
116 EXPECT_EQ(base::TimeDelta::FromMilliseconds(72),
117 params_vector[3].suggested_reclaim_time());
118 }
119
120 TEST(TaskSchedulerUtilVariationsUtilTest, NoData) {
121 EXPECT_TRUE(GetWorkerPoolParams(GetImmutableWorkerPoolParams(),
122 std::map<std::string, std::string>())
123 .empty());
124 }
125
126 TEST(TaskSchedulerUtilVariationsUtilTest, IncompleteParameters) {
127 std::map<std::string, std::string> variation_params;
128 variation_params["Background"] = "1;1;1;0";
129 variation_params["BackgroundFileIO"] = "2;2;1;0";
130 variation_params["Foreground"] = "4;4;1;0";
131 variation_params["ForegroundFileIO"] = "8;8;1;0";
132 EXPECT_TRUE(
133 GetWorkerPoolParams(GetImmutableWorkerPoolParams(), variation_params)
134 .empty());
135 }
136
137 TEST(TaskSchedulerUtilVariationsUtilTest, InvalidParameters) {
138 std::map<std::string, std::string> variation_params;
139 variation_params["Background"] = "a;b;c;d;e";
140 variation_params["BackgroundFileIO"] = "a;b;c;d;e";
141 variation_params["Foreground"] = "a;b;c;d;e";
142 variation_params["ForegroundFileIO"] = "a;b;c;d;e";
143 EXPECT_TRUE(
144 GetWorkerPoolParams(GetImmutableWorkerPoolParams(), variation_params)
145 .empty());
146 }
147
148 } // namespace task_scheduler_util
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698