| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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/debug/trace_event_unittest.h" | 5 #include "base/debug/trace_event_unittest.h" |
| 6 | 6 |
| 7 #include "base/bind.h" | 7 #include "base/bind.h" |
| 8 #include "base/command_line.h" | 8 #include "base/command_line.h" |
| 9 #include "base/debug/trace_event.h" | 9 #include "base/debug/trace_event.h" |
| 10 #include "base/json/json_reader.h" | 10 #include "base/json/json_reader.h" |
| (...skipping 731 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 742 TEST_F(TraceEventTestFixture, Categories) { | 742 TEST_F(TraceEventTestFixture, Categories) { |
| 743 ManualTestSetUp(); | 743 ManualTestSetUp(); |
| 744 | 744 |
| 745 // Test that categories that are used can be retrieved whether trace was | 745 // Test that categories that are used can be retrieved whether trace was |
| 746 // enabled or disabled when the trace event was encountered. | 746 // enabled or disabled when the trace event was encountered. |
| 747 TRACE_EVENT_INSTANT0("c1", "name"); | 747 TRACE_EVENT_INSTANT0("c1", "name"); |
| 748 TRACE_EVENT_INSTANT0("c2", "name"); | 748 TRACE_EVENT_INSTANT0("c2", "name"); |
| 749 BeginTrace(); | 749 BeginTrace(); |
| 750 TRACE_EVENT_INSTANT0("c3", "name"); | 750 TRACE_EVENT_INSTANT0("c3", "name"); |
| 751 TRACE_EVENT_INSTANT0("c4", "name"); | 751 TRACE_EVENT_INSTANT0("c4", "name"); |
| 752 //Categories made of more than one tag. |
| 753 TRACE_EVENT_INSTANT0("c5,c6", "name"); |
| 754 TRACE_EVENT_INSTANT0("c7, c8", "name"); |
| 752 EndTraceAndFlush(); | 755 EndTraceAndFlush(); |
| 753 std::vector<std::string> cats; | 756 std::vector<std::string> cats; |
| 754 TraceLog::GetInstance()->GetKnownCategories(&cats); | 757 TraceLog::GetInstance()->GetKnownCategories(&cats); |
| 755 EXPECT_TRUE(std::find(cats.begin(), cats.end(), "c1") != cats.end()); | 758 EXPECT_TRUE(std::find(cats.begin(), cats.end(), "c1") != cats.end()); |
| 756 EXPECT_TRUE(std::find(cats.begin(), cats.end(), "c2") != cats.end()); | 759 EXPECT_TRUE(std::find(cats.begin(), cats.end(), "c2") != cats.end()); |
| 757 EXPECT_TRUE(std::find(cats.begin(), cats.end(), "c3") != cats.end()); | 760 EXPECT_TRUE(std::find(cats.begin(), cats.end(), "c3") != cats.end()); |
| 758 EXPECT_TRUE(std::find(cats.begin(), cats.end(), "c4") != cats.end()); | 761 EXPECT_TRUE(std::find(cats.begin(), cats.end(), "c4") != cats.end()); |
| 762 EXPECT_TRUE(std::find(cats.begin(), cats.end(), "c5,c6") != cats.end()); |
| 763 EXPECT_TRUE(std::find(cats.begin(), cats.end(), "c7, c8") != cats.end()); |
| 759 | 764 |
| 760 const std::vector<std::string> empty_categories; | 765 const std::vector<std::string> empty_tag_patterns; |
| 761 std::vector<std::string> included_categories; | 766 std::vector<std::string> included_tag_patterns; |
| 762 std::vector<std::string> excluded_categories; | 767 std::vector<std::string> excluded_tag_patterns; |
| 763 | 768 |
| 764 // Test that category filtering works. | 769 // Test that category filtering works. |
| 765 | 770 |
| 766 // Include nonexistent category -> no events | 771 // Include nonexistent category -> no events |
| 767 Clear(); | 772 Clear(); |
| 768 included_categories.clear(); | 773 included_tag_patterns.clear(); |
| 769 included_categories.push_back("not_found823564786"); | 774 included_tag_patterns.push_back("not_found823564786"); |
| 770 TraceLog::GetInstance()->SetEnabled(included_categories, empty_categories); | 775 TraceLog::GetInstance()->SetEnabled(included_tag_patterns, |
| 776 empty_tag_patterns); |
| 771 TRACE_EVENT_INSTANT0("cat1", "name"); | 777 TRACE_EVENT_INSTANT0("cat1", "name"); |
| 772 TRACE_EVENT_INSTANT0("cat2", "name"); | 778 TRACE_EVENT_INSTANT0("cat2", "name"); |
| 773 EndTraceAndFlush(); | 779 EndTraceAndFlush(); |
| 774 EXPECT_TRUE(trace_parsed_.empty()); | 780 EXPECT_TRUE(trace_parsed_.empty()); |
| 775 | 781 |
| 776 // Include existent category -> only events of that category | 782 // Include existent category -> only events of that category |
| 777 Clear(); | 783 Clear(); |
| 778 included_categories.clear(); | 784 included_tag_patterns.clear(); |
| 779 included_categories.push_back("inc"); | 785 included_tag_patterns.push_back("inc"); |
| 780 TraceLog::GetInstance()->SetEnabled(included_categories, empty_categories); | 786 TraceLog::GetInstance()->SetEnabled(included_tag_patterns, |
| 787 empty_tag_patterns); |
| 781 TRACE_EVENT_INSTANT0("inc", "name"); | 788 TRACE_EVENT_INSTANT0("inc", "name"); |
| 782 TRACE_EVENT_INSTANT0("inc2", "name"); | 789 TRACE_EVENT_INSTANT0("inc2", "name"); |
| 783 EndTraceAndFlush(); | 790 EndTraceAndFlush(); |
| 784 EXPECT_TRUE(FindMatchingValue("cat", "inc")); | 791 EXPECT_TRUE(FindMatchingValue("cat", "inc")); |
| 785 EXPECT_FALSE(FindNonMatchingValue("cat", "inc")); | 792 EXPECT_FALSE(FindNonMatchingValue("cat", "inc")); |
| 786 | 793 |
| 787 // Include existent wildcard -> all categories matching wildcard | 794 // Include existent wildcard -> all categories matching wildcard |
| 788 Clear(); | 795 Clear(); |
| 789 included_categories.clear(); | 796 included_tag_patterns.clear(); |
| 790 included_categories.push_back("inc_wildcard_*"); | 797 included_tag_patterns.push_back("inc_wildcard_*"); |
| 791 included_categories.push_back("inc_wildchar_?_end"); | 798 included_tag_patterns.push_back("inc_wildchar_?_end"); |
| 792 TraceLog::GetInstance()->SetEnabled(included_categories, empty_categories); | 799 TraceLog::GetInstance()->SetEnabled(included_tag_patterns, |
| 800 empty_tag_patterns); |
| 793 TRACE_EVENT_INSTANT0("inc_wildcard_abc", "included"); | 801 TRACE_EVENT_INSTANT0("inc_wildcard_abc", "included"); |
| 802 TRACE_EVENT_INSTANT0("inc_wildcard_tag,other_tag", "included"); |
| 803 TRACE_EVENT_INSTANT0("non_included_tag , inc_wildcard_tag", "included"); |
| 794 TRACE_EVENT_INSTANT0("inc_wildcard_", "included"); | 804 TRACE_EVENT_INSTANT0("inc_wildcard_", "included"); |
| 795 TRACE_EVENT_INSTANT0("inc_wildchar_x_end", "included"); | 805 TRACE_EVENT_INSTANT0("inc_wildchar_x_end", "included"); |
| 796 TRACE_EVENT_INSTANT0("inc_wildchar_bla_end", "not_inc"); | 806 TRACE_EVENT_INSTANT0("inc_wildchar_bla_end", "not_inc"); |
| 797 TRACE_EVENT_INSTANT0("cat1", "not_inc"); | 807 TRACE_EVENT_INSTANT0("cat1", "not_inc"); |
| 798 TRACE_EVENT_INSTANT0("cat2", "not_inc"); | 808 TRACE_EVENT_INSTANT0("cat2", "not_inc"); |
| 799 EndTraceAndFlush(); | 809 EndTraceAndFlush(); |
| 800 EXPECT_TRUE(FindMatchingValue("cat", "inc_wildcard_abc")); | 810 EXPECT_TRUE(FindMatchingValue("cat", "inc_wildcard_abc")); |
| 811 EXPECT_TRUE(FindMatchingValue("cat", "inc_wildcard_tag,other_tag")); |
| 812 EXPECT_TRUE(FindMatchingValue("cat", "non_included_tag , inc_wildcard_tag")); |
| 801 EXPECT_TRUE(FindMatchingValue("cat", "inc_wildcard_")); | 813 EXPECT_TRUE(FindMatchingValue("cat", "inc_wildcard_")); |
| 802 EXPECT_TRUE(FindMatchingValue("cat", "inc_wildchar_x_end")); | 814 EXPECT_TRUE(FindMatchingValue("cat", "inc_wildchar_x_end")); |
| 803 EXPECT_FALSE(FindMatchingValue("name", "not_inc")); | 815 EXPECT_FALSE(FindMatchingValue("name", "not_inc")); |
| 804 | 816 |
| 805 included_categories.clear(); | 817 included_tag_patterns.clear(); |
| 806 | 818 |
| 807 // Exclude nonexistent category -> all events | 819 // Exclude nonexistent category -> all events |
| 808 Clear(); | 820 Clear(); |
| 809 excluded_categories.clear(); | 821 excluded_tag_patterns.clear(); |
| 810 excluded_categories.push_back("not_found823564786"); | 822 excluded_tag_patterns.push_back("not_found823564786"); |
| 811 TraceLog::GetInstance()->SetEnabled(empty_categories, excluded_categories); | 823 TraceLog::GetInstance()->SetEnabled(empty_tag_patterns, |
| 824 excluded_tag_patterns); |
| 812 TRACE_EVENT_INSTANT0("cat1", "name"); | 825 TRACE_EVENT_INSTANT0("cat1", "name"); |
| 813 TRACE_EVENT_INSTANT0("cat2", "name"); | 826 TRACE_EVENT_INSTANT0("cat2", "name"); |
| 827 TRACE_EVENT_INSTANT0("tag1, tag2", "name"); |
| 814 EndTraceAndFlush(); | 828 EndTraceAndFlush(); |
| 815 EXPECT_TRUE(FindMatchingValue("cat", "cat1")); | 829 EXPECT_TRUE(FindMatchingValue("cat", "cat1")); |
| 816 EXPECT_TRUE(FindMatchingValue("cat", "cat2")); | 830 EXPECT_TRUE(FindMatchingValue("cat", "cat2")); |
| 831 EXPECT_TRUE(FindMatchingValue("cat", "tag1, tag2")); |
| 817 | 832 |
| 818 // Exclude existent category -> only events of other categories | 833 // Exclude existent category -> only events of other categories |
| 819 Clear(); | 834 Clear(); |
| 820 excluded_categories.clear(); | 835 excluded_tag_patterns.clear(); |
| 821 excluded_categories.push_back("inc"); | 836 excluded_tag_patterns.push_back("inc"); |
| 822 TraceLog::GetInstance()->SetEnabled(empty_categories, excluded_categories); | 837 TraceLog::GetInstance()->SetEnabled(empty_tag_patterns, |
| 838 excluded_tag_patterns); |
| 823 TRACE_EVENT_INSTANT0("inc", "name"); | 839 TRACE_EVENT_INSTANT0("inc", "name"); |
| 840 TRACE_EVENT_INSTANT0("inc2, inc", "name"); |
| 841 TRACE_EVENT_INSTANT0("inc, inc2", "name"); |
| 824 TRACE_EVENT_INSTANT0("inc2", "name"); | 842 TRACE_EVENT_INSTANT0("inc2", "name"); |
| 825 EndTraceAndFlush(); | 843 EndTraceAndFlush(); |
| 826 EXPECT_TRUE(FindMatchingValue("cat", "inc2")); | 844 EXPECT_TRUE(FindMatchingValue("cat", "inc2")); |
| 827 EXPECT_FALSE(FindMatchingValue("cat", "inc")); | 845 EXPECT_FALSE(FindMatchingValue("cat", "inc")); |
| 846 EXPECT_FALSE(FindMatchingValue("cat", "inc2, inc")); |
| 847 EXPECT_FALSE(FindMatchingValue("cat", "inc, inc2")); |
| 828 | 848 |
| 829 // Exclude existent wildcard -> all categories not matching wildcard | 849 // Exclude existent wildcard -> all categories not matching wildcard |
| 830 Clear(); | 850 Clear(); |
| 831 excluded_categories.clear(); | 851 excluded_tag_patterns.clear(); |
| 832 excluded_categories.push_back("inc_wildcard_*"); | 852 excluded_tag_patterns.push_back("inc_wildcard_*"); |
| 833 excluded_categories.push_back("inc_wildchar_?_end"); | 853 excluded_tag_patterns.push_back("inc_wildchar_?_end"); |
| 834 TraceLog::GetInstance()->SetEnabled(empty_categories, excluded_categories); | 854 TraceLog::GetInstance()->SetEnabled(empty_tag_patterns, |
| 855 excluded_tag_patterns); |
| 835 TRACE_EVENT_INSTANT0("inc_wildcard_abc", "not_inc"); | 856 TRACE_EVENT_INSTANT0("inc_wildcard_abc", "not_inc"); |
| 836 TRACE_EVENT_INSTANT0("inc_wildcard_", "not_inc"); | 857 TRACE_EVENT_INSTANT0("inc_wildcard_", "not_inc"); |
| 837 TRACE_EVENT_INSTANT0("inc_wildchar_x_end", "not_inc"); | 858 TRACE_EVENT_INSTANT0("inc_wildchar_x_end", "not_inc"); |
| 838 TRACE_EVENT_INSTANT0("inc_wildchar_bla_end", "included"); | 859 TRACE_EVENT_INSTANT0("inc_wildchar_bla_end", "included"); |
| 839 TRACE_EVENT_INSTANT0("cat1", "included"); | 860 TRACE_EVENT_INSTANT0("cat1", "included"); |
| 840 TRACE_EVENT_INSTANT0("cat2", "included"); | 861 TRACE_EVENT_INSTANT0("cat2", "included"); |
| 841 EndTraceAndFlush(); | 862 EndTraceAndFlush(); |
| 842 EXPECT_TRUE(FindMatchingValue("cat", "inc_wildchar_bla_end")); | 863 EXPECT_TRUE(FindMatchingValue("cat", "inc_wildchar_bla_end")); |
| 843 EXPECT_TRUE(FindMatchingValue("cat", "cat1")); | 864 EXPECT_TRUE(FindMatchingValue("cat", "cat1")); |
| 844 EXPECT_TRUE(FindMatchingValue("cat", "cat2")); | 865 EXPECT_TRUE(FindMatchingValue("cat", "cat2")); |
| (...skipping 561 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1406 trace_log->SetEnabled(std::string("moo")); | 1427 trace_log->SetEnabled(std::string("moo")); |
| 1407 EXPECT_TRUE(*trace_log->GetCategoryEnabled("baz")); | 1428 EXPECT_TRUE(*trace_log->GetCategoryEnabled("baz")); |
| 1408 EXPECT_TRUE(*trace_log->GetCategoryEnabled("moo")); | 1429 EXPECT_TRUE(*trace_log->GetCategoryEnabled("moo")); |
| 1409 EXPECT_TRUE(*trace_log->GetCategoryEnabled("foo")); | 1430 EXPECT_TRUE(*trace_log->GetCategoryEnabled("foo")); |
| 1410 trace_log->SetDisabled(); | 1431 trace_log->SetDisabled(); |
| 1411 trace_log->SetDisabled(); | 1432 trace_log->SetDisabled(); |
| 1412 } | 1433 } |
| 1413 | 1434 |
| 1414 } // namespace debug | 1435 } // namespace debug |
| 1415 } // namespace base | 1436 } // namespace base |
| OLD | NEW |