| OLD | NEW |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 |
| OLD | NEW |