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

Side by Side Diff: content/browser/tracing/background_tracing_config_unittest.cc

Issue 1148393003: Implement Reactive Configuration in Background Tracing (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase files depending on reactive config Created 5 years, 6 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 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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 "base/json/json_reader.h" 5 #include "base/json/json_reader.h"
6 #include "base/json/json_writer.h" 6 #include "base/json/json_writer.h"
7 #include "base/memory/scoped_ptr.h" 7 #include "base/memory/scoped_ptr.h"
8 #include "base/values.h" 8 #include "base/values.h"
9 #include "content/public/browser/background_tracing_preemptive_config.h" 9 #include "content/public/browser/background_tracing_preemptive_config.h"
10 #include "content/public/browser/background_tracing_reactive_config.h" 10 #include "content/public/browser/background_tracing_reactive_config.h"
(...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after
106 // Invalid tracing rule type 106 // Invalid tracing rule type
107 EXPECT_FALSE(ReadFromJSONString( 107 EXPECT_FALSE(ReadFromJSONString(
108 "{\"mode\":\"reactive\"," 108 "{\"mode\":\"reactive\","
109 "\"configs\": [{\"rule\": []}]}")); 109 "\"configs\": [{\"rule\": []}]}"));
110 EXPECT_FALSE(ReadFromJSONString( 110 EXPECT_FALSE(ReadFromJSONString(
111 "{\"mode\":\"reactive\"," 111 "{\"mode\":\"reactive\","
112 "\"configs\": [{\"rule\": \"\"}]}")); 112 "\"configs\": [{\"rule\": \"\"}]}"));
113 EXPECT_FALSE(ReadFromJSONString( 113 EXPECT_FALSE(ReadFromJSONString(
114 "{\"mode\":\"reactive\"," 114 "{\"mode\":\"reactive\","
115 "\"configs\": [{\"rule\": " 115 "\"configs\": [{\"rule\": "
116 "\"trace_on_trigger_until_10s_or_trigger_or_full\"}]}")); 116 "\"trace_for_10s_or_trigger_or_full\"}]}"));
117 117
118 EXPECT_FALSE(ReadFromJSONString( 118 EXPECT_FALSE(ReadFromJSONString(
119 "{\"mode\":\"reactive\"," 119 "{\"mode\":\"reactive\","
120 "\"configs\": [{\"rule\": " 120 "\"configs\": [{\"rule\": "
121 "\"trace_on_trigger_until_10s_or_trigger_or_full\", \"category\": " 121 "\"trace_for_10s_or_trigger_or_full\", \"category\": "
122 "[]}]}")); 122 "[]}]}"));
123 EXPECT_FALSE(ReadFromJSONString( 123 EXPECT_FALSE(ReadFromJSONString(
124 "{\"mode\":\"reactive\"," 124 "{\"mode\":\"reactive\","
125 "\"configs\": [{\"rule\": " 125 "\"configs\": [{\"rule\": "
126 "\"trace_on_trigger_until_10s_or_trigger_or_full\", \"category\": " 126 "\"trace_for_10s_or_trigger_or_full\", \"category\": "
127 "\"\"}]}")); 127 "\"\"}]}"));
128 EXPECT_FALSE(ReadFromJSONString( 128 EXPECT_FALSE(ReadFromJSONString(
129 "{\"mode\":\"reactive\"," 129 "{\"mode\":\"reactive\","
130 "\"configs\": [{\"rule\": " 130 "\"configs\": [{\"rule\": "
131 "\"trace_on_trigger_until_10s_or_trigger_or_full\", \"category\": " 131 "\"trace_for_10s_or_trigger_or_full\", \"category\": "
132 "\"benchmark\"}]}")); 132 "\"benchmark\"}]}"));
133 133
134 EXPECT_FALSE(ReadFromJSONString( 134 EXPECT_FALSE(ReadFromJSONString(
135 "{\"mode\":\"reactive\"," 135 "{\"mode\":\"reactive\","
136 "\"configs\": [{\"rule\": " 136 "\"configs\": [{\"rule\": "
137 "\"trace_on_trigger_until_10s_or_trigger_or_full\", \"category\": " 137 "\"trace_for_10s_or_trigger_or_full\", \"category\": "
138 "\"benchmark\", \"trigger_name\": []}]}")); 138 "\"benchmark\", \"trigger_name\": []}]}"));
139 EXPECT_FALSE(ReadFromJSONString( 139 EXPECT_FALSE(ReadFromJSONString(
140 "{\"mode\":\"reactive\"," 140 "{\"mode\":\"reactive\","
141 "\"configs\": [{\"rule\": " 141 "\"configs\": [{\"rule\": "
142 "\"trace_on_trigger_until_10s_or_trigger_or_full\", \"category\": " 142 "\"trace_for_10s_or_trigger_or_full\", \"category\": "
143 "\"benchmark\", \"trigger_name\": 0}]}")); 143 "\"benchmark\", \"trigger_name\": 0}]}"));
144 } 144 }
145 145
146 TEST_F(BackgroundTracingConfigTest, PreemptiveConfigFromValidString) { 146 TEST_F(BackgroundTracingConfigTest, PreemptiveConfigFromValidString) {
147 scoped_ptr<BackgroundTracingPreemptiveConfig> config; 147 scoped_ptr<BackgroundTracingPreemptiveConfig> config;
148 148
149 config = ReadPreemptiveFromJSONString( 149 config = ReadPreemptiveFromJSONString(
150 "{\"mode\":\"PREEMPTIVE_TRACING_MODE\", \"category\": " 150 "{\"mode\":\"PREEMPTIVE_TRACING_MODE\", \"category\": "
151 "\"BENCHMARK\",\"configs\": []}"); 151 "\"BENCHMARK\",\"configs\": []}");
152 EXPECT_TRUE(config); 152 EXPECT_TRUE(config);
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
199 scoped_ptr<BackgroundTracingReactiveConfig> config; 199 scoped_ptr<BackgroundTracingReactiveConfig> config;
200 200
201 config = ReadReactiveFromJSONString( 201 config = ReadReactiveFromJSONString(
202 "{\"mode\":\"REACTIVE_TRACING_MODE\", \"configs\": []}"); 202 "{\"mode\":\"REACTIVE_TRACING_MODE\", \"configs\": []}");
203 EXPECT_TRUE(config); 203 EXPECT_TRUE(config);
204 EXPECT_EQ(config->mode, BackgroundTracingConfig::REACTIVE_TRACING_MODE); 204 EXPECT_EQ(config->mode, BackgroundTracingConfig::REACTIVE_TRACING_MODE);
205 EXPECT_EQ(config->configs.size(), 0u); 205 EXPECT_EQ(config->configs.size(), 0u);
206 206
207 config = ReadReactiveFromJSONString( 207 config = ReadReactiveFromJSONString(
208 "{\"mode\":\"REACTIVE_TRACING_MODE\",\"configs\": [{\"rule\": " 208 "{\"mode\":\"REACTIVE_TRACING_MODE\",\"configs\": [{\"rule\": "
209 "\"TRACE_ON_MANUAL_TRIGGER_UNTIL_10S_OR_NEXT_TRIGGER_OR_FULL\", " 209 "\"TRACE_FOR_10S_OR_TRIGGER_OR_FULL\", "
210 "\"category\": \"BENCHMARK\", \"trigger_name\": \"foo\"}]}"); 210 "\"category\": \"BENCHMARK\", \"trigger_name\": \"foo\"}]}");
211 EXPECT_TRUE(config); 211 EXPECT_TRUE(config);
212 EXPECT_EQ(config->mode, BackgroundTracingConfig::REACTIVE_TRACING_MODE); 212 EXPECT_EQ(config->mode, BackgroundTracingConfig::REACTIVE_TRACING_MODE);
213 EXPECT_EQ(config->configs.size(), 1u); 213 EXPECT_EQ(config->configs.size(), 1u);
214 EXPECT_EQ(config->configs[0].type, 214 EXPECT_EQ(config->configs[0].type,
215 BackgroundTracingReactiveConfig:: 215 BackgroundTracingReactiveConfig::TRACE_FOR_10S_OR_TRIGGER_OR_FULL);
216 TRACE_ON_MANUAL_TRIGGER_UNTIL_10S_OR_NEXT_TRIGGER_OR_FULL);
217 EXPECT_EQ(config->configs[0].trigger_name, "foo"); 216 EXPECT_EQ(config->configs[0].trigger_name, "foo");
218 EXPECT_EQ(config->configs[0].category_preset, 217 EXPECT_EQ(config->configs[0].category_preset,
219 BackgroundTracingConfig::BENCHMARK); 218 BackgroundTracingConfig::BENCHMARK);
220 219
221 config = ReadReactiveFromJSONString( 220 config = ReadReactiveFromJSONString(
222 "{\"mode\":\"REACTIVE_TRACING_MODE\",\"configs\": [{\"rule\": " 221 "{\"mode\":\"REACTIVE_TRACING_MODE\",\"configs\": [{\"rule\": "
223 "\"TRACE_ON_MANUAL_TRIGGER_UNTIL_10S_OR_NEXT_TRIGGER_OR_FULL\", " 222 "\"TRACE_FOR_10S_OR_TRIGGER_OR_FULL\", "
224 "\"category\": \"BENCHMARK_DEEP\", \"trigger_name\": \"foo\"}]}"); 223 "\"category\": \"BENCHMARK_DEEP\", \"trigger_name\": \"foo\"}]}");
225 EXPECT_TRUE(config); 224 EXPECT_TRUE(config);
226 EXPECT_EQ(config->mode, BackgroundTracingConfig::REACTIVE_TRACING_MODE); 225 EXPECT_EQ(config->mode, BackgroundTracingConfig::REACTIVE_TRACING_MODE);
227 EXPECT_EQ(config->configs.size(), 1u); 226 EXPECT_EQ(config->configs.size(), 1u);
228 EXPECT_EQ(config->configs[0].type, 227 EXPECT_EQ(config->configs[0].type,
229 BackgroundTracingReactiveConfig:: 228 BackgroundTracingReactiveConfig::TRACE_FOR_10S_OR_TRIGGER_OR_FULL);
230 TRACE_ON_MANUAL_TRIGGER_UNTIL_10S_OR_NEXT_TRIGGER_OR_FULL);
231 EXPECT_EQ(config->configs[0].trigger_name, "foo"); 229 EXPECT_EQ(config->configs[0].trigger_name, "foo");
232 EXPECT_EQ(config->configs[0].category_preset, 230 EXPECT_EQ(config->configs[0].category_preset,
233 BackgroundTracingConfig::BENCHMARK_DEEP); 231 BackgroundTracingConfig::BENCHMARK_DEEP);
234 232
235 config = ReadReactiveFromJSONString( 233 config = ReadReactiveFromJSONString(
236 "{\"mode\":\"REACTIVE_TRACING_MODE\",\"configs\": [{\"rule\": " 234 "{\"mode\":\"REACTIVE_TRACING_MODE\",\"configs\": [{\"rule\": "
237 "\"TRACE_ON_MANUAL_TRIGGER_UNTIL_10S_OR_NEXT_TRIGGER_OR_FULL\", " 235 "\"TRACE_FOR_10S_OR_TRIGGER_OR_FULL\", "
238 "\"category\": \"BENCHMARK_DEEP\", \"trigger_name\": " 236 "\"category\": \"BENCHMARK_DEEP\", \"trigger_name\": "
239 "\"foo1\"},{\"rule\": " 237 "\"foo1\"},{\"rule\": "
240 "\"TRACE_ON_MANUAL_TRIGGER_UNTIL_10S_OR_NEXT_TRIGGER_OR_FULL\", " 238 "\"TRACE_FOR_10S_OR_TRIGGER_OR_FULL\", "
241 "\"category\": \"BENCHMARK_DEEP\", \"trigger_name\": \"foo2\"}]}"); 239 "\"category\": \"BENCHMARK_DEEP\", \"trigger_name\": \"foo2\"}]}");
242 EXPECT_TRUE(config); 240 EXPECT_TRUE(config);
243 EXPECT_EQ(config->mode, BackgroundTracingConfig::REACTIVE_TRACING_MODE); 241 EXPECT_EQ(config->mode, BackgroundTracingConfig::REACTIVE_TRACING_MODE);
244 EXPECT_EQ(config->configs.size(), 2u); 242 EXPECT_EQ(config->configs.size(), 2u);
245 EXPECT_EQ(config->configs[0].type, 243 EXPECT_EQ(config->configs[0].type,
246 BackgroundTracingReactiveConfig:: 244 BackgroundTracingReactiveConfig::TRACE_FOR_10S_OR_TRIGGER_OR_FULL);
247 TRACE_ON_MANUAL_TRIGGER_UNTIL_10S_OR_NEXT_TRIGGER_OR_FULL);
248 EXPECT_EQ(config->configs[0].trigger_name, "foo1"); 245 EXPECT_EQ(config->configs[0].trigger_name, "foo1");
249 EXPECT_EQ(config->configs[0].category_preset, 246 EXPECT_EQ(config->configs[0].category_preset,
250 BackgroundTracingConfig::BENCHMARK_DEEP); 247 BackgroundTracingConfig::BENCHMARK_DEEP);
251 EXPECT_EQ(config->configs[1].type, 248 EXPECT_EQ(config->configs[1].type,
252 BackgroundTracingReactiveConfig:: 249 BackgroundTracingReactiveConfig::TRACE_FOR_10S_OR_TRIGGER_OR_FULL);
253 TRACE_ON_MANUAL_TRIGGER_UNTIL_10S_OR_NEXT_TRIGGER_OR_FULL);
254 EXPECT_EQ(config->configs[1].trigger_name, "foo2"); 250 EXPECT_EQ(config->configs[1].trigger_name, "foo2");
255 EXPECT_EQ(config->configs[1].category_preset, 251 EXPECT_EQ(config->configs[1].category_preset,
256 BackgroundTracingConfig::BENCHMARK_DEEP); 252 BackgroundTracingConfig::BENCHMARK_DEEP);
257 } 253 }
258 254
259 TEST_F(BackgroundTracingConfigTest, ValidPreemptiveConfigToString) { 255 TEST_F(BackgroundTracingConfigTest, ValidPreemptiveConfigToString) {
260 scoped_ptr<BackgroundTracingPreemptiveConfig> config( 256 scoped_ptr<BackgroundTracingPreemptiveConfig> config(
261 new BackgroundTracingPreemptiveConfig()); 257 new BackgroundTracingPreemptiveConfig());
262 258
263 // Default values 259 // Default values
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after
340 336
341 // Default values 337 // Default values
342 EXPECT_EQ(ConfigToString(config.get()), 338 EXPECT_EQ(ConfigToString(config.get()),
343 "{\"configs\":[],\"mode\":\"REACTIVE_TRACING_MODE\"}"); 339 "{\"configs\":[],\"mode\":\"REACTIVE_TRACING_MODE\"}");
344 340
345 { 341 {
346 config.reset(new BackgroundTracingReactiveConfig()); 342 config.reset(new BackgroundTracingReactiveConfig());
347 343
348 BackgroundTracingReactiveConfig::TracingRule rule; 344 BackgroundTracingReactiveConfig::TracingRule rule;
349 rule.type = BackgroundTracingReactiveConfig:: 345 rule.type = BackgroundTracingReactiveConfig::
350 TRACE_ON_MANUAL_TRIGGER_UNTIL_10S_OR_NEXT_TRIGGER_OR_FULL; 346 TRACE_FOR_10S_OR_TRIGGER_OR_FULL;
351 rule.trigger_name = "foo"; 347 rule.trigger_name = "foo";
352 rule.category_preset = BackgroundTracingConfig::BENCHMARK_DEEP; 348 rule.category_preset = BackgroundTracingConfig::BENCHMARK_DEEP;
353 config->configs.push_back(rule); 349 config->configs.push_back(rule);
354 EXPECT_EQ(ConfigToString(config.get()), 350 EXPECT_EQ(ConfigToString(config.get()),
355 "{\"configs\":[{\"category\":\"BENCHMARK_DEEP\",\"rule\":\"TRACE_" 351 "{\"configs\":[{\"category\":\"BENCHMARK_DEEP\",\"rule\":\"TRACE_"
356 "ON_MANUAL_TRIGGER_UNTIL_10S_OR_NEXT_TRIGGER_OR_FULL\",\"trigger_" 352 "FOR_10S_OR_TRIGGER_OR_FULL\",\"trigger_name\":\"foo\"}],\"mode\""
357 "name\":\"foo\"}],\"mode\":\"REACTIVE_TRACING_MODE\"}"); 353 ":\"REACTIVE_TRACING_MODE\"}");
358 } 354 }
359 355
360 { 356 {
361 config.reset(new BackgroundTracingReactiveConfig()); 357 config.reset(new BackgroundTracingReactiveConfig());
362 358
363 BackgroundTracingReactiveConfig::TracingRule rule; 359 BackgroundTracingReactiveConfig::TracingRule rule;
364 rule.type = BackgroundTracingReactiveConfig:: 360 rule.type = BackgroundTracingReactiveConfig::
365 TRACE_ON_MANUAL_TRIGGER_UNTIL_10S_OR_NEXT_TRIGGER_OR_FULL; 361 TRACE_FOR_10S_OR_TRIGGER_OR_FULL;
366 rule.trigger_name = "foo1"; 362 rule.trigger_name = "foo1";
367 rule.category_preset = BackgroundTracingConfig::BENCHMARK_DEEP; 363 rule.category_preset = BackgroundTracingConfig::BENCHMARK_DEEP;
368 config->configs.push_back(rule); 364 config->configs.push_back(rule);
369 rule.trigger_name = "foo2"; 365 rule.trigger_name = "foo2";
370 config->configs.push_back(rule); 366 config->configs.push_back(rule);
371 EXPECT_EQ(ConfigToString(config.get()), 367 EXPECT_EQ(ConfigToString(config.get()),
372 "{\"configs\":[{\"category\":\"BENCHMARK_DEEP\",\"rule\":\"TRACE_" 368 "{\"configs\":[{\"category\":\"BENCHMARK_DEEP\",\"rule\":\"TRACE_"
373 "ON_MANUAL_TRIGGER_UNTIL_10S_OR_NEXT_TRIGGER_OR_FULL\",\"trigger_" 369 "FOR_10S_OR_TRIGGER_OR_FULL\",\"trigger_name\":\"foo1\"},{"
374 "name\":\"foo1\"},{\"category\":\"BENCHMARK_DEEP\",\"rule\":" 370 "\"category\":\"BENCHMARK_DEEP\",\"rule\":\"TRACE_FOR_10S_OR_"
375 "\"TRACE_ON_MANUAL_TRIGGER_UNTIL_10S_OR_NEXT_TRIGGER_OR_FULL\"," 371 "TRIGGER_OR_FULL\",\"trigger_name\":\"foo2\"}],\"mode\":"
376 "\"trigger_name\":\"foo2\"}],\"mode\":\"REACTIVE_TRACING_" 372 "\"REACTIVE_TRACING_MODE\"}");
377 "MODE\"}");
378 } 373 }
379 } 374 }
380 375
381 } // namspace content 376 } // namspace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698