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

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: Category group and category filter basics. Created 7 years, 10 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 <cstdlib> 7 #include <cstdlib>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/command_line.h" 10 #include "base/command_line.h"
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
66 const char* value); 66 const char* value);
67 bool FindNonMatchingValue(const char* key, 67 bool FindNonMatchingValue(const char* key,
68 const char* value); 68 const char* value);
69 void Clear() { 69 void Clear() {
70 trace_parsed_.Clear(); 70 trace_parsed_.Clear();
71 json_output_.json_output.clear(); 71 json_output_.json_output.clear();
72 } 72 }
73 73
74 void BeginTrace() { 74 void BeginTrace() {
75 event_watch_notification_ = 0; 75 event_watch_notification_ = 0;
76 TraceLog::GetInstance()->SetEnabled("*"); 76 TraceLog::GetInstance()->SetEnabled(CategoryFilter("*"));
77 } 77 }
78 78
79 void EndTraceAndFlush() { 79 void EndTraceAndFlush() {
80 while (TraceLog::GetInstance()->IsEnabled()) 80 while (TraceLog::GetInstance()->IsEnabled())
81 TraceLog::GetInstance()->SetDisabled(); 81 TraceLog::GetInstance()->SetDisabled();
82 TraceLog::GetInstance()->Flush( 82 TraceLog::GetInstance()->Flush(
83 base::Bind(&TraceEventTestFixture::OnTraceDataCollected, 83 base::Bind(&TraceEventTestFixture::OnTraceDataCollected,
84 base::Unretained(this))); 84 base::Unretained(this)));
85 } 85 }
86 86
(...skipping 620 matching lines...) Expand 10 before | Expand all | Expand 10 after
707 void HighResSleepForTraceTest(base::TimeDelta elapsed) { 707 void HighResSleepForTraceTest(base::TimeDelta elapsed) {
708 base::TimeTicks end_time = base::TimeTicks::HighResNow() + elapsed; 708 base::TimeTicks end_time = base::TimeTicks::HighResNow() + elapsed;
709 do { 709 do {
710 base::PlatformThread::Sleep(base::TimeDelta::FromMilliseconds(1)); 710 base::PlatformThread::Sleep(base::TimeDelta::FromMilliseconds(1));
711 } while (base::TimeTicks::HighResNow() < end_time); 711 } while (base::TimeTicks::HighResNow() < end_time);
712 } 712 }
713 713
714 // Simple Test for emitting data and validating it was received. 714 // Simple Test for emitting data and validating it was received.
715 TEST_F(TraceEventTestFixture, DataCaptured) { 715 TEST_F(TraceEventTestFixture, DataCaptured) {
716 ManualTestSetUp(); 716 ManualTestSetUp();
717 TraceLog::GetInstance()->SetEnabled(true); 717 TraceLog::GetInstance()->SetEnabled(CategoryFilter("*"));
718 718
719 TraceWithAllMacroVariants(NULL); 719 TraceWithAllMacroVariants(NULL);
720 720
721 EndTraceAndFlush(); 721 EndTraceAndFlush();
722 722
723 ValidateAllTraceMacrosCreatedData(trace_parsed_); 723 ValidateAllTraceMacrosCreatedData(trace_parsed_);
724 } 724 }
725 725
726 class MockEnabledStateChangedObserver : 726 class MockEnabledStateChangedObserver :
727 public base::debug::TraceLog::EnabledStateChangedObserver { 727 public base::debug::TraceLog::EnabledStateChangedObserver {
728 public: 728 public:
729 MOCK_METHOD0(OnTraceLogWillEnable, void()); 729 MOCK_METHOD0(OnTraceLogWillEnable, void());
730 MOCK_METHOD0(OnTraceLogWillDisable, void()); 730 MOCK_METHOD0(OnTraceLogWillDisable, void());
731 }; 731 };
732 732
733 TEST_F(TraceEventTestFixture, EnabledObserverFiresOnEnable) { 733 TEST_F(TraceEventTestFixture, EnabledObserverFiresOnEnable) {
734 ManualTestSetUp(); 734 ManualTestSetUp();
735 735
736 MockEnabledStateChangedObserver observer; 736 MockEnabledStateChangedObserver observer;
737 TraceLog::GetInstance()->AddEnabledStateObserver(&observer); 737 TraceLog::GetInstance()->AddEnabledStateObserver(&observer);
738 738
739 EXPECT_CALL(observer, OnTraceLogWillEnable()) 739 EXPECT_CALL(observer, OnTraceLogWillEnable())
740 .Times(1); 740 .Times(1);
741 TraceLog::GetInstance()->SetEnabled(true); 741 TraceLog::GetInstance()->SetEnabled(CategoryFilter("*"));
742 testing::Mock::VerifyAndClear(&observer); 742 testing::Mock::VerifyAndClear(&observer);
743 743
744 // Cleanup. 744 // Cleanup.
745 TraceLog::GetInstance()->RemoveEnabledStateObserver(&observer); 745 TraceLog::GetInstance()->RemoveEnabledStateObserver(&observer);
746 TraceLog::GetInstance()->SetEnabled(false); 746 TraceLog::GetInstance()->SetDisabled();
747 } 747 }
748 748
749 TEST_F(TraceEventTestFixture, EnabledObserverDoesntFireOnSecondEnable) { 749 TEST_F(TraceEventTestFixture, EnabledObserverDoesntFireOnSecondEnable) {
750 ManualTestSetUp(); 750 ManualTestSetUp();
751 751
752 TraceLog::GetInstance()->SetEnabled(true); 752 CategoryFilter cf_inc_all("*");
753 TraceLog::GetInstance()->SetEnabled(cf_inc_all);
753 754
754 testing::StrictMock<MockEnabledStateChangedObserver> observer; 755 testing::StrictMock<MockEnabledStateChangedObserver> observer;
755 TraceLog::GetInstance()->AddEnabledStateObserver(&observer); 756 TraceLog::GetInstance()->AddEnabledStateObserver(&observer);
756 757
757 EXPECT_CALL(observer, OnTraceLogWillEnable()) 758 EXPECT_CALL(observer, OnTraceLogWillEnable())
758 .Times(0); 759 .Times(0);
759 EXPECT_CALL(observer, OnTraceLogWillDisable()) 760 EXPECT_CALL(observer, OnTraceLogWillDisable())
760 .Times(0); 761 .Times(0);
761 TraceLog::GetInstance()->SetEnabled(true); 762 TraceLog::GetInstance()->SetEnabled(cf_inc_all);
762 testing::Mock::VerifyAndClear(&observer); 763 testing::Mock::VerifyAndClear(&observer);
763 764
764 // Cleanup. 765 // Cleanup.
765 TraceLog::GetInstance()->RemoveEnabledStateObserver(&observer); 766 TraceLog::GetInstance()->RemoveEnabledStateObserver(&observer);
766 TraceLog::GetInstance()->SetEnabled(false); 767 TraceLog::GetInstance()->SetDisabled();
767 TraceLog::GetInstance()->SetEnabled(false); 768 TraceLog::GetInstance()->SetDisabled();
768 } 769 }
769 770
770 TEST_F(TraceEventTestFixture, EnabledObserverDoesntFireOnNestedDisable) { 771 TEST_F(TraceEventTestFixture, EnabledObserverDoesntFireOnNestedDisable) {
771 ManualTestSetUp(); 772 ManualTestSetUp();
772 773
773 TraceLog::GetInstance()->SetEnabled(true); 774 CategoryFilter cf_inc_all("*");
774 TraceLog::GetInstance()->SetEnabled(true); 775 TraceLog::GetInstance()->SetEnabled(cf_inc_all);
776 TraceLog::GetInstance()->SetEnabled(cf_inc_all);
775 777
776 testing::StrictMock<MockEnabledStateChangedObserver> observer; 778 testing::StrictMock<MockEnabledStateChangedObserver> observer;
777 TraceLog::GetInstance()->AddEnabledStateObserver(&observer); 779 TraceLog::GetInstance()->AddEnabledStateObserver(&observer);
778 780
779 EXPECT_CALL(observer, OnTraceLogWillEnable()) 781 EXPECT_CALL(observer, OnTraceLogWillEnable())
780 .Times(0); 782 .Times(0);
781 EXPECT_CALL(observer, OnTraceLogWillDisable()) 783 EXPECT_CALL(observer, OnTraceLogWillDisable())
782 .Times(0); 784 .Times(0);
783 TraceLog::GetInstance()->SetEnabled(false); 785 TraceLog::GetInstance()->SetDisabled();
784 testing::Mock::VerifyAndClear(&observer); 786 testing::Mock::VerifyAndClear(&observer);
785 787
786 // Cleanup. 788 // Cleanup.
787 TraceLog::GetInstance()->RemoveEnabledStateObserver(&observer); 789 TraceLog::GetInstance()->RemoveEnabledStateObserver(&observer);
788 TraceLog::GetInstance()->SetEnabled(false); 790 TraceLog::GetInstance()->SetDisabled();
789 } 791 }
790 792
791 TEST_F(TraceEventTestFixture, EnabledObserverFiresOnDisable) { 793 TEST_F(TraceEventTestFixture, EnabledObserverFiresOnDisable) {
792 ManualTestSetUp(); 794 ManualTestSetUp();
793 795 TraceLog::GetInstance()->SetEnabled(CategoryFilter("*"));
794 TraceLog::GetInstance()->SetEnabled(true);
795 796
796 MockEnabledStateChangedObserver observer; 797 MockEnabledStateChangedObserver observer;
797 TraceLog::GetInstance()->AddEnabledStateObserver(&observer); 798 TraceLog::GetInstance()->AddEnabledStateObserver(&observer);
798 799
799 EXPECT_CALL(observer, OnTraceLogWillDisable()) 800 EXPECT_CALL(observer, OnTraceLogWillDisable())
800 .Times(1); 801 .Times(1);
801 TraceLog::GetInstance()->SetEnabled(false); 802 TraceLog::GetInstance()->SetDisabled();
802 testing::Mock::VerifyAndClear(&observer); 803 testing::Mock::VerifyAndClear(&observer);
803 804
804 // Cleanup. 805 // Cleanup.
805 TraceLog::GetInstance()->RemoveEnabledStateObserver(&observer); 806 TraceLog::GetInstance()->RemoveEnabledStateObserver(&observer);
806 } 807 }
807 808
809 // Test the category filter.
810 TEST_F(TraceEventTestFixture, CategoryFilter) {
811 ManualTestSetUp();
812
813 // Using the default filter.
814 CategoryFilter default_cf = CategoryFilter();
815 scoped_refptr<base::RefCountedString> cf_str_ptr =
816 new base::RefCountedString();
817 default_cf.ToString(&(cf_str_ptr->data()));
818 EXPECT_STREQ("-*Debug,-*Test,", cf_str_ptr->data().c_str());
819 EXPECT_TRUE(default_cf.IsCategoryGroupEnabled("not-excluded-category"));
820 EXPECT_FALSE(default_cf.IsCategoryGroupEnabled("Category1,CategoryDebug"));
821 EXPECT_FALSE(default_cf.IsCategoryGroupEnabled("CategoryDebug,Category1"));
822 EXPECT_FALSE(default_cf.IsCategoryGroupEnabled("CategoryTest,Category2"));
823
824 // Using an arbitrary non-empty filter.
825 CategoryFilter cf("included,-excluded,inc_pattern*,-exc_pattern*");
826 cf_str_ptr = new base::RefCountedString();
827 cf.ToString(&(cf_str_ptr->data()));
828 EXPECT_STREQ("included,inc_pattern*,-excluded,-exc_pattern*,",
829 cf_str_ptr->data().c_str());
830 EXPECT_TRUE(cf.IsCategoryGroupEnabled("included"));
831 EXPECT_TRUE(cf.IsCategoryGroupEnabled("inc_pattern_category"));
832 EXPECT_FALSE(cf.IsCategoryGroupEnabled("exc_pattern_category"));
833 EXPECT_FALSE(cf.IsCategoryGroupEnabled("excluded"));
834 EXPECT_FALSE(cf.IsCategoryGroupEnabled("not-excluded-nor-included"));
835 EXPECT_FALSE(cf.IsCategoryGroupEnabled("Category1,CategoryDebug"));
836 EXPECT_FALSE(cf.IsCategoryGroupEnabled("CategoryDebug,Category1"));
837 EXPECT_FALSE(cf.IsCategoryGroupEnabled("CategoryTest,Category2"));
838
839 cf.Merge(default_cf);
840 cf_str_ptr = new base::RefCountedString();
841 cf.ToString(&(cf_str_ptr->data()));
842 EXPECT_STREQ("included,inc_pattern*,-excluded,-exc_pattern*,-*Debug,-*Test,",
843 cf_str_ptr->data().c_str());
844 cf.Clear();
845 EXPECT_FALSE(cf.HasIncludedCategories());
846
847 CategoryFilter reconstructed_cf(cf_str_ptr->data());
848 cf_str_ptr = new base::RefCountedString();
849 reconstructed_cf.ToString(&(cf_str_ptr->data()));
850 EXPECT_STREQ("included,inc_pattern*,-excluded,-exc_pattern*,-*Debug,-*Test,",
851 cf_str_ptr->data().c_str());
852 }
853
808 // Test that categories work. 854 // Test that categories work.
809 TEST_F(TraceEventTestFixture, Categories) { 855 TEST_F(TraceEventTestFixture, Categories) {
810 ManualTestSetUp(); 856 ManualTestSetUp();
811 857
812 // Test that categories that are used can be retrieved whether trace was 858 // Test that categories that are used can be retrieved whether trace was
813 // enabled or disabled when the trace event was encountered. 859 // enabled or disabled when the trace event was encountered.
814 TRACE_EVENT_INSTANT0("c1", "name"); 860 TRACE_EVENT_INSTANT0("c1", "name");
815 TRACE_EVENT_INSTANT0("c2", "name"); 861 TRACE_EVENT_INSTANT0("c2", "name");
816 BeginTrace(); 862 BeginTrace();
817 TRACE_EVENT_INSTANT0("c3", "name"); 863 TRACE_EVENT_INSTANT0("c3", "name");
818 TRACE_EVENT_INSTANT0("c4", "name"); 864 TRACE_EVENT_INSTANT0("c4", "name");
865 //Category groups containing more than one category.
866 TRACE_EVENT_INSTANT0("c5,c6", "name");
867 TRACE_EVENT_INSTANT0("c7,c8", "name");
819 EndTraceAndFlush(); 868 EndTraceAndFlush();
820 std::vector<std::string> cats; 869 std::vector<std::string> cat_groups;
821 TraceLog::GetInstance()->GetKnownCategories(&cats); 870 TraceLog::GetInstance()->GetKnownCategories(&cat_groups);
822 EXPECT_TRUE(std::find(cats.begin(), cats.end(), "c1") != cats.end()); 871 EXPECT_TRUE(std::find(cat_groups.begin(),
823 EXPECT_TRUE(std::find(cats.begin(), cats.end(), "c2") != cats.end()); 872 cat_groups.end(), "c1") != cat_groups.end());
824 EXPECT_TRUE(std::find(cats.begin(), cats.end(), "c3") != cats.end()); 873 EXPECT_TRUE(std::find(cat_groups.begin(),
825 EXPECT_TRUE(std::find(cats.begin(), cats.end(), "c4") != cats.end()); 874 cat_groups.end(), "c2") != cat_groups.end());
826 875 EXPECT_TRUE(std::find(cat_groups.begin(),
827 const std::vector<std::string> empty_categories; 876 cat_groups.end(), "c3") != cat_groups.end());
828 std::vector<std::string> included_categories; 877 EXPECT_TRUE(std::find(cat_groups.begin(),
829 std::vector<std::string> excluded_categories; 878 cat_groups.end(), "c4") != cat_groups.end());
879 EXPECT_TRUE(std::find(cat_groups.begin(),
880 cat_groups.end(), "c5,c6") != cat_groups.end());
881 EXPECT_TRUE(std::find(cat_groups.begin(),
882 cat_groups.end(), "c7,c8") != cat_groups.end());
830 883
831 // Test that category filtering works. 884 // Test that category filtering works.
832 885
833 // Include nonexistent category -> no events 886 // Include nonexistent category -> no events
834 Clear(); 887 Clear();
835 included_categories.clear(); 888 TraceLog::GetInstance()->SetEnabled(CategoryFilter("not_found823564786"));
836 included_categories.push_back("not_found823564786");
837 TraceLog::GetInstance()->SetEnabled(included_categories, empty_categories);
838 TRACE_EVENT_INSTANT0("cat1", "name"); 889 TRACE_EVENT_INSTANT0("cat1", "name");
839 TRACE_EVENT_INSTANT0("cat2", "name"); 890 TRACE_EVENT_INSTANT0("cat2", "name");
840 EndTraceAndFlush(); 891 EndTraceAndFlush();
841 EXPECT_TRUE(trace_parsed_.empty()); 892 EXPECT_TRUE(trace_parsed_.empty());
842 893
843 // Include existent category -> only events of that category 894 // Include existent category -> only events of that category
844 Clear(); 895 Clear();
845 included_categories.clear(); 896 TraceLog::GetInstance()->SetEnabled(CategoryFilter("inc"));
846 included_categories.push_back("inc"); 897
847 TraceLog::GetInstance()->SetEnabled(included_categories, empty_categories);
848 TRACE_EVENT_INSTANT0("inc", "name"); 898 TRACE_EVENT_INSTANT0("inc", "name");
849 TRACE_EVENT_INSTANT0("inc2", "name"); 899 TRACE_EVENT_INSTANT0("inc2", "name");
850 EndTraceAndFlush(); 900 EndTraceAndFlush();
851 EXPECT_TRUE(FindMatchingValue("cat", "inc")); 901 EXPECT_TRUE(FindMatchingValue("cat", "inc"));
852 EXPECT_FALSE(FindNonMatchingValue("cat", "inc")); 902 EXPECT_FALSE(FindNonMatchingValue("cat", "inc"));
853 903
854 // Include existent wildcard -> all categories matching wildcard 904 // Include existent wildcard -> all categories matching wildcard
855 Clear(); 905 Clear();
856 included_categories.clear(); 906 TraceLog::GetInstance()->SetEnabled(
857 included_categories.push_back("inc_wildcard_*"); 907 CategoryFilter("inc_wildcard_*,inc_wildchar_?_end"));
858 included_categories.push_back("inc_wildchar_?_end");
859 TraceLog::GetInstance()->SetEnabled(included_categories, empty_categories);
860 TRACE_EVENT_INSTANT0("inc_wildcard_abc", "included"); 908 TRACE_EVENT_INSTANT0("inc_wildcard_abc", "included");
909 TRACE_EVENT_INSTANT0("inc_wildcard_category,other_category", "included");
910 TRACE_EVENT_INSTANT0("non_included_category,inc_wildcard_category",
911 "included");
861 TRACE_EVENT_INSTANT0("inc_wildcard_", "included"); 912 TRACE_EVENT_INSTANT0("inc_wildcard_", "included");
862 TRACE_EVENT_INSTANT0("inc_wildchar_x_end", "included"); 913 TRACE_EVENT_INSTANT0("inc_wildchar_x_end", "included");
863 TRACE_EVENT_INSTANT0("inc_wildchar_bla_end", "not_inc"); 914 TRACE_EVENT_INSTANT0("inc_wildchar_bla_end", "not_inc");
864 TRACE_EVENT_INSTANT0("cat1", "not_inc"); 915 TRACE_EVENT_INSTANT0("cat1", "not_inc");
865 TRACE_EVENT_INSTANT0("cat2", "not_inc"); 916 TRACE_EVENT_INSTANT0("cat2", "not_inc");
866 EndTraceAndFlush(); 917 EndTraceAndFlush();
867 EXPECT_TRUE(FindMatchingValue("cat", "inc_wildcard_abc")); 918 EXPECT_TRUE(FindMatchingValue("cat", "inc_wildcard_abc"));
919 EXPECT_TRUE(FindMatchingValue("cat", "inc_wildcard_category,other_category"));
920 EXPECT_TRUE(FindMatchingValue("cat",
921 "non_included_category,inc_wildcard_category"));
868 EXPECT_TRUE(FindMatchingValue("cat", "inc_wildcard_")); 922 EXPECT_TRUE(FindMatchingValue("cat", "inc_wildcard_"));
869 EXPECT_TRUE(FindMatchingValue("cat", "inc_wildchar_x_end")); 923 EXPECT_TRUE(FindMatchingValue("cat", "inc_wildchar_x_end"));
870 EXPECT_FALSE(FindMatchingValue("name", "not_inc")); 924 EXPECT_FALSE(FindMatchingValue("name", "not_inc"));
871 925
872 included_categories.clear();
873
874 // Exclude nonexistent category -> all events 926 // Exclude nonexistent category -> all events
875 Clear(); 927 Clear();
876 excluded_categories.clear(); 928 TraceLog::GetInstance()->SetEnabled(CategoryFilter("-not_found823564786"));
877 excluded_categories.push_back("not_found823564786");
878 TraceLog::GetInstance()->SetEnabled(empty_categories, excluded_categories);
879 TRACE_EVENT_INSTANT0("cat1", "name"); 929 TRACE_EVENT_INSTANT0("cat1", "name");
880 TRACE_EVENT_INSTANT0("cat2", "name"); 930 TRACE_EVENT_INSTANT0("cat2", "name");
931 TRACE_EVENT_INSTANT0("category1,category2", "name");
881 EndTraceAndFlush(); 932 EndTraceAndFlush();
882 EXPECT_TRUE(FindMatchingValue("cat", "cat1")); 933 EXPECT_TRUE(FindMatchingValue("cat", "cat1"));
883 EXPECT_TRUE(FindMatchingValue("cat", "cat2")); 934 EXPECT_TRUE(FindMatchingValue("cat", "cat2"));
935 EXPECT_TRUE(FindMatchingValue("cat", "category1,category2"));
884 936
885 // Exclude existent category -> only events of other categories 937 // Exclude existent category -> only events of other categories
886 Clear(); 938 Clear();
887 excluded_categories.clear(); 939 TraceLog::GetInstance()->SetEnabled(CategoryFilter("-inc"));
888 excluded_categories.push_back("inc");
889 TraceLog::GetInstance()->SetEnabled(empty_categories, excluded_categories);
890 TRACE_EVENT_INSTANT0("inc", "name"); 940 TRACE_EVENT_INSTANT0("inc", "name");
941 TRACE_EVENT_INSTANT0("inc2,inc", "name");
942 TRACE_EVENT_INSTANT0("inc,inc2", "name");
891 TRACE_EVENT_INSTANT0("inc2", "name"); 943 TRACE_EVENT_INSTANT0("inc2", "name");
892 EndTraceAndFlush(); 944 EndTraceAndFlush();
893 EXPECT_TRUE(FindMatchingValue("cat", "inc2")); 945 EXPECT_TRUE(FindMatchingValue("cat", "inc2"));
894 EXPECT_FALSE(FindMatchingValue("cat", "inc")); 946 EXPECT_FALSE(FindMatchingValue("cat", "inc"));
947 EXPECT_FALSE(FindMatchingValue("cat", "inc2,inc"));
948 EXPECT_FALSE(FindMatchingValue("cat", "inc,inc2"));
895 949
896 // Exclude existent wildcard -> all categories not matching wildcard 950 // Exclude existent wildcard -> all categories not matching wildcard
897 Clear(); 951 Clear();
898 excluded_categories.clear(); 952 TraceLog::GetInstance()->SetEnabled(
899 excluded_categories.push_back("inc_wildcard_*"); 953 CategoryFilter("-inc_wildcard_*,-inc_wildchar_?_end"));
900 excluded_categories.push_back("inc_wildchar_?_end");
901 TraceLog::GetInstance()->SetEnabled(empty_categories, excluded_categories);
902 TRACE_EVENT_INSTANT0("inc_wildcard_abc", "not_inc"); 954 TRACE_EVENT_INSTANT0("inc_wildcard_abc", "not_inc");
903 TRACE_EVENT_INSTANT0("inc_wildcard_", "not_inc"); 955 TRACE_EVENT_INSTANT0("inc_wildcard_", "not_inc");
904 TRACE_EVENT_INSTANT0("inc_wildchar_x_end", "not_inc"); 956 TRACE_EVENT_INSTANT0("inc_wildchar_x_end", "not_inc");
905 TRACE_EVENT_INSTANT0("inc_wildchar_bla_end", "included"); 957 TRACE_EVENT_INSTANT0("inc_wildchar_bla_end", "included");
906 TRACE_EVENT_INSTANT0("cat1", "included"); 958 TRACE_EVENT_INSTANT0("cat1", "included");
907 TRACE_EVENT_INSTANT0("cat2", "included"); 959 TRACE_EVENT_INSTANT0("cat2", "included");
908 EndTraceAndFlush(); 960 EndTraceAndFlush();
909 EXPECT_TRUE(FindMatchingValue("cat", "inc_wildchar_bla_end")); 961 EXPECT_TRUE(FindMatchingValue("cat", "inc_wildchar_bla_end"));
910 EXPECT_TRUE(FindMatchingValue("cat", "cat1")); 962 EXPECT_TRUE(FindMatchingValue("cat", "cat1"));
911 EXPECT_TRUE(FindMatchingValue("cat", "cat2")); 963 EXPECT_TRUE(FindMatchingValue("cat", "cat2"));
(...skipping 512 matching lines...) Expand 10 before | Expand all | Expand 10 after
1424 TRACE_EVENT_INSTANT1("category", "test", "a", a++); 1476 TRACE_EVENT_INSTANT1("category", "test", "a", a++);
1425 EXPECT_EQ(1, a); 1477 EXPECT_EQ(1, a);
1426 1478
1427 EndTraceAndFlush(); 1479 EndTraceAndFlush();
1428 } 1480 }
1429 1481
1430 TEST_F(TraceEventTestFixture, TraceEnableDisable) { 1482 TEST_F(TraceEventTestFixture, TraceEnableDisable) {
1431 ManualTestSetUp(); 1483 ManualTestSetUp();
1432 1484
1433 TraceLog* trace_log = TraceLog::GetInstance(); 1485 TraceLog* trace_log = TraceLog::GetInstance();
1434 trace_log->SetEnabled(std::string()); 1486 CategoryFilter cf_empty("");
1487 trace_log->SetEnabled(cf_empty);
1435 EXPECT_TRUE(trace_log->IsEnabled()); 1488 EXPECT_TRUE(trace_log->IsEnabled());
1436 trace_log->SetDisabled(); 1489 trace_log->SetDisabled();
1437 EXPECT_FALSE(trace_log->IsEnabled()); 1490 EXPECT_FALSE(trace_log->IsEnabled());
1438 1491
1439 trace_log->SetEnabled(true); 1492 trace_log->SetEnabled(cf_empty);
1440 EXPECT_TRUE(trace_log->IsEnabled()); 1493 EXPECT_TRUE(trace_log->IsEnabled());
1441 const std::vector<std::string> empty; 1494 trace_log->SetEnabled(cf_empty);
1442 trace_log->SetEnabled(empty, empty);
1443 EXPECT_TRUE(trace_log->IsEnabled()); 1495 EXPECT_TRUE(trace_log->IsEnabled());
1444 trace_log->SetEnabled(false); 1496 trace_log->SetDisabled();
1445 EXPECT_TRUE(trace_log->IsEnabled()); 1497 EXPECT_TRUE(trace_log->IsEnabled());
1446 trace_log->SetDisabled(); 1498 trace_log->SetDisabled();
1447 EXPECT_FALSE(trace_log->IsEnabled()); 1499 EXPECT_FALSE(trace_log->IsEnabled());
1448 } 1500 }
1449 1501
1450 TEST_F(TraceEventTestFixture, TraceCategoriesAfterNestedEnable) { 1502 TEST_F(TraceEventTestFixture, TraceCategoriesAfterNestedEnable) {
1451 ManualTestSetUp(); 1503 ManualTestSetUp();
1452 1504
1453 TraceLog* trace_log = TraceLog::GetInstance(); 1505 TraceLog* trace_log = TraceLog::GetInstance();
1454 trace_log->SetEnabled(std::string("foo,bar")); 1506 trace_log->SetEnabled(CategoryFilter("foo,bar"));
1455 EXPECT_TRUE(*trace_log->GetCategoryEnabled("foo")); 1507 EXPECT_TRUE(*trace_log->GetCategoryEnabled("foo"));
1456 EXPECT_TRUE(*trace_log->GetCategoryEnabled("bar")); 1508 EXPECT_TRUE(*trace_log->GetCategoryEnabled("bar"));
1457 EXPECT_FALSE(*trace_log->GetCategoryEnabled("baz")); 1509 EXPECT_FALSE(*trace_log->GetCategoryEnabled("baz"));
1458 trace_log->SetEnabled(std::string("foo2")); 1510 trace_log->SetEnabled(CategoryFilter("foo2"));
1459 EXPECT_TRUE(*trace_log->GetCategoryEnabled("foo2")); 1511 EXPECT_TRUE(*trace_log->GetCategoryEnabled("foo2"));
1460 EXPECT_FALSE(*trace_log->GetCategoryEnabled("baz")); 1512 EXPECT_FALSE(*trace_log->GetCategoryEnabled("baz"));
1461 trace_log->SetEnabled(std::string("")); 1513 trace_log->SetEnabled(CategoryFilter(""));
1462 EXPECT_TRUE(*trace_log->GetCategoryEnabled("foo")); 1514 EXPECT_TRUE(*trace_log->GetCategoryEnabled("foo"));
1463 EXPECT_TRUE(*trace_log->GetCategoryEnabled("baz")); 1515 EXPECT_TRUE(*trace_log->GetCategoryEnabled("baz"));
1464 trace_log->SetDisabled(); 1516 trace_log->SetDisabled();
1465 trace_log->SetDisabled(); 1517 trace_log->SetDisabled();
1466 trace_log->SetDisabled(); 1518 trace_log->SetDisabled();
1467 EXPECT_FALSE(*trace_log->GetCategoryEnabled("foo")); 1519 EXPECT_FALSE(*trace_log->GetCategoryEnabled("foo"));
1468 EXPECT_FALSE(*trace_log->GetCategoryEnabled("baz")); 1520 EXPECT_FALSE(*trace_log->GetCategoryEnabled("baz"));
1469 1521
1470 trace_log->SetEnabled(std::string("-foo,-bar")); 1522 trace_log->SetEnabled(CategoryFilter("-foo,-bar"));
1471 EXPECT_FALSE(*trace_log->GetCategoryEnabled("foo")); 1523 EXPECT_FALSE(*trace_log->GetCategoryEnabled("foo"));
1472 EXPECT_TRUE(*trace_log->GetCategoryEnabled("baz")); 1524 EXPECT_TRUE(*trace_log->GetCategoryEnabled("baz"));
1473 trace_log->SetEnabled(std::string("moo")); 1525 trace_log->SetEnabled(CategoryFilter("moo"));
1474 EXPECT_TRUE(*trace_log->GetCategoryEnabled("baz")); 1526 EXPECT_TRUE(*trace_log->GetCategoryEnabled("baz"));
1475 EXPECT_TRUE(*trace_log->GetCategoryEnabled("moo")); 1527 EXPECT_TRUE(*trace_log->GetCategoryEnabled("moo"));
1476 EXPECT_TRUE(*trace_log->GetCategoryEnabled("foo")); 1528 EXPECT_TRUE(*trace_log->GetCategoryEnabled("foo"));
1477 trace_log->SetDisabled(); 1529 trace_log->SetDisabled();
1478 trace_log->SetDisabled(); 1530 trace_log->SetDisabled();
1479 } 1531 }
1480 1532
1481 } // namespace debug 1533 } // namespace debug
1482 } // namespace base 1534 } // namespace base
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698