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 |