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

Side by Side Diff: base/trace_event/trace_config_unittest.cc

Issue 2061923002: Fix default category filter for tracing (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 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 <stddef.h> 5 #include <stddef.h>
6 6
7 #include "base/json/json_reader.h" 7 #include "base/json/json_reader.h"
8 #include "base/macros.h" 8 #include "base/macros.h"
9 #include "base/trace_event/memory_dump_manager.h" 9 #include "base/trace_event/memory_dump_manager.h"
10 #include "base/trace_event/trace_config.h" 10 #include "base/trace_event/trace_config.h"
11 #include "base/trace_event/trace_config_memory_test_util.h" 11 #include "base/trace_event/trace_config_memory_test_util.h"
12 #include "testing/gtest/include/gtest/gtest.h" 12 #include "testing/gtest/include/gtest/gtest.h"
13 13
14 namespace base { 14 namespace base {
15 namespace trace_event { 15 namespace trace_event {
16 16
17 namespace { 17 namespace {
18 18
19 const char kDefaultTraceConfigString[] = 19 const char kDefaultTraceConfigString[] =
20 "{" 20 "{"
21 "\"enable_argument_filter\":false," 21 "\"enable_argument_filter\":false,"
22 "\"enable_sampling\":false," 22 "\"enable_sampling\":false,"
23 "\"enable_systrace\":false," 23 "\"enable_systrace\":false,"
24 "\"excluded_categories\":[\"*Debug\",\"*Test\"],"
25 "\"record_mode\":\"record-until-full\"" 24 "\"record_mode\":\"record-until-full\""
26 "}"; 25 "}";
27 26
28 const char kCustomTraceConfigString[] = 27 const char kCustomTraceConfigString[] =
29 "{" 28 "{"
30 "\"enable_argument_filter\":true," 29 "\"enable_argument_filter\":true,"
31 "\"enable_sampling\":true," 30 "\"enable_sampling\":true,"
32 "\"enable_systrace\":true," 31 "\"enable_systrace\":true,"
33 "\"excluded_categories\":[\"excluded\",\"exc_pattern*\"]," 32 "\"excluded_categories\":[\"excluded\",\"exc_pattern*\"],"
34 "\"included_categories\":[\"included\"," 33 "\"included_categories\":[\"included\","
35 "\"inc_pattern*\"," 34 "\"inc_pattern*\","
36 "\"disabled-by-default-cc\"," 35 "\"disabled-by-default-cc\","
37 "\"disabled-by-default-memory-infra\"]," 36 "\"disabled-by-default-memory-infra\"],"
38 "\"memory_dump_config\":{" 37 "\"memory_dump_config\":{"
39 "\"heap_profiler_options\":{" 38 "\"heap_profiler_options\":{"
40 "\"breakdown_threshold_bytes\":10240" 39 "\"breakdown_threshold_bytes\":10240"
41 "}," 40 "},"
42 "\"triggers\":[" 41 "\"triggers\":["
43 "{\"mode\":\"light\",\"periodic_interval_ms\":50}," 42 "{\"mode\":\"light\",\"periodic_interval_ms\":50},"
44 "{\"mode\":\"detailed\",\"periodic_interval_ms\":1000}" 43 "{\"mode\":\"detailed\",\"periodic_interval_ms\":1000}"
45 "]" 44 "]"
46 "}," 45 "},"
47 "\"record_mode\":\"record-continuously\"," 46 "\"record_mode\":\"record-continuously\","
48 "\"synthetic_delays\":[\"test.Delay1;16\",\"test.Delay2;32\"]" 47 "\"synthetic_delays\":[\"test.Delay1;16\",\"test.Delay2;32\"]"
49 "}"; 48 "}";
50 49
50 void CheckDefaultTraceConfigBehavior(const TraceConfig& tc) {
51 EXPECT_EQ(RECORD_UNTIL_FULL, tc.GetTraceRecordMode());
52 EXPECT_FALSE(tc.IsSamplingEnabled());
53 EXPECT_FALSE(tc.IsSystraceEnabled());
54 EXPECT_FALSE(tc.IsArgumentFilterEnabled());
55
56 // Default trace config enables every category filter except the
57 // disabled-by-default-* ones.
58 EXPECT_TRUE(tc.IsCategoryGroupEnabled("Category1"));
59 EXPECT_TRUE(tc.IsCategoryGroupEnabled("not-excluded-category"));
60 EXPECT_FALSE(tc.IsCategoryGroupEnabled("disabled-by-default-cc"));
61
62 EXPECT_TRUE(tc.IsCategoryGroupEnabled("Category1,not-excluded-category"));
63 EXPECT_TRUE(tc.IsCategoryGroupEnabled("Category1,disabled-by-default-cc"));
64 EXPECT_FALSE(tc.IsCategoryGroupEnabled(
65 "disabled-by-default-cc,disabled-by-default-cc2"));
66 }
67
51 } // namespace 68 } // namespace
52 69
53 TEST(TraceConfigTest, TraceConfigFromValidLegacyFormat) { 70 TEST(TraceConfigTest, TraceConfigFromValidLegacyFormat) {
54 // From trace options strings 71 // From trace options strings
55 TraceConfig config("", "record-until-full"); 72 TraceConfig config("", "record-until-full");
56 EXPECT_EQ(RECORD_UNTIL_FULL, config.GetTraceRecordMode()); 73 EXPECT_EQ(RECORD_UNTIL_FULL, config.GetTraceRecordMode());
57 EXPECT_FALSE(config.IsSamplingEnabled()); 74 EXPECT_FALSE(config.IsSamplingEnabled());
58 EXPECT_FALSE(config.IsSystraceEnabled()); 75 EXPECT_FALSE(config.IsSystraceEnabled());
59 EXPECT_FALSE(config.IsArgumentFilterEnabled()); 76 EXPECT_FALSE(config.IsArgumentFilterEnabled());
60 EXPECT_STREQ("record-until-full", config.ToTraceOptionsString().c_str()); 77 EXPECT_STREQ("record-until-full", config.ToTraceOptionsString().c_str());
(...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after
148 165
149 config = TraceConfig("", RECORD_AS_MUCH_AS_POSSIBLE); 166 config = TraceConfig("", RECORD_AS_MUCH_AS_POSSIBLE);
150 EXPECT_EQ(RECORD_AS_MUCH_AS_POSSIBLE, config.GetTraceRecordMode()); 167 EXPECT_EQ(RECORD_AS_MUCH_AS_POSSIBLE, config.GetTraceRecordMode());
151 EXPECT_FALSE(config.IsSamplingEnabled()); 168 EXPECT_FALSE(config.IsSamplingEnabled());
152 EXPECT_FALSE(config.IsSystraceEnabled()); 169 EXPECT_FALSE(config.IsSystraceEnabled());
153 EXPECT_FALSE(config.IsArgumentFilterEnabled()); 170 EXPECT_FALSE(config.IsArgumentFilterEnabled());
154 EXPECT_STREQ("record-as-much-as-possible", 171 EXPECT_STREQ("record-as-much-as-possible",
155 config.ToTraceOptionsString().c_str()); 172 config.ToTraceOptionsString().c_str());
156 173
157 // From category filter strings 174 // From category filter strings
158 config = TraceConfig("-*Debug,-*Test", "");
159 EXPECT_STREQ("-*Debug,-*Test", config.ToCategoryFilterString().c_str());
160
161 config = TraceConfig("included,-excluded,inc_pattern*,-exc_pattern*", ""); 175 config = TraceConfig("included,-excluded,inc_pattern*,-exc_pattern*", "");
162 EXPECT_STREQ("included,inc_pattern*,-excluded,-exc_pattern*", 176 EXPECT_STREQ("included,inc_pattern*,-excluded,-exc_pattern*",
163 config.ToCategoryFilterString().c_str()); 177 config.ToCategoryFilterString().c_str());
164 178
165 config = TraceConfig("only_inc_cat", ""); 179 config = TraceConfig("only_inc_cat", "");
166 EXPECT_STREQ("only_inc_cat", config.ToCategoryFilterString().c_str()); 180 EXPECT_STREQ("only_inc_cat", config.ToCategoryFilterString().c_str());
167 181
168 config = TraceConfig("-only_exc_cat", ""); 182 config = TraceConfig("-only_exc_cat", "");
169 EXPECT_STREQ("-only_exc_cat", config.ToCategoryFilterString().c_str()); 183 EXPECT_STREQ("-only_exc_cat", config.ToCategoryFilterString().c_str());
170 184
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after
250 "DELAY(test.Delay)", 264 "DELAY(test.Delay)",
251 "DELAY(test.Delay;)" 265 "DELAY(test.Delay;)"
252 }; 266 };
253 for (size_t i = 0; i < arraysize(configs); i++) { 267 for (size_t i = 0; i < arraysize(configs); i++) {
254 TraceConfig tc(configs[i], ""); 268 TraceConfig tc(configs[i], "");
255 EXPECT_EQ(0u, tc.GetSyntheticDelayValues().size()); 269 EXPECT_EQ(0u, tc.GetSyntheticDelayValues().size());
256 } 270 }
257 } 271 }
258 272
259 TEST(TraceConfigTest, ConstructDefaultTraceConfig) { 273 TEST(TraceConfigTest, ConstructDefaultTraceConfig) {
260 // Make sure that upon an empty string, we fall back to the default config.
261 TraceConfig tc; 274 TraceConfig tc;
275 EXPECT_STREQ("", tc.ToCategoryFilterString().c_str());
276 EXPECT_STREQ(kDefaultTraceConfigString, tc.ToString().c_str());
277 CheckDefaultTraceConfigBehavior(tc);
278
279 // Constructors from category filter string and trace option string.
280 TraceConfig tc_asterisk("*", "");
281 EXPECT_STREQ("*", tc_asterisk.ToCategoryFilterString().c_str());
282 CheckDefaultTraceConfigBehavior(tc_asterisk);
283
284 TraceConfig tc_empty_category_filter("", "");
285 EXPECT_STREQ("", tc_empty_category_filter.ToCategoryFilterString().c_str());
286 EXPECT_STREQ(kDefaultTraceConfigString,
287 tc_empty_category_filter.ToString().c_str());
288 CheckDefaultTraceConfigBehavior(tc_empty_category_filter);
289
290 // Constructor from JSON formated config string.
291 TraceConfig tc_empty_json_string("");
292 EXPECT_STREQ("", tc_empty_json_string.ToCategoryFilterString().c_str());
293 EXPECT_STREQ(kDefaultTraceConfigString,
294 tc_empty_json_string.ToString().c_str());
295 CheckDefaultTraceConfigBehavior(tc_empty_json_string);
296
297 // Constructor from dictionary value.
298 DictionaryValue dict;
299 TraceConfig tc_dict(dict);
300 EXPECT_STREQ("", tc_dict.ToCategoryFilterString().c_str());
301 EXPECT_STREQ(kDefaultTraceConfigString, tc_dict.ToString().c_str());
302 CheckDefaultTraceConfigBehavior(tc_dict);
303 }
304
305 TEST(TraceConfigTest, EmptyAndAsteriskCategoryFilterString) {
306 TraceConfig tc_empty("", "");
307 TraceConfig tc_asterisk("*", "");
308
309 EXPECT_STREQ("", tc_empty.ToCategoryFilterString().c_str());
310 EXPECT_STREQ("*", tc_asterisk.ToCategoryFilterString().c_str());
311
312 // Both fall back to default config.
313 CheckDefaultTraceConfigBehavior(tc_empty);
314 CheckDefaultTraceConfigBehavior(tc_asterisk);
315
316 // They differ only for internal checking.
317 EXPECT_FALSE(tc_empty.IsCategoryEnabled("Category1"));
318 EXPECT_FALSE(tc_empty.IsCategoryEnabled("not-excluded-category"));
319 EXPECT_TRUE(tc_asterisk.IsCategoryEnabled("Category1"));
320 EXPECT_TRUE(tc_asterisk.IsCategoryEnabled("not-excluded-category"));
321 }
322
323 TEST(TraceConfigTest, TraceConfigFromDict) {
324 // Passing in empty dictionary will result in default trace config.
325 DictionaryValue dict;
326 TraceConfig tc(dict);
262 EXPECT_STREQ(kDefaultTraceConfigString, tc.ToString().c_str()); 327 EXPECT_STREQ(kDefaultTraceConfigString, tc.ToString().c_str());
263 EXPECT_EQ(RECORD_UNTIL_FULL, tc.GetTraceRecordMode()); 328 EXPECT_EQ(RECORD_UNTIL_FULL, tc.GetTraceRecordMode());
264 EXPECT_FALSE(tc.IsSamplingEnabled()); 329 EXPECT_FALSE(tc.IsSamplingEnabled());
265 EXPECT_FALSE(tc.IsSystraceEnabled()); 330 EXPECT_FALSE(tc.IsSystraceEnabled());
266 EXPECT_FALSE(tc.IsArgumentFilterEnabled());
267 EXPECT_STREQ("-*Debug,-*Test", tc.ToCategoryFilterString().c_str());
268
269 EXPECT_FALSE(tc.IsCategoryEnabled("Category1"));
270 EXPECT_FALSE(tc.IsCategoryEnabled("not-excluded-category"));
271 EXPECT_FALSE(tc.IsCategoryEnabled("CategoryTest"));
272 EXPECT_FALSE(tc.IsCategoryEnabled("CategoryDebug"));
273 EXPECT_FALSE(tc.IsCategoryEnabled("disabled-by-default-cc"));
274
275 EXPECT_TRUE(tc.IsCategoryGroupEnabled("Category1"));
276 EXPECT_TRUE(tc.IsCategoryGroupEnabled("not-excluded-category"));
277 EXPECT_FALSE(tc.IsCategoryGroupEnabled("CategoryTest"));
278 EXPECT_FALSE(tc.IsCategoryGroupEnabled("CategoryDebug"));
279 EXPECT_FALSE(tc.IsCategoryGroupEnabled("disabled-by-default-cc"));
280
281 EXPECT_TRUE(tc.IsCategoryGroupEnabled("Category1,CategoryDebug"));
282 EXPECT_TRUE(tc.IsCategoryGroupEnabled("CategoryDebug,Category1"));
283 EXPECT_TRUE(tc.IsCategoryGroupEnabled("CategoryTest,not-excluded-category"));
284 EXPECT_FALSE(tc.IsCategoryGroupEnabled("CategoryDebug,CategoryTest"));
285 }
286
287 TEST(TraceConfigTest, TraceConfigFromDict) {
288 // Passing in empty dictionary will not result in default trace config.
289 DictionaryValue dict;
290 TraceConfig tc(dict);
291 EXPECT_STRNE(kDefaultTraceConfigString, tc.ToString().c_str());
292 EXPECT_EQ(RECORD_UNTIL_FULL, tc.GetTraceRecordMode());
293 EXPECT_FALSE(tc.IsSamplingEnabled());
294 EXPECT_FALSE(tc.IsSystraceEnabled());
295 EXPECT_FALSE(tc.IsArgumentFilterEnabled()); 331 EXPECT_FALSE(tc.IsArgumentFilterEnabled());
296 EXPECT_STREQ("", tc.ToCategoryFilterString().c_str()); 332 EXPECT_STREQ("", tc.ToCategoryFilterString().c_str());
297 333
298 std::unique_ptr<Value> default_value( 334 std::unique_ptr<Value> default_value(
299 JSONReader::Read(kDefaultTraceConfigString)); 335 JSONReader::Read(kDefaultTraceConfigString));
300 DCHECK(default_value); 336 DCHECK(default_value);
301 const DictionaryValue* default_dict = nullptr; 337 const DictionaryValue* default_dict = nullptr;
302 bool is_dict = default_value->GetAsDictionary(&default_dict); 338 bool is_dict = default_value->GetAsDictionary(&default_dict);
303 DCHECK(is_dict); 339 DCHECK(is_dict);
304 TraceConfig default_tc(*default_dict); 340 TraceConfig default_tc(*default_dict);
305 EXPECT_STREQ(kDefaultTraceConfigString, default_tc.ToString().c_str()); 341 EXPECT_STREQ(kDefaultTraceConfigString, default_tc.ToString().c_str());
306 EXPECT_EQ(RECORD_UNTIL_FULL, default_tc.GetTraceRecordMode()); 342 EXPECT_EQ(RECORD_UNTIL_FULL, default_tc.GetTraceRecordMode());
307 EXPECT_FALSE(default_tc.IsSamplingEnabled()); 343 EXPECT_FALSE(default_tc.IsSamplingEnabled());
308 EXPECT_FALSE(default_tc.IsSystraceEnabled()); 344 EXPECT_FALSE(default_tc.IsSystraceEnabled());
309 EXPECT_FALSE(default_tc.IsArgumentFilterEnabled()); 345 EXPECT_FALSE(default_tc.IsArgumentFilterEnabled());
310 EXPECT_STREQ("-*Debug,-*Test", default_tc.ToCategoryFilterString().c_str()); 346 EXPECT_STREQ("", default_tc.ToCategoryFilterString().c_str());
311 347
312 std::unique_ptr<Value> custom_value( 348 std::unique_ptr<Value> custom_value(
313 JSONReader::Read(kCustomTraceConfigString)); 349 JSONReader::Read(kCustomTraceConfigString));
314 DCHECK(custom_value); 350 DCHECK(custom_value);
315 const DictionaryValue* custom_dict = nullptr; 351 const DictionaryValue* custom_dict = nullptr;
316 is_dict = custom_value->GetAsDictionary(&custom_dict); 352 is_dict = custom_value->GetAsDictionary(&custom_dict);
317 DCHECK(is_dict); 353 DCHECK(is_dict);
318 TraceConfig custom_tc(*custom_dict); 354 TraceConfig custom_tc(*custom_dict);
319 EXPECT_STREQ(kCustomTraceConfigString, custom_tc.ToString().c_str()); 355 EXPECT_STREQ(kCustomTraceConfigString, custom_tc.ToString().c_str());
320 EXPECT_EQ(RECORD_CONTINUOUSLY, custom_tc.GetTraceRecordMode()); 356 EXPECT_EQ(RECORD_CONTINUOUSLY, custom_tc.GetTraceRecordMode());
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after
398 434
399 TEST(TraceConfigTest, TraceConfigFromInvalidString) { 435 TEST(TraceConfigTest, TraceConfigFromInvalidString) {
400 // The config string needs to be a dictionary correctly formatted as a JSON 436 // The config string needs to be a dictionary correctly formatted as a JSON
401 // string. Otherwise, it will fall back to the default initialization. 437 // string. Otherwise, it will fall back to the default initialization.
402 TraceConfig tc(""); 438 TraceConfig tc("");
403 EXPECT_STREQ(kDefaultTraceConfigString, tc.ToString().c_str()); 439 EXPECT_STREQ(kDefaultTraceConfigString, tc.ToString().c_str());
404 EXPECT_EQ(RECORD_UNTIL_FULL, tc.GetTraceRecordMode()); 440 EXPECT_EQ(RECORD_UNTIL_FULL, tc.GetTraceRecordMode());
405 EXPECT_FALSE(tc.IsSamplingEnabled()); 441 EXPECT_FALSE(tc.IsSamplingEnabled());
406 EXPECT_FALSE(tc.IsSystraceEnabled()); 442 EXPECT_FALSE(tc.IsSystraceEnabled());
407 EXPECT_FALSE(tc.IsArgumentFilterEnabled()); 443 EXPECT_FALSE(tc.IsArgumentFilterEnabled());
408 EXPECT_STREQ("-*Debug,-*Test", tc.ToCategoryFilterString().c_str()); 444 EXPECT_STREQ("", tc.ToCategoryFilterString().c_str());
445 CheckDefaultTraceConfigBehavior(tc);
409 446
410 tc = TraceConfig("This is an invalid config string."); 447 tc = TraceConfig("This is an invalid config string.");
411 EXPECT_STREQ(kDefaultTraceConfigString, tc.ToString().c_str()); 448 EXPECT_STREQ(kDefaultTraceConfigString, tc.ToString().c_str());
412 EXPECT_EQ(RECORD_UNTIL_FULL, tc.GetTraceRecordMode()); 449 EXPECT_EQ(RECORD_UNTIL_FULL, tc.GetTraceRecordMode());
413 EXPECT_FALSE(tc.IsSamplingEnabled()); 450 EXPECT_FALSE(tc.IsSamplingEnabled());
414 EXPECT_FALSE(tc.IsSystraceEnabled()); 451 EXPECT_FALSE(tc.IsSystraceEnabled());
415 EXPECT_FALSE(tc.IsArgumentFilterEnabled()); 452 EXPECT_FALSE(tc.IsArgumentFilterEnabled());
416 EXPECT_STREQ("-*Debug,-*Test", tc.ToCategoryFilterString().c_str()); 453 EXPECT_STREQ("", tc.ToCategoryFilterString().c_str());
454 CheckDefaultTraceConfigBehavior(tc);
417 455
418 tc = TraceConfig("[\"This\", \"is\", \"not\", \"a\", \"dictionary\"]"); 456 tc = TraceConfig("[\"This\", \"is\", \"not\", \"a\", \"dictionary\"]");
419 EXPECT_STREQ(kDefaultTraceConfigString, tc.ToString().c_str()); 457 EXPECT_STREQ(kDefaultTraceConfigString, tc.ToString().c_str());
420 EXPECT_EQ(RECORD_UNTIL_FULL, tc.GetTraceRecordMode()); 458 EXPECT_EQ(RECORD_UNTIL_FULL, tc.GetTraceRecordMode());
421 EXPECT_FALSE(tc.IsSamplingEnabled()); 459 EXPECT_FALSE(tc.IsSamplingEnabled());
422 EXPECT_FALSE(tc.IsSystraceEnabled()); 460 EXPECT_FALSE(tc.IsSystraceEnabled());
423 EXPECT_FALSE(tc.IsArgumentFilterEnabled()); 461 EXPECT_FALSE(tc.IsArgumentFilterEnabled());
424 EXPECT_STREQ("-*Debug,-*Test", tc.ToCategoryFilterString().c_str()); 462 EXPECT_STREQ("", tc.ToCategoryFilterString().c_str());
463 CheckDefaultTraceConfigBehavior(tc);
425 464
426 tc = TraceConfig("{\"record_mode\": invalid-value-needs-double-quote}"); 465 tc = TraceConfig("{\"record_mode\": invalid-value-needs-double-quote}");
427 EXPECT_STREQ(kDefaultTraceConfigString, tc.ToString().c_str()); 466 EXPECT_STREQ(kDefaultTraceConfigString, tc.ToString().c_str());
428 EXPECT_EQ(RECORD_UNTIL_FULL, tc.GetTraceRecordMode()); 467 EXPECT_EQ(RECORD_UNTIL_FULL, tc.GetTraceRecordMode());
429 EXPECT_FALSE(tc.IsSamplingEnabled()); 468 EXPECT_FALSE(tc.IsSamplingEnabled());
430 EXPECT_FALSE(tc.IsSystraceEnabled()); 469 EXPECT_FALSE(tc.IsSystraceEnabled());
431 EXPECT_FALSE(tc.IsArgumentFilterEnabled()); 470 EXPECT_FALSE(tc.IsArgumentFilterEnabled());
432 EXPECT_STREQ("-*Debug,-*Test", tc.ToCategoryFilterString().c_str()); 471 EXPECT_STREQ("", tc.ToCategoryFilterString().c_str());
472 CheckDefaultTraceConfigBehavior(tc);
433 473
434 // If the config string a dictionary formatted as a JSON string, it will 474 // If the config string a dictionary formatted as a JSON string, it will
435 // initialize TraceConfig with best effort. 475 // initialize TraceConfig with best effort.
436 tc = TraceConfig("{}"); 476 tc = TraceConfig("{}");
437 EXPECT_EQ(RECORD_UNTIL_FULL, tc.GetTraceRecordMode()); 477 EXPECT_EQ(RECORD_UNTIL_FULL, tc.GetTraceRecordMode());
438 EXPECT_FALSE(tc.IsSamplingEnabled()); 478 EXPECT_FALSE(tc.IsSamplingEnabled());
439 EXPECT_FALSE(tc.IsSystraceEnabled()); 479 EXPECT_FALSE(tc.IsSystraceEnabled());
440 EXPECT_FALSE(tc.IsArgumentFilterEnabled()); 480 EXPECT_FALSE(tc.IsArgumentFilterEnabled());
441 EXPECT_STREQ("", tc.ToCategoryFilterString().c_str()); 481 EXPECT_STREQ("", tc.ToCategoryFilterString().c_str());
482 CheckDefaultTraceConfigBehavior(tc);
442 483
443 tc = TraceConfig("{\"arbitrary-key\":\"arbitrary-value\"}"); 484 tc = TraceConfig("{\"arbitrary-key\":\"arbitrary-value\"}");
444 EXPECT_EQ(RECORD_UNTIL_FULL, tc.GetTraceRecordMode()); 485 EXPECT_EQ(RECORD_UNTIL_FULL, tc.GetTraceRecordMode());
445 EXPECT_FALSE(tc.IsSamplingEnabled()); 486 EXPECT_FALSE(tc.IsSamplingEnabled());
446 EXPECT_FALSE(tc.IsSystraceEnabled()); 487 EXPECT_FALSE(tc.IsSystraceEnabled());
447 EXPECT_FALSE(tc.IsArgumentFilterEnabled()); 488 EXPECT_FALSE(tc.IsArgumentFilterEnabled());
448 EXPECT_STREQ("", tc.ToCategoryFilterString().c_str()); 489 EXPECT_STREQ("", tc.ToCategoryFilterString().c_str());
490 CheckDefaultTraceConfigBehavior(tc);
449 491
450 const char invalid_config_string[] = 492 const char invalid_config_string[] =
451 "{" 493 "{"
452 "\"enable_sampling\":\"true\"," 494 "\"enable_sampling\":\"true\","
453 "\"enable_systrace\":1," 495 "\"enable_systrace\":1,"
454 "\"excluded_categories\":[\"excluded\"]," 496 "\"excluded_categories\":[\"excluded\"],"
455 "\"included_categories\":\"not a list\"," 497 "\"included_categories\":\"not a list\","
456 "\"record_mode\":\"arbitrary-mode\"," 498 "\"record_mode\":\"arbitrary-mode\","
457 "\"synthetic_delays\":[\"test.Delay1;16\"," 499 "\"synthetic_delays\":[\"test.Delay1;16\","
458 "\"invalid-delay\"," 500 "\"invalid-delay\","
(...skipping 21 matching lines...) Expand all
480 522
481 TEST(TraceConfigTest, MergingTraceConfigs) { 523 TEST(TraceConfigTest, MergingTraceConfigs) {
482 // Merge 524 // Merge
483 TraceConfig tc; 525 TraceConfig tc;
484 TraceConfig tc2("included,-excluded,inc_pattern*,-exc_pattern*", ""); 526 TraceConfig tc2("included,-excluded,inc_pattern*,-exc_pattern*", "");
485 tc.Merge(tc2); 527 tc.Merge(tc2);
486 EXPECT_STREQ("{" 528 EXPECT_STREQ("{"
487 "\"enable_argument_filter\":false," 529 "\"enable_argument_filter\":false,"
488 "\"enable_sampling\":false," 530 "\"enable_sampling\":false,"
489 "\"enable_systrace\":false," 531 "\"enable_systrace\":false,"
490 "\"excluded_categories\":[" 532 "\"excluded_categories\":[\"excluded\",\"exc_pattern*\"],"
491 "\"*Debug\",\"*Test\",\"excluded\",\"exc_pattern*\""
492 "],"
493 "\"record_mode\":\"record-until-full\"" 533 "\"record_mode\":\"record-until-full\""
494 "}", 534 "}",
495 tc.ToString().c_str()); 535 tc.ToString().c_str());
496 536
497 tc = TraceConfig("DELAY(test.Delay1;16)", ""); 537 tc = TraceConfig("DELAY(test.Delay1;16)", "");
498 tc2 = TraceConfig("DELAY(test.Delay2;32)", ""); 538 tc2 = TraceConfig("DELAY(test.Delay2;32)", "");
499 tc.Merge(tc2); 539 tc.Merge(tc2);
500 EXPECT_EQ(2u, tc.GetSyntheticDelayValues().size()); 540 EXPECT_EQ(2u, tc.GetSyntheticDelayValues().size());
501 EXPECT_STREQ("test.Delay1;16", tc.GetSyntheticDelayValues()[0].c_str()); 541 EXPECT_STREQ("test.Delay1;16", tc.GetSyntheticDelayValues()[0].c_str());
502 EXPECT_STREQ("test.Delay2;32", tc.GetSyntheticDelayValues()[1].c_str()); 542 EXPECT_STREQ("test.Delay2;32", tc.GetSyntheticDelayValues()[1].c_str());
(...skipping 112 matching lines...) Expand 10 before | Expand all | Expand 10 after
615 EXPECT_NE(std::string::npos, tc.ToString().find("memory_dump_config")); 655 EXPECT_NE(std::string::npos, tc.ToString().find("memory_dump_config"));
616 EXPECT_EQ(2u, tc.memory_dump_config_.triggers.size()); 656 EXPECT_EQ(2u, tc.memory_dump_config_.triggers.size());
617 EXPECT_EQ(TraceConfig::MemoryDumpConfig::HeapProfiler 657 EXPECT_EQ(TraceConfig::MemoryDumpConfig::HeapProfiler
618 ::kDefaultBreakdownThresholdBytes, 658 ::kDefaultBreakdownThresholdBytes,
619 tc.memory_dump_config_.heap_profiler_options 659 tc.memory_dump_config_.heap_profiler_options
620 .breakdown_threshold_bytes); 660 .breakdown_threshold_bytes);
621 } 661 }
622 662
623 } // namespace trace_event 663 } // namespace trace_event
624 } // namespace base 664 } // namespace base
OLDNEW
« base/trace_event/trace_config.h ('K') | « base/trace_event/trace_config.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698