| 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 |