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

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

Issue 2739163004: [tracing] Use same code path for category filtering for recording and event filtering (Closed)
Patch Set: InitalizeWithString. Created 3 years, 9 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/json/json_writer.h" 8 #include "base/json/json_writer.h"
9 #include "base/macros.h" 9 #include "base/macros.h"
10 #include "base/trace_event/memory_dump_manager.h" 10 #include "base/trace_event/memory_dump_manager.h"
(...skipping 286 matching lines...) Expand 10 before | Expand all | Expand 10 after
297 TraceConfig tc_asterisk("*", ""); 297 TraceConfig tc_asterisk("*", "");
298 298
299 EXPECT_STREQ("", tc_empty.ToCategoryFilterString().c_str()); 299 EXPECT_STREQ("", tc_empty.ToCategoryFilterString().c_str());
300 EXPECT_STREQ("*", tc_asterisk.ToCategoryFilterString().c_str()); 300 EXPECT_STREQ("*", tc_asterisk.ToCategoryFilterString().c_str());
301 301
302 // Both fall back to default config. 302 // Both fall back to default config.
303 CheckDefaultTraceConfigBehavior(tc_empty); 303 CheckDefaultTraceConfigBehavior(tc_empty);
304 CheckDefaultTraceConfigBehavior(tc_asterisk); 304 CheckDefaultTraceConfigBehavior(tc_asterisk);
305 305
306 // They differ only for internal checking. 306 // They differ only for internal checking.
307 EXPECT_FALSE(tc_empty.IsCategoryEnabled("Category1")); 307 EXPECT_FALSE(tc_empty.category_filter().IsCategoryEnabled("Category1"));
308 EXPECT_FALSE(tc_empty.IsCategoryEnabled("not-excluded-category")); 308 EXPECT_FALSE(
309 EXPECT_TRUE(tc_asterisk.IsCategoryEnabled("Category1")); 309 tc_empty.category_filter().IsCategoryEnabled("not-excluded-category"));
310 EXPECT_TRUE(tc_asterisk.IsCategoryEnabled("not-excluded-category")); 310 EXPECT_TRUE(tc_asterisk.category_filter().IsCategoryEnabled("Category1"));
311 EXPECT_TRUE(
312 tc_asterisk.category_filter().IsCategoryEnabled("not-excluded-category"));
311 } 313 }
312 314
313 TEST(TraceConfigTest, DisabledByDefaultCategoryFilterString) { 315 TEST(TraceConfigTest, DisabledByDefaultCategoryFilterString) {
314 TraceConfig tc("foo,disabled-by-default-foo", ""); 316 TraceConfig tc("foo,disabled-by-default-foo", "");
315 EXPECT_STREQ("foo,disabled-by-default-foo", 317 EXPECT_STREQ("foo,disabled-by-default-foo",
316 tc.ToCategoryFilterString().c_str()); 318 tc.ToCategoryFilterString().c_str());
317 EXPECT_TRUE(tc.IsCategoryGroupEnabled("foo")); 319 EXPECT_TRUE(tc.IsCategoryGroupEnabled("foo"));
318 EXPECT_TRUE(tc.IsCategoryGroupEnabled("disabled-by-default-foo")); 320 EXPECT_TRUE(tc.IsCategoryGroupEnabled("disabled-by-default-foo"));
319 EXPECT_FALSE(tc.IsCategoryGroupEnabled("bar")); 321 EXPECT_FALSE(tc.IsCategoryGroupEnabled("bar"));
320 EXPECT_FALSE(tc.IsCategoryGroupEnabled("disabled-by-default-bar")); 322 EXPECT_FALSE(tc.IsCategoryGroupEnabled("disabled-by-default-bar"));
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after
395 TraceConfig tc(config_string); 397 TraceConfig tc(config_string);
396 398
397 EXPECT_STREQ(config_string, tc.ToString().c_str()); 399 EXPECT_STREQ(config_string, tc.ToString().c_str());
398 EXPECT_EQ(RECORD_CONTINUOUSLY, tc.GetTraceRecordMode()); 400 EXPECT_EQ(RECORD_CONTINUOUSLY, tc.GetTraceRecordMode());
399 EXPECT_TRUE(tc.IsSystraceEnabled()); 401 EXPECT_TRUE(tc.IsSystraceEnabled());
400 EXPECT_TRUE(tc.IsArgumentFilterEnabled()); 402 EXPECT_TRUE(tc.IsArgumentFilterEnabled());
401 EXPECT_STREQ("included,inc_pattern*,disabled-by-default-cc,-excluded," 403 EXPECT_STREQ("included,inc_pattern*,disabled-by-default-cc,-excluded,"
402 "-exc_pattern*,DELAY(test.Delay1;16),DELAY(test.Delay2;32)", 404 "-exc_pattern*,DELAY(test.Delay1;16),DELAY(test.Delay2;32)",
403 tc.ToCategoryFilterString().c_str()); 405 tc.ToCategoryFilterString().c_str());
404 406
405 EXPECT_TRUE(tc.IsCategoryEnabled("included")); 407 EXPECT_TRUE(tc.category_filter().IsCategoryEnabled("included"));
406 EXPECT_TRUE(tc.IsCategoryEnabled("inc_pattern_category")); 408 EXPECT_TRUE(tc.category_filter().IsCategoryEnabled("inc_pattern_category"));
407 EXPECT_TRUE(tc.IsCategoryEnabled("disabled-by-default-cc")); 409 EXPECT_TRUE(tc.category_filter().IsCategoryEnabled("disabled-by-default-cc"));
408 EXPECT_FALSE(tc.IsCategoryEnabled("excluded")); 410 EXPECT_FALSE(tc.category_filter().IsCategoryEnabled("excluded"));
409 EXPECT_FALSE(tc.IsCategoryEnabled("exc_pattern_category")); 411 EXPECT_FALSE(tc.category_filter().IsCategoryEnabled("exc_pattern_category"));
410 EXPECT_FALSE(tc.IsCategoryEnabled("disabled-by-default-others")); 412 EXPECT_FALSE(
411 EXPECT_FALSE(tc.IsCategoryEnabled("not-excluded-nor-included")); 413 tc.category_filter().IsCategoryEnabled("disabled-by-default-others"));
414 EXPECT_FALSE(
415 tc.category_filter().IsCategoryEnabled("not-excluded-nor-included"));
412 416
413 EXPECT_TRUE(tc.IsCategoryGroupEnabled("included")); 417 EXPECT_TRUE(tc.IsCategoryGroupEnabled("included"));
414 EXPECT_TRUE(tc.IsCategoryGroupEnabled("inc_pattern_category")); 418 EXPECT_TRUE(tc.IsCategoryGroupEnabled("inc_pattern_category"));
415 EXPECT_TRUE(tc.IsCategoryGroupEnabled("disabled-by-default-cc")); 419 EXPECT_TRUE(tc.IsCategoryGroupEnabled("disabled-by-default-cc"));
416 EXPECT_FALSE(tc.IsCategoryGroupEnabled("excluded")); 420 EXPECT_FALSE(tc.IsCategoryGroupEnabled("excluded"));
417 EXPECT_FALSE(tc.IsCategoryGroupEnabled("exc_pattern_category")); 421 EXPECT_FALSE(tc.IsCategoryGroupEnabled("exc_pattern_category"));
418 EXPECT_FALSE(tc.IsCategoryGroupEnabled("disabled-by-default-others")); 422 EXPECT_FALSE(tc.IsCategoryGroupEnabled("disabled-by-default-others"));
419 EXPECT_FALSE(tc.IsCategoryGroupEnabled("not-excluded-nor-included")); 423 EXPECT_FALSE(tc.IsCategoryGroupEnabled("not-excluded-nor-included"));
420 424
421 EXPECT_TRUE(tc.IsCategoryGroupEnabled("included,excluded")); 425 EXPECT_TRUE(tc.IsCategoryGroupEnabled("included,excluded"));
422 EXPECT_FALSE(tc.IsCategoryGroupEnabled("excluded,exc_pattern_category")); 426 EXPECT_FALSE(tc.IsCategoryGroupEnabled("excluded,exc_pattern_category"));
423 EXPECT_TRUE(tc.IsCategoryGroupEnabled("included,DELAY(test.Delay1;16)")); 427 EXPECT_TRUE(tc.IsCategoryGroupEnabled("included,DELAY(test.Delay1;16)"));
424 EXPECT_FALSE(tc.IsCategoryGroupEnabled("DELAY(test.Delay1;16)")); 428 EXPECT_FALSE(tc.IsCategoryGroupEnabled("DELAY(test.Delay1;16)"));
425 429
426 EXPECT_EQ(2u, tc.GetSyntheticDelayValues().size()); 430 EXPECT_EQ(2u, tc.GetSyntheticDelayValues().size());
427 EXPECT_STREQ("test.Delay1;16", tc.GetSyntheticDelayValues()[0].c_str()); 431 EXPECT_STREQ("test.Delay1;16", tc.GetSyntheticDelayValues()[0].c_str());
428 EXPECT_STREQ("test.Delay2;32", tc.GetSyntheticDelayValues()[1].c_str()); 432 EXPECT_STREQ("test.Delay2;32", tc.GetSyntheticDelayValues()[1].c_str());
429 433
430 EXPECT_EQ(tc.event_filters().size(), 1u); 434 EXPECT_EQ(tc.event_filters().size(), 1u);
431 const TraceConfig::EventFilterConfig& event_filter = tc.event_filters()[0]; 435 const TraceConfig::EventFilterConfig& event_filter = tc.event_filters()[0];
432 EXPECT_STREQ("event_whitelist_predicate", 436 EXPECT_STREQ("event_whitelist_predicate",
433 event_filter.predicate_name().c_str()); 437 event_filter.predicate_name().c_str());
434 EXPECT_EQ(1u, event_filter.included_categories().size()); 438 EXPECT_EQ(1u, event_filter.category_filter().included_categories().size());
435 EXPECT_STREQ("*", event_filter.included_categories()[0].c_str()); 439 EXPECT_STREQ("*",
436 EXPECT_EQ(1u, event_filter.excluded_categories().size()); 440 event_filter.category_filter().included_categories()[0].c_str());
437 EXPECT_STREQ("unfiltered_cat", event_filter.excluded_categories()[0].c_str()); 441 EXPECT_EQ(1u, event_filter.category_filter().excluded_categories().size());
442 EXPECT_STREQ("unfiltered_cat",
443 event_filter.category_filter().excluded_categories()[0].c_str());
438 EXPECT_TRUE(event_filter.filter_args()); 444 EXPECT_TRUE(event_filter.filter_args());
439 445
440 std::string json_out; 446 std::string json_out;
441 base::JSONWriter::Write(*event_filter.filter_args(), &json_out); 447 base::JSONWriter::Write(*event_filter.filter_args(), &json_out);
442 EXPECT_STREQ(json_out.c_str(), 448 EXPECT_STREQ(json_out.c_str(),
443 "{\"event_name_whitelist\":[\"a snake\",\"a dog\"]}"); 449 "{\"event_name_whitelist\":[\"a snake\",\"a dog\"]}");
444 std::unordered_set<std::string> filter_values; 450 std::unordered_set<std::string> filter_values;
445 EXPECT_TRUE(event_filter.GetArgAsSet("event_name_whitelist", &filter_values)); 451 EXPECT_TRUE(event_filter.GetArgAsSet("event_name_whitelist", &filter_values));
446 EXPECT_EQ(2u, filter_values.size()); 452 EXPECT_EQ(2u, filter_values.size());
447 EXPECT_EQ(1u, filter_values.count("a snake")); 453 EXPECT_EQ(1u, filter_values.count("a snake"));
448 EXPECT_EQ(1u, filter_values.count("a dog")); 454 EXPECT_EQ(1u, filter_values.count("a dog"));
449 455
450 const char config_string_2[] = "{\"included_categories\":[\"*\"]}"; 456 const char config_string_2[] = "{\"included_categories\":[\"*\"]}";
451 TraceConfig tc2(config_string_2); 457 TraceConfig tc2(config_string_2);
452 EXPECT_TRUE(tc2.IsCategoryEnabled("non-disabled-by-default-pattern")); 458 EXPECT_TRUE(tc2.category_filter().IsCategoryEnabled(
453 EXPECT_FALSE(tc2.IsCategoryEnabled("disabled-by-default-pattern")); 459 "non-disabled-by-default-pattern"));
460 EXPECT_FALSE(
461 tc2.category_filter().IsCategoryEnabled("disabled-by-default-pattern"));
454 EXPECT_TRUE(tc2.IsCategoryGroupEnabled("non-disabled-by-default-pattern")); 462 EXPECT_TRUE(tc2.IsCategoryGroupEnabled("non-disabled-by-default-pattern"));
455 EXPECT_FALSE(tc2.IsCategoryGroupEnabled("disabled-by-default-pattern")); 463 EXPECT_FALSE(tc2.IsCategoryGroupEnabled("disabled-by-default-pattern"));
456 464
457 // Clear 465 // Clear
458 tc.Clear(); 466 tc.Clear();
459 EXPECT_STREQ(tc.ToString().c_str(), 467 EXPECT_STREQ(tc.ToString().c_str(),
460 "{" 468 "{"
461 "\"enable_argument_filter\":false," 469 "\"enable_argument_filter\":false,"
462 "\"enable_systrace\":false," 470 "\"enable_systrace\":false,"
463 "\"record_mode\":\"record-until-full\"" 471 "\"record_mode\":\"record-until-full\""
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after
531 EXPECT_FALSE(tc.IsArgumentFilterEnabled()); 539 EXPECT_FALSE(tc.IsArgumentFilterEnabled());
532 EXPECT_STREQ("-excluded,DELAY(test.Delay1;16),DELAY(test.Delay2;32)", 540 EXPECT_STREQ("-excluded,DELAY(test.Delay1;16),DELAY(test.Delay2;32)",
533 tc.ToCategoryFilterString().c_str()); 541 tc.ToCategoryFilterString().c_str());
534 542
535 const char invalid_config_string_2[] = 543 const char invalid_config_string_2[] =
536 "{" 544 "{"
537 "\"included_categories\":[\"category\",\"disabled-by-default-pattern\"]," 545 "\"included_categories\":[\"category\",\"disabled-by-default-pattern\"],"
538 "\"excluded_categories\":[\"category\",\"disabled-by-default-pattern\"]" 546 "\"excluded_categories\":[\"category\",\"disabled-by-default-pattern\"]"
539 "}"; 547 "}";
540 tc = TraceConfig(invalid_config_string_2); 548 tc = TraceConfig(invalid_config_string_2);
541 EXPECT_TRUE(tc.IsCategoryEnabled("category")); 549 EXPECT_TRUE(tc.category_filter().IsCategoryEnabled("category"));
542 EXPECT_TRUE(tc.IsCategoryEnabled("disabled-by-default-pattern")); 550 EXPECT_TRUE(
551 tc.category_filter().IsCategoryEnabled("disabled-by-default-pattern"));
543 EXPECT_TRUE(tc.IsCategoryGroupEnabled("category")); 552 EXPECT_TRUE(tc.IsCategoryGroupEnabled("category"));
544 EXPECT_TRUE(tc.IsCategoryGroupEnabled("disabled-by-default-pattern")); 553 EXPECT_TRUE(tc.IsCategoryGroupEnabled("disabled-by-default-pattern"));
545 } 554 }
546 555
547 TEST(TraceConfigTest, MergingTraceConfigs) { 556 TEST(TraceConfigTest, MergingTraceConfigs) {
548 // Merge 557 // Merge
549 TraceConfig tc; 558 TraceConfig tc;
550 TraceConfig tc2("included,-excluded,inc_pattern*,-exc_pattern*", ""); 559 TraceConfig tc2("included,-excluded,inc_pattern*,-exc_pattern*", "");
551 tc.Merge(tc2); 560 tc.Merge(tc2);
552 EXPECT_STREQ("{" 561 EXPECT_STREQ("{"
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
584 EXPECT_TRUE(tc.IsCategoryGroupEnabled("included")); 593 EXPECT_TRUE(tc.IsCategoryGroupEnabled("included"));
585 EXPECT_FALSE(tc.IsCategoryGroupEnabled("other_included")); 594 EXPECT_FALSE(tc.IsCategoryGroupEnabled("other_included"));
586 595
587 // Excluding categories won't enable disabled-by-default ones with the 596 // Excluding categories won't enable disabled-by-default ones with the
588 // excluded category is also present in the group. 597 // excluded category is also present in the group.
589 tc = TraceConfig("-excluded", ""); 598 tc = TraceConfig("-excluded", "");
590 EXPECT_STREQ("-excluded", tc.ToCategoryFilterString().c_str()); 599 EXPECT_STREQ("-excluded", tc.ToCategoryFilterString().c_str());
591 EXPECT_FALSE(tc.IsCategoryGroupEnabled("excluded,disabled-by-default-cc")); 600 EXPECT_FALSE(tc.IsCategoryGroupEnabled("excluded,disabled-by-default-cc"));
592 } 601 }
593 602
594 TEST(TraceConfigTest, IsEmptyOrContainsLeadingOrTrailingWhitespace) { 603 TEST(TraceConfigTest, IsCategoryNameAllowed) {
595 // Test that IsEmptyOrContainsLeadingOrTrailingWhitespace actually catches 604 // Test that IsCategoryNameAllowed actually catches categories that are
596 // categories that are explicitly forbidden. 605 // explicitly forbidden. This method is called in a DCHECK to assert that we
597 // This method is called in a DCHECK to assert that we don't have these types 606 // don't have these types of strings as categories.
598 // of strings as categories. 607 EXPECT_FALSE(
599 EXPECT_TRUE(TraceConfig::IsEmptyOrContainsLeadingOrTrailingWhitespace( 608 TraceConfigCategoryFilter::IsCategoryNameAllowed(" bad_category "));
600 " bad_category ")); 609 EXPECT_FALSE(
601 EXPECT_TRUE(TraceConfig::IsEmptyOrContainsLeadingOrTrailingWhitespace( 610 TraceConfigCategoryFilter::IsCategoryNameAllowed(" bad_category"));
602 " bad_category")); 611 EXPECT_FALSE(
603 EXPECT_TRUE(TraceConfig::IsEmptyOrContainsLeadingOrTrailingWhitespace( 612 TraceConfigCategoryFilter::IsCategoryNameAllowed("bad_category "));
604 "bad_category ")); 613 EXPECT_FALSE(
605 EXPECT_TRUE(TraceConfig::IsEmptyOrContainsLeadingOrTrailingWhitespace( 614 TraceConfigCategoryFilter::IsCategoryNameAllowed(" bad_category"));
606 " bad_category")); 615 EXPECT_FALSE(
607 EXPECT_TRUE(TraceConfig::IsEmptyOrContainsLeadingOrTrailingWhitespace( 616 TraceConfigCategoryFilter::IsCategoryNameAllowed("bad_category "));
608 "bad_category ")); 617 EXPECT_FALSE(
609 EXPECT_TRUE(TraceConfig::IsEmptyOrContainsLeadingOrTrailingWhitespace( 618 TraceConfigCategoryFilter::IsCategoryNameAllowed(" bad_category "));
610 " bad_category ")); 619 EXPECT_FALSE(TraceConfigCategoryFilter::IsCategoryNameAllowed(""));
611 EXPECT_TRUE(TraceConfig::IsEmptyOrContainsLeadingOrTrailingWhitespace( 620 EXPECT_TRUE(
612 "")); 621 TraceConfigCategoryFilter::IsCategoryNameAllowed("good_category"));
613 EXPECT_FALSE(TraceConfig::IsEmptyOrContainsLeadingOrTrailingWhitespace(
614 "good_category"));
615 } 622 }
616 623
617 TEST(TraceConfigTest, SetTraceOptionValues) { 624 TEST(TraceConfigTest, SetTraceOptionValues) {
618 TraceConfig tc; 625 TraceConfig tc;
619 EXPECT_EQ(RECORD_UNTIL_FULL, tc.GetTraceRecordMode()); 626 EXPECT_EQ(RECORD_UNTIL_FULL, tc.GetTraceRecordMode());
620 EXPECT_FALSE(tc.IsSystraceEnabled()); 627 EXPECT_FALSE(tc.IsSystraceEnabled());
621 628
622 tc.SetTraceRecordMode(RECORD_AS_MUCH_AS_POSSIBLE); 629 tc.SetTraceRecordMode(RECORD_AS_MUCH_AS_POSSIBLE);
623 EXPECT_EQ(RECORD_AS_MUCH_AS_POSSIBLE, tc.GetTraceRecordMode()); 630 EXPECT_EQ(RECORD_AS_MUCH_AS_POSSIBLE, tc.GetTraceRecordMode());
624 631
625 tc.EnableSystrace(); 632 tc.EnableSystrace();
626 EXPECT_TRUE(tc.IsSystraceEnabled()); 633 EXPECT_TRUE(tc.IsSystraceEnabled());
627 } 634 }
628 635
629 TEST(TraceConfigTest, TraceConfigFromMemoryConfigString) { 636 TEST(TraceConfigTest, TraceConfigFromMemoryConfigString) {
630 std::string tc_str1 = 637 std::string tc_str1 =
631 TraceConfigMemoryTestUtil::GetTraceConfig_PeriodicTriggers(200, 2000); 638 TraceConfigMemoryTestUtil::GetTraceConfig_PeriodicTriggers(200, 2000);
632 TraceConfig tc1(tc_str1); 639 TraceConfig tc1(tc_str1);
633 EXPECT_EQ(tc_str1, tc1.ToString()); 640 EXPECT_EQ(tc_str1, tc1.ToString());
634 TraceConfig tc2( 641 TraceConfig tc2(
635 TraceConfigMemoryTestUtil::GetTraceConfig_LegacyPeriodicTriggers(200, 642 TraceConfigMemoryTestUtil::GetTraceConfig_LegacyPeriodicTriggers(200,
636 2000)); 643 2000));
637 EXPECT_EQ(tc_str1, tc2.ToString()); 644 EXPECT_EQ(tc_str1, tc2.ToString());
638 645
639 EXPECT_TRUE(tc1.IsCategoryGroupEnabled(MemoryDumpManager::kTraceCategory)); 646 EXPECT_TRUE(tc1.IsCategoryGroupEnabled(MemoryDumpManager::kTraceCategory));
640 ASSERT_EQ(2u, tc1.memory_dump_config_.triggers.size()); 647 ASSERT_EQ(2u, tc1.memory_dump_config().triggers.size());
641 648
642 EXPECT_EQ(200u, 649 EXPECT_EQ(200u,
643 tc1.memory_dump_config_.triggers[0].min_time_between_dumps_ms); 650 tc1.memory_dump_config().triggers[0].min_time_between_dumps_ms);
644 EXPECT_EQ(MemoryDumpLevelOfDetail::LIGHT, 651 EXPECT_EQ(MemoryDumpLevelOfDetail::LIGHT,
645 tc1.memory_dump_config_.triggers[0].level_of_detail); 652 tc1.memory_dump_config().triggers[0].level_of_detail);
646 653
647 EXPECT_EQ(2000u, 654 EXPECT_EQ(2000u,
648 tc1.memory_dump_config_.triggers[1].min_time_between_dumps_ms); 655 tc1.memory_dump_config().triggers[1].min_time_between_dumps_ms);
649 EXPECT_EQ(MemoryDumpLevelOfDetail::DETAILED, 656 EXPECT_EQ(MemoryDumpLevelOfDetail::DETAILED,
650 tc1.memory_dump_config_.triggers[1].level_of_detail); 657 tc1.memory_dump_config().triggers[1].level_of_detail);
651 EXPECT_EQ( 658 EXPECT_EQ(
652 2048u, 659 2048u,
653 tc1.memory_dump_config_.heap_profiler_options.breakdown_threshold_bytes); 660 tc1.memory_dump_config().heap_profiler_options.breakdown_threshold_bytes);
654 661
655 std::string tc_str3 = 662 std::string tc_str3 =
656 TraceConfigMemoryTestUtil::GetTraceConfig_BackgroundTrigger( 663 TraceConfigMemoryTestUtil::GetTraceConfig_BackgroundTrigger(
657 1 /* period_ms */); 664 1 /* period_ms */);
658 TraceConfig tc3(tc_str3); 665 TraceConfig tc3(tc_str3);
659 EXPECT_EQ(tc_str3, tc3.ToString()); 666 EXPECT_EQ(tc_str3, tc3.ToString());
660 EXPECT_TRUE(tc3.IsCategoryGroupEnabled(MemoryDumpManager::kTraceCategory)); 667 EXPECT_TRUE(tc3.IsCategoryGroupEnabled(MemoryDumpManager::kTraceCategory));
661 ASSERT_EQ(1u, tc3.memory_dump_config_.triggers.size()); 668 ASSERT_EQ(1u, tc3.memory_dump_config().triggers.size());
662 EXPECT_EQ(1u, tc3.memory_dump_config_.triggers[0].min_time_between_dumps_ms); 669 EXPECT_EQ(1u, tc3.memory_dump_config().triggers[0].min_time_between_dumps_ms);
663 EXPECT_EQ(MemoryDumpLevelOfDetail::BACKGROUND, 670 EXPECT_EQ(MemoryDumpLevelOfDetail::BACKGROUND,
664 tc3.memory_dump_config_.triggers[0].level_of_detail); 671 tc3.memory_dump_config().triggers[0].level_of_detail);
665 672
666 std::string tc_str4 = 673 std::string tc_str4 =
667 TraceConfigMemoryTestUtil::GetTraceConfig_PeakDetectionTrigger( 674 TraceConfigMemoryTestUtil::GetTraceConfig_PeakDetectionTrigger(
668 1 /*heavy_period */); 675 1 /*heavy_period */);
669 TraceConfig tc4(tc_str4); 676 TraceConfig tc4(tc_str4);
670 EXPECT_EQ(tc_str4, tc4.ToString()); 677 EXPECT_EQ(tc_str4, tc4.ToString());
671 ASSERT_EQ(1u, tc4.memory_dump_config_.triggers.size()); 678 ASSERT_EQ(1u, tc4.memory_dump_config().triggers.size());
672 EXPECT_EQ(1u, tc4.memory_dump_config_.triggers[0].min_time_between_dumps_ms); 679 EXPECT_EQ(1u, tc4.memory_dump_config().triggers[0].min_time_between_dumps_ms);
673 EXPECT_EQ(MemoryDumpLevelOfDetail::DETAILED, 680 EXPECT_EQ(MemoryDumpLevelOfDetail::DETAILED,
674 tc4.memory_dump_config_.triggers[0].level_of_detail); 681 tc4.memory_dump_config().triggers[0].level_of_detail);
675 } 682 }
676 683
677 TEST(TraceConfigTest, EmptyMemoryDumpConfigTest) { 684 TEST(TraceConfigTest, EmptyMemoryDumpConfigTest) {
678 // Empty trigger list should also be specified when converting back to string. 685 // Empty trigger list should also be specified when converting back to string.
679 TraceConfig tc(TraceConfigMemoryTestUtil::GetTraceConfig_EmptyTriggers()); 686 TraceConfig tc(TraceConfigMemoryTestUtil::GetTraceConfig_EmptyTriggers());
680 EXPECT_EQ(TraceConfigMemoryTestUtil::GetTraceConfig_EmptyTriggers(), 687 EXPECT_EQ(TraceConfigMemoryTestUtil::GetTraceConfig_EmptyTriggers(),
681 tc.ToString()); 688 tc.ToString());
682 EXPECT_EQ(0u, tc.memory_dump_config_.triggers.size()); 689 EXPECT_EQ(0u, tc.memory_dump_config().triggers.size());
683 EXPECT_EQ(TraceConfig::MemoryDumpConfig::HeapProfiler 690 EXPECT_EQ(
684 ::kDefaultBreakdownThresholdBytes, 691 TraceConfig::MemoryDumpConfig::HeapProfiler ::
685 tc.memory_dump_config_.heap_profiler_options 692 kDefaultBreakdownThresholdBytes,
686 .breakdown_threshold_bytes); 693 tc.memory_dump_config().heap_profiler_options.breakdown_threshold_bytes);
687 } 694 }
688 695
689 TEST(TraceConfigTest, LegacyStringToMemoryDumpConfig) { 696 TEST(TraceConfigTest, LegacyStringToMemoryDumpConfig) {
690 TraceConfig tc(MemoryDumpManager::kTraceCategory, ""); 697 TraceConfig tc(MemoryDumpManager::kTraceCategory, "");
691 EXPECT_TRUE(tc.IsCategoryGroupEnabled(MemoryDumpManager::kTraceCategory)); 698 EXPECT_TRUE(tc.IsCategoryGroupEnabled(MemoryDumpManager::kTraceCategory));
692 EXPECT_NE(std::string::npos, tc.ToString().find("memory_dump_config")); 699 EXPECT_NE(std::string::npos, tc.ToString().find("memory_dump_config"));
693 EXPECT_EQ(2u, tc.memory_dump_config_.triggers.size()); 700 EXPECT_EQ(2u, tc.memory_dump_config().triggers.size());
694 EXPECT_EQ(TraceConfig::MemoryDumpConfig::HeapProfiler 701 EXPECT_EQ(
695 ::kDefaultBreakdownThresholdBytes, 702 TraceConfig::MemoryDumpConfig::HeapProfiler ::
696 tc.memory_dump_config_.heap_profiler_options 703 kDefaultBreakdownThresholdBytes,
697 .breakdown_threshold_bytes); 704 tc.memory_dump_config().heap_profiler_options.breakdown_threshold_bytes);
698 } 705 }
699 706
700 } // namespace trace_event 707 } // namespace trace_event
701 } // namespace base 708 } // namespace base
OLDNEW
« no previous file with comments | « base/trace_event/trace_config_category_filter.cc ('k') | base/trace_event/trace_event_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698