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 726 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
737 TEST_F(TraceEventTestFixture, Categories) { | 737 TEST_F(TraceEventTestFixture, Categories) { |
738 ManualTestSetUp(); | 738 ManualTestSetUp(); |
739 | 739 |
740 // Test that categories that are used can be retrieved whether trace was | 740 // Test that categories that are used can be retrieved whether trace was |
741 // enabled or disabled when the trace event was encountered. | 741 // enabled or disabled when the trace event was encountered. |
742 TRACE_EVENT_INSTANT0("c1", "name"); | 742 TRACE_EVENT_INSTANT0("c1", "name"); |
743 TRACE_EVENT_INSTANT0("c2", "name"); | 743 TRACE_EVENT_INSTANT0("c2", "name"); |
744 BeginTrace(); | 744 BeginTrace(); |
745 TRACE_EVENT_INSTANT0("c3", "name"); | 745 TRACE_EVENT_INSTANT0("c3", "name"); |
746 TRACE_EVENT_INSTANT0("c4", "name"); | 746 TRACE_EVENT_INSTANT0("c4", "name"); |
| 747 //Categories made of more than one tag. |
| 748 TRACE_EVENT_INSTANT0("c5,c6", "name"); |
| 749 TRACE_EVENT_INSTANT0("c7, c8", "name"); |
747 EndTraceAndFlush(); | 750 EndTraceAndFlush(); |
748 std::vector<std::string> cats; | 751 std::vector<std::string> cats; |
749 TraceLog::GetInstance()->GetKnownCategories(&cats); | 752 TraceLog::GetInstance()->GetKnownCategories(&cats); |
750 EXPECT_TRUE(std::find(cats.begin(), cats.end(), "c1") != cats.end()); | 753 EXPECT_TRUE(std::find(cats.begin(), cats.end(), "c1") != cats.end()); |
751 EXPECT_TRUE(std::find(cats.begin(), cats.end(), "c2") != cats.end()); | 754 EXPECT_TRUE(std::find(cats.begin(), cats.end(), "c2") != cats.end()); |
752 EXPECT_TRUE(std::find(cats.begin(), cats.end(), "c3") != cats.end()); | 755 EXPECT_TRUE(std::find(cats.begin(), cats.end(), "c3") != cats.end()); |
753 EXPECT_TRUE(std::find(cats.begin(), cats.end(), "c4") != cats.end()); | 756 EXPECT_TRUE(std::find(cats.begin(), cats.end(), "c4") != cats.end()); |
| 757 EXPECT_TRUE(std::find(cats.begin(), cats.end(), "c5,c6") != cats.end()); |
| 758 EXPECT_TRUE(std::find(cats.begin(), cats.end(), "c7, c8") != cats.end()); |
754 | 759 |
755 const std::vector<std::string> empty_categories; | 760 const std::vector<std::string> empty_tag_patterns; |
756 std::vector<std::string> included_categories; | 761 std::vector<std::string> included_tag_patterns; |
757 std::vector<std::string> excluded_categories; | 762 std::vector<std::string> excluded_tag_patterns; |
758 | 763 |
759 // Test that category filtering works. | 764 // Test that category filtering works. |
760 | 765 |
761 // Include nonexistent category -> no events | 766 // Include nonexistent category -> no events |
762 Clear(); | 767 Clear(); |
763 included_categories.clear(); | 768 included_tag_patterns.clear(); |
764 included_categories.push_back("not_found823564786"); | 769 included_tag_patterns.push_back("not_found823564786"); |
765 TraceLog::GetInstance()->SetEnabled(included_categories, empty_categories); | 770 TraceLog::GetInstance()->SetEnabled(included_tag_patterns, |
| 771 empty_tag_patterns); |
766 TRACE_EVENT_INSTANT0("cat1", "name"); | 772 TRACE_EVENT_INSTANT0("cat1", "name"); |
767 TRACE_EVENT_INSTANT0("cat2", "name"); | 773 TRACE_EVENT_INSTANT0("cat2", "name"); |
768 EndTraceAndFlush(); | 774 EndTraceAndFlush(); |
769 EXPECT_TRUE(trace_parsed_.empty()); | 775 EXPECT_TRUE(trace_parsed_.empty()); |
770 | 776 |
771 // Include existent category -> only events of that category | 777 // Include existent category -> only events of that category |
772 Clear(); | 778 Clear(); |
773 included_categories.clear(); | 779 included_tag_patterns.clear(); |
774 included_categories.push_back("inc"); | 780 included_tag_patterns.push_back("inc"); |
775 TraceLog::GetInstance()->SetEnabled(included_categories, empty_categories); | 781 TraceLog::GetInstance()->SetEnabled(included_tag_patterns, |
| 782 empty_tag_patterns); |
776 TRACE_EVENT_INSTANT0("inc", "name"); | 783 TRACE_EVENT_INSTANT0("inc", "name"); |
777 TRACE_EVENT_INSTANT0("inc2", "name"); | 784 TRACE_EVENT_INSTANT0("inc2", "name"); |
778 EndTraceAndFlush(); | 785 EndTraceAndFlush(); |
779 EXPECT_TRUE(FindMatchingValue("cat", "inc")); | 786 EXPECT_TRUE(FindMatchingValue("cat", "inc")); |
780 EXPECT_FALSE(FindNonMatchingValue("cat", "inc")); | 787 EXPECT_FALSE(FindNonMatchingValue("cat", "inc")); |
781 | 788 |
782 // Include existent wildcard -> all categories matching wildcard | 789 // Include existent wildcard -> all categories matching wildcard |
783 Clear(); | 790 Clear(); |
784 included_categories.clear(); | 791 included_tag_patterns.clear(); |
785 included_categories.push_back("inc_wildcard_*"); | 792 included_tag_patterns.push_back("inc_wildcard_*"); |
786 included_categories.push_back("inc_wildchar_?_end"); | 793 included_tag_patterns.push_back("inc_wildchar_?_end"); |
787 TraceLog::GetInstance()->SetEnabled(included_categories, empty_categories); | 794 TraceLog::GetInstance()->SetEnabled(included_tag_patterns, |
| 795 empty_tag_patterns); |
788 TRACE_EVENT_INSTANT0("inc_wildcard_abc", "included"); | 796 TRACE_EVENT_INSTANT0("inc_wildcard_abc", "included"); |
| 797 TRACE_EVENT_INSTANT0("inc_wildcard_tag,other_tag", "included"); |
| 798 TRACE_EVENT_INSTANT0("non_included_tag , inc_wildcard_tag", "included"); |
789 TRACE_EVENT_INSTANT0("inc_wildcard_", "included"); | 799 TRACE_EVENT_INSTANT0("inc_wildcard_", "included"); |
790 TRACE_EVENT_INSTANT0("inc_wildchar_x_end", "included"); | 800 TRACE_EVENT_INSTANT0("inc_wildchar_x_end", "included"); |
791 TRACE_EVENT_INSTANT0("inc_wildchar_bla_end", "not_inc"); | 801 TRACE_EVENT_INSTANT0("inc_wildchar_bla_end", "not_inc"); |
792 TRACE_EVENT_INSTANT0("cat1", "not_inc"); | 802 TRACE_EVENT_INSTANT0("cat1", "not_inc"); |
793 TRACE_EVENT_INSTANT0("cat2", "not_inc"); | 803 TRACE_EVENT_INSTANT0("cat2", "not_inc"); |
794 EndTraceAndFlush(); | 804 EndTraceAndFlush(); |
795 EXPECT_TRUE(FindMatchingValue("cat", "inc_wildcard_abc")); | 805 EXPECT_TRUE(FindMatchingValue("cat", "inc_wildcard_abc")); |
| 806 EXPECT_TRUE(FindMatchingValue("cat", "inc_wildcard_tag,other_tag")); |
| 807 EXPECT_TRUE(FindMatchingValue("cat", "non_included_tag , inc_wildcard_tag")); |
796 EXPECT_TRUE(FindMatchingValue("cat", "inc_wildcard_")); | 808 EXPECT_TRUE(FindMatchingValue("cat", "inc_wildcard_")); |
797 EXPECT_TRUE(FindMatchingValue("cat", "inc_wildchar_x_end")); | 809 EXPECT_TRUE(FindMatchingValue("cat", "inc_wildchar_x_end")); |
798 EXPECT_FALSE(FindMatchingValue("name", "not_inc")); | 810 EXPECT_FALSE(FindMatchingValue("name", "not_inc")); |
799 | 811 |
800 included_categories.clear(); | 812 included_tag_patterns.clear(); |
801 | 813 |
802 // Exclude nonexistent category -> all events | 814 // Exclude nonexistent category -> all events |
803 Clear(); | 815 Clear(); |
804 excluded_categories.clear(); | 816 excluded_tag_patterns.clear(); |
805 excluded_categories.push_back("not_found823564786"); | 817 excluded_tag_patterns.push_back("not_found823564786"); |
806 TraceLog::GetInstance()->SetEnabled(empty_categories, excluded_categories); | 818 TraceLog::GetInstance()->SetEnabled(empty_tag_patterns, |
| 819 excluded_tag_patterns); |
807 TRACE_EVENT_INSTANT0("cat1", "name"); | 820 TRACE_EVENT_INSTANT0("cat1", "name"); |
808 TRACE_EVENT_INSTANT0("cat2", "name"); | 821 TRACE_EVENT_INSTANT0("cat2", "name"); |
| 822 TRACE_EVENT_INSTANT0("tag1, tag2", "name"); |
809 EndTraceAndFlush(); | 823 EndTraceAndFlush(); |
810 EXPECT_TRUE(FindMatchingValue("cat", "cat1")); | 824 EXPECT_TRUE(FindMatchingValue("cat", "cat1")); |
811 EXPECT_TRUE(FindMatchingValue("cat", "cat2")); | 825 EXPECT_TRUE(FindMatchingValue("cat", "cat2")); |
| 826 EXPECT_TRUE(FindMatchingValue("cat", "tag1, tag2")); |
812 | 827 |
813 // Exclude existent category -> only events of other categories | 828 // Exclude existent category -> only events of other categories |
814 Clear(); | 829 Clear(); |
815 excluded_categories.clear(); | 830 excluded_tag_patterns.clear(); |
816 excluded_categories.push_back("inc"); | 831 excluded_tag_patterns.push_back("inc"); |
817 TraceLog::GetInstance()->SetEnabled(empty_categories, excluded_categories); | 832 TraceLog::GetInstance()->SetEnabled(empty_tag_patterns, |
| 833 excluded_tag_patterns); |
818 TRACE_EVENT_INSTANT0("inc", "name"); | 834 TRACE_EVENT_INSTANT0("inc", "name"); |
| 835 TRACE_EVENT_INSTANT0("inc2, inc", "name"); |
| 836 TRACE_EVENT_INSTANT0("inc, inc2", "name"); |
819 TRACE_EVENT_INSTANT0("inc2", "name"); | 837 TRACE_EVENT_INSTANT0("inc2", "name"); |
820 EndTraceAndFlush(); | 838 EndTraceAndFlush(); |
821 EXPECT_TRUE(FindMatchingValue("cat", "inc2")); | 839 EXPECT_TRUE(FindMatchingValue("cat", "inc2")); |
822 EXPECT_FALSE(FindMatchingValue("cat", "inc")); | 840 EXPECT_FALSE(FindMatchingValue("cat", "inc")); |
| 841 EXPECT_FALSE(FindMatchingValue("cat", "inc2, inc")); |
| 842 EXPECT_FALSE(FindMatchingValue("cat", "inc, inc2")); |
823 | 843 |
824 // Exclude existent wildcard -> all categories not matching wildcard | 844 // Exclude existent wildcard -> all categories not matching wildcard |
825 Clear(); | 845 Clear(); |
826 excluded_categories.clear(); | 846 excluded_tag_patterns.clear(); |
827 excluded_categories.push_back("inc_wildcard_*"); | 847 excluded_tag_patterns.push_back("inc_wildcard_*"); |
828 excluded_categories.push_back("inc_wildchar_?_end"); | 848 excluded_tag_patterns.push_back("inc_wildchar_?_end"); |
829 TraceLog::GetInstance()->SetEnabled(empty_categories, excluded_categories); | 849 TraceLog::GetInstance()->SetEnabled(empty_tag_patterns, |
| 850 excluded_tag_patterns); |
830 TRACE_EVENT_INSTANT0("inc_wildcard_abc", "not_inc"); | 851 TRACE_EVENT_INSTANT0("inc_wildcard_abc", "not_inc"); |
831 TRACE_EVENT_INSTANT0("inc_wildcard_", "not_inc"); | 852 TRACE_EVENT_INSTANT0("inc_wildcard_", "not_inc"); |
832 TRACE_EVENT_INSTANT0("inc_wildchar_x_end", "not_inc"); | 853 TRACE_EVENT_INSTANT0("inc_wildchar_x_end", "not_inc"); |
833 TRACE_EVENT_INSTANT0("inc_wildchar_bla_end", "included"); | 854 TRACE_EVENT_INSTANT0("inc_wildchar_bla_end", "included"); |
834 TRACE_EVENT_INSTANT0("cat1", "included"); | 855 TRACE_EVENT_INSTANT0("cat1", "included"); |
835 TRACE_EVENT_INSTANT0("cat2", "included"); | 856 TRACE_EVENT_INSTANT0("cat2", "included"); |
836 EndTraceAndFlush(); | 857 EndTraceAndFlush(); |
837 EXPECT_TRUE(FindMatchingValue("cat", "inc_wildchar_bla_end")); | 858 EXPECT_TRUE(FindMatchingValue("cat", "inc_wildchar_bla_end")); |
838 EXPECT_TRUE(FindMatchingValue("cat", "cat1")); | 859 EXPECT_TRUE(FindMatchingValue("cat", "cat1")); |
839 EXPECT_TRUE(FindMatchingValue("cat", "cat2")); | 860 EXPECT_TRUE(FindMatchingValue("cat", "cat2")); |
(...skipping 510 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1350 TraceLog::GetInstance()->SetDisabled(); | 1371 TraceLog::GetInstance()->SetDisabled(); |
1351 | 1372 |
1352 TRACE_EVENT_INSTANT1("category", "test", "a", a++); | 1373 TRACE_EVENT_INSTANT1("category", "test", "a", a++); |
1353 EXPECT_EQ(1, a); | 1374 EXPECT_EQ(1, a); |
1354 | 1375 |
1355 EndTraceAndFlush(); | 1376 EndTraceAndFlush(); |
1356 } | 1377 } |
1357 | 1378 |
1358 } // namespace debug | 1379 } // namespace debug |
1359 } // namespace base | 1380 } // namespace base |
OLD | NEW |