Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(16)

Side by Side Diff: base/debug/trace_event_unittest.cc

Issue 11823016: Trace category groups and category filter. (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Tagged category support cleanup, parameter renaming, documentation updated. Created 7 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698