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 <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 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
71 json_output_.json_output.clear(); | 71 json_output_.json_output.clear(); |
72 } | 72 } |
73 | 73 |
74 void BeginTrace() { | 74 void BeginTrace() { |
75 BeginSpecificTrace("*"); | 75 BeginSpecificTrace("*"); |
76 } | 76 } |
77 | 77 |
78 void BeginSpecificTrace(const std::string& filter) { | 78 void BeginSpecificTrace(const std::string& filter) { |
79 event_watch_notification_ = 0; | 79 event_watch_notification_ = 0; |
80 TraceLog::GetInstance()->SetEnabled(CategoryFilter(filter), | 80 TraceLog::GetInstance()->SetEnabled(CategoryFilter(filter), |
81 base::debug::TraceLog::RECORDING_MODE, | |
82 TraceLog::RECORD_UNTIL_FULL); | 81 TraceLog::RECORD_UNTIL_FULL); |
83 } | 82 } |
84 | 83 |
85 void EndTraceAndFlush() { | 84 void EndTraceAndFlush() { |
86 WaitableEvent flush_complete_event(false, false); | 85 WaitableEvent flush_complete_event(false, false); |
87 EndTraceAndFlushAsync(&flush_complete_event); | 86 EndTraceAndFlushAsync(&flush_complete_event); |
88 flush_complete_event.Wait(); | 87 flush_complete_event.Wait(); |
89 } | 88 } |
90 | 89 |
91 // Used when testing thread-local buffers which requires the thread initiating | 90 // Used when testing thread-local buffers which requires the thread initiating |
(...skipping 755 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
847 void HighResSleepForTraceTest(base::TimeDelta elapsed) { | 846 void HighResSleepForTraceTest(base::TimeDelta elapsed) { |
848 base::TimeTicks end_time = base::TimeTicks::HighResNow() + elapsed; | 847 base::TimeTicks end_time = base::TimeTicks::HighResNow() + elapsed; |
849 do { | 848 do { |
850 base::PlatformThread::Sleep(base::TimeDelta::FromMilliseconds(1)); | 849 base::PlatformThread::Sleep(base::TimeDelta::FromMilliseconds(1)); |
851 } while (base::TimeTicks::HighResNow() < end_time); | 850 } while (base::TimeTicks::HighResNow() < end_time); |
852 } | 851 } |
853 | 852 |
854 // Simple Test for emitting data and validating it was received. | 853 // Simple Test for emitting data and validating it was received. |
855 TEST_F(TraceEventTestFixture, DataCaptured) { | 854 TEST_F(TraceEventTestFixture, DataCaptured) { |
856 TraceLog::GetInstance()->SetEnabled(CategoryFilter("*"), | 855 TraceLog::GetInstance()->SetEnabled(CategoryFilter("*"), |
857 base::debug::TraceLog::RECORDING_MODE, | |
858 TraceLog::RECORD_UNTIL_FULL); | 856 TraceLog::RECORD_UNTIL_FULL); |
859 | 857 |
860 TraceWithAllMacroVariants(NULL); | 858 TraceWithAllMacroVariants(NULL); |
861 | 859 |
862 EndTraceAndFlush(); | 860 EndTraceAndFlush(); |
863 | 861 |
864 ValidateAllTraceMacrosCreatedData(trace_parsed_); | 862 ValidateAllTraceMacrosCreatedData(trace_parsed_); |
865 } | 863 } |
866 | 864 |
867 class MockEnabledStateChangedObserver : | 865 class MockEnabledStateChangedObserver : |
868 public base::debug::TraceLog::EnabledStateObserver { | 866 public base::debug::TraceLog::EnabledStateObserver { |
869 public: | 867 public: |
870 MOCK_METHOD0(OnTraceLogEnabled, void()); | 868 MOCK_METHOD0(OnTraceLogEnabled, void()); |
871 MOCK_METHOD0(OnTraceLogDisabled, void()); | 869 MOCK_METHOD0(OnTraceLogDisabled, void()); |
872 }; | 870 }; |
873 | 871 |
874 TEST_F(TraceEventTestFixture, EnabledObserverFiresOnEnable) { | 872 TEST_F(TraceEventTestFixture, EnabledObserverFiresOnEnable) { |
875 MockEnabledStateChangedObserver observer; | 873 MockEnabledStateChangedObserver observer; |
876 TraceLog::GetInstance()->AddEnabledStateObserver(&observer); | 874 TraceLog::GetInstance()->AddEnabledStateObserver(&observer); |
877 | 875 |
878 EXPECT_CALL(observer, OnTraceLogEnabled()) | 876 EXPECT_CALL(observer, OnTraceLogEnabled()) |
879 .Times(1); | 877 .Times(1); |
880 TraceLog::GetInstance()->SetEnabled(CategoryFilter("*"), | 878 TraceLog::GetInstance()->SetEnabled(CategoryFilter("*"), |
881 base::debug::TraceLog::RECORDING_MODE, | |
882 TraceLog::RECORD_UNTIL_FULL); | 879 TraceLog::RECORD_UNTIL_FULL); |
883 testing::Mock::VerifyAndClear(&observer); | 880 testing::Mock::VerifyAndClear(&observer); |
884 EXPECT_TRUE(TraceLog::GetInstance()->IsEnabled()); | 881 EXPECT_TRUE(TraceLog::GetInstance()->IsEnabled()); |
885 | 882 |
886 // Cleanup. | 883 // Cleanup. |
887 TraceLog::GetInstance()->RemoveEnabledStateObserver(&observer); | 884 TraceLog::GetInstance()->RemoveEnabledStateObserver(&observer); |
888 TraceLog::GetInstance()->SetDisabled(); | 885 TraceLog::GetInstance()->SetDisabled(); |
889 } | 886 } |
890 | 887 |
891 TEST_F(TraceEventTestFixture, EnabledObserverDoesntFireOnSecondEnable) { | 888 TEST_F(TraceEventTestFixture, EnabledObserverDoesntFireOnSecondEnable) { |
892 TraceLog::GetInstance()->SetEnabled(CategoryFilter("*"), | 889 TraceLog::GetInstance()->SetEnabled(CategoryFilter("*"), |
893 base::debug::TraceLog::RECORDING_MODE, | |
894 TraceLog::RECORD_UNTIL_FULL); | 890 TraceLog::RECORD_UNTIL_FULL); |
895 | 891 |
896 testing::StrictMock<MockEnabledStateChangedObserver> observer; | 892 testing::StrictMock<MockEnabledStateChangedObserver> observer; |
897 TraceLog::GetInstance()->AddEnabledStateObserver(&observer); | 893 TraceLog::GetInstance()->AddEnabledStateObserver(&observer); |
898 | 894 |
899 EXPECT_CALL(observer, OnTraceLogEnabled()) | 895 EXPECT_CALL(observer, OnTraceLogEnabled()) |
900 .Times(0); | 896 .Times(0); |
901 EXPECT_CALL(observer, OnTraceLogDisabled()) | 897 EXPECT_CALL(observer, OnTraceLogDisabled()) |
902 .Times(0); | 898 .Times(0); |
903 TraceLog::GetInstance()->SetEnabled(CategoryFilter("*"), | 899 TraceLog::GetInstance()->SetEnabled(CategoryFilter("*"), |
904 base::debug::TraceLog::RECORDING_MODE, | |
905 TraceLog::RECORD_UNTIL_FULL); | 900 TraceLog::RECORD_UNTIL_FULL); |
906 testing::Mock::VerifyAndClear(&observer); | 901 testing::Mock::VerifyAndClear(&observer); |
907 EXPECT_TRUE(TraceLog::GetInstance()->IsEnabled()); | 902 EXPECT_TRUE(TraceLog::GetInstance()->IsEnabled()); |
908 | 903 |
909 // Cleanup. | 904 // Cleanup. |
910 TraceLog::GetInstance()->RemoveEnabledStateObserver(&observer); | 905 TraceLog::GetInstance()->RemoveEnabledStateObserver(&observer); |
911 TraceLog::GetInstance()->SetDisabled(); | 906 TraceLog::GetInstance()->SetDisabled(); |
912 TraceLog::GetInstance()->SetDisabled(); | 907 TraceLog::GetInstance()->SetDisabled(); |
913 } | 908 } |
914 | 909 |
915 TEST_F(TraceEventTestFixture, EnabledObserverFiresOnFirstDisable) { | 910 TEST_F(TraceEventTestFixture, EnabledObserverFiresOnFirstDisable) { |
916 CategoryFilter cf_inc_all("*"); | 911 CategoryFilter cf_inc_all("*"); |
917 TraceLog::GetInstance()->SetEnabled(cf_inc_all, | 912 TraceLog::GetInstance()->SetEnabled(cf_inc_all, TraceLog::RECORD_UNTIL_FULL); |
918 base::debug::TraceLog::RECORDING_MODE, | 913 TraceLog::GetInstance()->SetEnabled(cf_inc_all, TraceLog::RECORD_UNTIL_FULL); |
919 TraceLog::RECORD_UNTIL_FULL); | |
920 TraceLog::GetInstance()->SetEnabled(cf_inc_all, | |
921 base::debug::TraceLog::RECORDING_MODE, | |
922 TraceLog::RECORD_UNTIL_FULL); | |
923 | 914 |
924 testing::StrictMock<MockEnabledStateChangedObserver> observer; | 915 testing::StrictMock<MockEnabledStateChangedObserver> observer; |
925 TraceLog::GetInstance()->AddEnabledStateObserver(&observer); | 916 TraceLog::GetInstance()->AddEnabledStateObserver(&observer); |
926 | 917 |
927 EXPECT_CALL(observer, OnTraceLogEnabled()) | 918 EXPECT_CALL(observer, OnTraceLogEnabled()) |
928 .Times(0); | 919 .Times(0); |
929 EXPECT_CALL(observer, OnTraceLogDisabled()) | 920 EXPECT_CALL(observer, OnTraceLogDisabled()) |
930 .Times(1); | 921 .Times(1); |
931 TraceLog::GetInstance()->SetDisabled(); | 922 TraceLog::GetInstance()->SetDisabled(); |
932 testing::Mock::VerifyAndClear(&observer); | 923 testing::Mock::VerifyAndClear(&observer); |
933 | 924 |
934 // Cleanup. | 925 // Cleanup. |
935 TraceLog::GetInstance()->RemoveEnabledStateObserver(&observer); | 926 TraceLog::GetInstance()->RemoveEnabledStateObserver(&observer); |
936 TraceLog::GetInstance()->SetDisabled(); | 927 TraceLog::GetInstance()->SetDisabled(); |
937 } | 928 } |
938 | 929 |
939 TEST_F(TraceEventTestFixture, EnabledObserverFiresOnDisable) { | 930 TEST_F(TraceEventTestFixture, EnabledObserverFiresOnDisable) { |
940 TraceLog::GetInstance()->SetEnabled(CategoryFilter("*"), | 931 TraceLog::GetInstance()->SetEnabled(CategoryFilter("*"), |
941 base::debug::TraceLog::RECORDING_MODE, | |
942 TraceLog::RECORD_UNTIL_FULL); | 932 TraceLog::RECORD_UNTIL_FULL); |
943 | 933 |
944 MockEnabledStateChangedObserver observer; | 934 MockEnabledStateChangedObserver observer; |
945 TraceLog::GetInstance()->AddEnabledStateObserver(&observer); | 935 TraceLog::GetInstance()->AddEnabledStateObserver(&observer); |
946 | 936 |
947 EXPECT_CALL(observer, OnTraceLogDisabled()) | 937 EXPECT_CALL(observer, OnTraceLogDisabled()) |
948 .Times(1); | 938 .Times(1); |
949 TraceLog::GetInstance()->SetDisabled(); | 939 TraceLog::GetInstance()->SetDisabled(); |
950 testing::Mock::VerifyAndClear(&observer); | 940 testing::Mock::VerifyAndClear(&observer); |
951 | 941 |
(...skipping 16 matching lines...) Expand all Loading... |
968 virtual void OnTraceLogDisabled() OVERRIDE { | 958 virtual void OnTraceLogDisabled() OVERRIDE { |
969 EXPECT_FALSE(TraceLog::GetInstance()->IsEnabled()); | 959 EXPECT_FALSE(TraceLog::GetInstance()->IsEnabled()); |
970 } | 960 } |
971 }; | 961 }; |
972 | 962 |
973 TEST_F(TraceEventTestFixture, ObserversFireAfterStateChange) { | 963 TEST_F(TraceEventTestFixture, ObserversFireAfterStateChange) { |
974 AfterStateChangeEnabledStateObserver observer; | 964 AfterStateChangeEnabledStateObserver observer; |
975 TraceLog::GetInstance()->AddEnabledStateObserver(&observer); | 965 TraceLog::GetInstance()->AddEnabledStateObserver(&observer); |
976 | 966 |
977 TraceLog::GetInstance()->SetEnabled(CategoryFilter("*"), | 967 TraceLog::GetInstance()->SetEnabled(CategoryFilter("*"), |
978 base::debug::TraceLog::RECORDING_MODE, | |
979 TraceLog::RECORD_UNTIL_FULL); | 968 TraceLog::RECORD_UNTIL_FULL); |
980 EXPECT_TRUE(TraceLog::GetInstance()->IsEnabled()); | 969 EXPECT_TRUE(TraceLog::GetInstance()->IsEnabled()); |
981 | 970 |
982 TraceLog::GetInstance()->SetDisabled(); | 971 TraceLog::GetInstance()->SetDisabled(); |
983 EXPECT_FALSE(TraceLog::GetInstance()->IsEnabled()); | 972 EXPECT_FALSE(TraceLog::GetInstance()->IsEnabled()); |
984 | 973 |
985 TraceLog::GetInstance()->RemoveEnabledStateObserver(&observer); | 974 TraceLog::GetInstance()->RemoveEnabledStateObserver(&observer); |
986 } | 975 } |
987 | 976 |
988 // Tests that a state observer can remove itself during a callback. | 977 // Tests that a state observer can remove itself during a callback. |
(...skipping 12 matching lines...) Expand all Loading... |
1001 }; | 990 }; |
1002 | 991 |
1003 TEST_F(TraceEventTestFixture, SelfRemovingObserver) { | 992 TEST_F(TraceEventTestFixture, SelfRemovingObserver) { |
1004 ASSERT_EQ(0u, TraceLog::GetInstance()->GetObserverCountForTest()); | 993 ASSERT_EQ(0u, TraceLog::GetInstance()->GetObserverCountForTest()); |
1005 | 994 |
1006 SelfRemovingEnabledStateObserver observer; | 995 SelfRemovingEnabledStateObserver observer; |
1007 TraceLog::GetInstance()->AddEnabledStateObserver(&observer); | 996 TraceLog::GetInstance()->AddEnabledStateObserver(&observer); |
1008 EXPECT_EQ(1u, TraceLog::GetInstance()->GetObserverCountForTest()); | 997 EXPECT_EQ(1u, TraceLog::GetInstance()->GetObserverCountForTest()); |
1009 | 998 |
1010 TraceLog::GetInstance()->SetEnabled(CategoryFilter("*"), | 999 TraceLog::GetInstance()->SetEnabled(CategoryFilter("*"), |
1011 base::debug::TraceLog::RECORDING_MODE, | |
1012 TraceLog::RECORD_UNTIL_FULL); | 1000 TraceLog::RECORD_UNTIL_FULL); |
1013 TraceLog::GetInstance()->SetDisabled(); | 1001 TraceLog::GetInstance()->SetDisabled(); |
1014 // The observer removed itself on disable. | 1002 // The observer removed itself on disable. |
1015 EXPECT_EQ(0u, TraceLog::GetInstance()->GetObserverCountForTest()); | 1003 EXPECT_EQ(0u, TraceLog::GetInstance()->GetObserverCountForTest()); |
1016 } | 1004 } |
1017 | 1005 |
1018 bool IsNewTrace() { | 1006 bool IsNewTrace() { |
1019 bool is_new_trace; | 1007 bool is_new_trace; |
1020 TRACE_EVENT_IS_NEW_TRACE(&is_new_trace); | 1008 TRACE_EVENT_IS_NEW_TRACE(&is_new_trace); |
1021 return is_new_trace; | 1009 return is_new_trace; |
1022 } | 1010 } |
1023 | 1011 |
1024 TEST_F(TraceEventTestFixture, NewTraceRecording) { | 1012 TEST_F(TraceEventTestFixture, NewTraceRecording) { |
1025 ASSERT_FALSE(IsNewTrace()); | 1013 ASSERT_FALSE(IsNewTrace()); |
1026 TraceLog::GetInstance()->SetEnabled(CategoryFilter("*"), | 1014 TraceLog::GetInstance()->SetEnabled(CategoryFilter("*"), |
1027 base::debug::TraceLog::RECORDING_MODE, | |
1028 TraceLog::RECORD_UNTIL_FULL); | 1015 TraceLog::RECORD_UNTIL_FULL); |
1029 // First call to IsNewTrace() should succeed. But, the second shouldn't. | 1016 // First call to IsNewTrace() should succeed. But, the second shouldn't. |
1030 ASSERT_TRUE(IsNewTrace()); | 1017 ASSERT_TRUE(IsNewTrace()); |
1031 ASSERT_FALSE(IsNewTrace()); | 1018 ASSERT_FALSE(IsNewTrace()); |
1032 EndTraceAndFlush(); | 1019 EndTraceAndFlush(); |
1033 | 1020 |
1034 // IsNewTrace() should definitely be false now. | 1021 // IsNewTrace() should definitely be false now. |
1035 ASSERT_FALSE(IsNewTrace()); | 1022 ASSERT_FALSE(IsNewTrace()); |
1036 | 1023 |
1037 // Start another trace. IsNewTrace() should become true again, briefly, as | 1024 // Start another trace. IsNewTrace() should become true again, briefly, as |
1038 // before. | 1025 // before. |
1039 TraceLog::GetInstance()->SetEnabled(CategoryFilter("*"), | 1026 TraceLog::GetInstance()->SetEnabled(CategoryFilter("*"), |
1040 base::debug::TraceLog::RECORDING_MODE, | |
1041 TraceLog::RECORD_UNTIL_FULL); | 1027 TraceLog::RECORD_UNTIL_FULL); |
1042 ASSERT_TRUE(IsNewTrace()); | 1028 ASSERT_TRUE(IsNewTrace()); |
1043 ASSERT_FALSE(IsNewTrace()); | 1029 ASSERT_FALSE(IsNewTrace()); |
1044 | 1030 |
1045 // Cleanup. | 1031 // Cleanup. |
1046 EndTraceAndFlush(); | 1032 EndTraceAndFlush(); |
1047 } | 1033 } |
1048 | 1034 |
1049 | 1035 |
1050 // Test that categories work. | 1036 // Test that categories work. |
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1087 const std::vector<std::string> empty_categories; | 1073 const std::vector<std::string> empty_categories; |
1088 std::vector<std::string> included_categories; | 1074 std::vector<std::string> included_categories; |
1089 std::vector<std::string> excluded_categories; | 1075 std::vector<std::string> excluded_categories; |
1090 | 1076 |
1091 // Test that category filtering works. | 1077 // Test that category filtering works. |
1092 | 1078 |
1093 // Include nonexistent category -> no events | 1079 // Include nonexistent category -> no events |
1094 Clear(); | 1080 Clear(); |
1095 included_categories.clear(); | 1081 included_categories.clear(); |
1096 TraceLog::GetInstance()->SetEnabled(CategoryFilter("not_found823564786"), | 1082 TraceLog::GetInstance()->SetEnabled(CategoryFilter("not_found823564786"), |
1097 base::debug::TraceLog::RECORDING_MODE, | |
1098 TraceLog::RECORD_UNTIL_FULL); | 1083 TraceLog::RECORD_UNTIL_FULL); |
1099 TRACE_EVENT_INSTANT0("cat1", "name", TRACE_EVENT_SCOPE_THREAD); | 1084 TRACE_EVENT_INSTANT0("cat1", "name", TRACE_EVENT_SCOPE_THREAD); |
1100 TRACE_EVENT_INSTANT0("cat2", "name", TRACE_EVENT_SCOPE_THREAD); | 1085 TRACE_EVENT_INSTANT0("cat2", "name", TRACE_EVENT_SCOPE_THREAD); |
1101 EndTraceAndFlush(); | 1086 EndTraceAndFlush(); |
1102 EXPECT_TRUE(trace_parsed_.empty()); | 1087 EXPECT_TRUE(trace_parsed_.empty()); |
1103 | 1088 |
1104 // Include existent category -> only events of that category | 1089 // Include existent category -> only events of that category |
1105 Clear(); | 1090 Clear(); |
1106 included_categories.clear(); | 1091 included_categories.clear(); |
1107 TraceLog::GetInstance()->SetEnabled(CategoryFilter("inc"), | 1092 TraceLog::GetInstance()->SetEnabled(CategoryFilter("inc"), |
1108 base::debug::TraceLog::RECORDING_MODE, | |
1109 TraceLog::RECORD_UNTIL_FULL); | 1093 TraceLog::RECORD_UNTIL_FULL); |
1110 TRACE_EVENT_INSTANT0("inc", "name", TRACE_EVENT_SCOPE_THREAD); | 1094 TRACE_EVENT_INSTANT0("inc", "name", TRACE_EVENT_SCOPE_THREAD); |
1111 TRACE_EVENT_INSTANT0("inc2", "name", TRACE_EVENT_SCOPE_THREAD); | 1095 TRACE_EVENT_INSTANT0("inc2", "name", TRACE_EVENT_SCOPE_THREAD); |
1112 EndTraceAndFlush(); | 1096 EndTraceAndFlush(); |
1113 EXPECT_TRUE(FindMatchingValue("cat", "inc")); | 1097 EXPECT_TRUE(FindMatchingValue("cat", "inc")); |
1114 EXPECT_FALSE(FindNonMatchingValue("cat", "inc")); | 1098 EXPECT_FALSE(FindNonMatchingValue("cat", "inc")); |
1115 | 1099 |
1116 // Include existent wildcard -> all categories matching wildcard | 1100 // Include existent wildcard -> all categories matching wildcard |
1117 Clear(); | 1101 Clear(); |
1118 included_categories.clear(); | 1102 included_categories.clear(); |
1119 TraceLog::GetInstance()->SetEnabled( | 1103 TraceLog::GetInstance()->SetEnabled( |
1120 CategoryFilter("inc_wildcard_*,inc_wildchar_?_end"), | 1104 CategoryFilter("inc_wildcard_*,inc_wildchar_?_end"), |
1121 base::debug::TraceLog::RECORDING_MODE, | |
1122 TraceLog::RECORD_UNTIL_FULL); | 1105 TraceLog::RECORD_UNTIL_FULL); |
1123 TRACE_EVENT_INSTANT0("inc_wildcard_abc", "included", | 1106 TRACE_EVENT_INSTANT0("inc_wildcard_abc", "included", |
1124 TRACE_EVENT_SCOPE_THREAD); | 1107 TRACE_EVENT_SCOPE_THREAD); |
1125 TRACE_EVENT_INSTANT0("inc_wildcard_", "included", TRACE_EVENT_SCOPE_THREAD); | 1108 TRACE_EVENT_INSTANT0("inc_wildcard_", "included", TRACE_EVENT_SCOPE_THREAD); |
1126 TRACE_EVENT_INSTANT0("inc_wildchar_x_end", "included", | 1109 TRACE_EVENT_INSTANT0("inc_wildchar_x_end", "included", |
1127 TRACE_EVENT_SCOPE_THREAD); | 1110 TRACE_EVENT_SCOPE_THREAD); |
1128 TRACE_EVENT_INSTANT0("inc_wildchar_bla_end", "not_inc", | 1111 TRACE_EVENT_INSTANT0("inc_wildchar_bla_end", "not_inc", |
1129 TRACE_EVENT_SCOPE_THREAD); | 1112 TRACE_EVENT_SCOPE_THREAD); |
1130 TRACE_EVENT_INSTANT0("cat1", "not_inc", TRACE_EVENT_SCOPE_THREAD); | 1113 TRACE_EVENT_INSTANT0("cat1", "not_inc", TRACE_EVENT_SCOPE_THREAD); |
1131 TRACE_EVENT_INSTANT0("cat2", "not_inc", TRACE_EVENT_SCOPE_THREAD); | 1114 TRACE_EVENT_INSTANT0("cat2", "not_inc", TRACE_EVENT_SCOPE_THREAD); |
1132 TRACE_EVENT_INSTANT0("inc_wildcard_category,other_category", "included", | 1115 TRACE_EVENT_INSTANT0("inc_wildcard_category,other_category", "included", |
1133 TRACE_EVENT_SCOPE_THREAD); | 1116 TRACE_EVENT_SCOPE_THREAD); |
1134 TRACE_EVENT_INSTANT0( | 1117 TRACE_EVENT_INSTANT0( |
1135 "non_included_category,inc_wildcard_category", "included", | 1118 "non_included_category,inc_wildcard_category", "included", |
1136 TRACE_EVENT_SCOPE_THREAD); | 1119 TRACE_EVENT_SCOPE_THREAD); |
1137 EndTraceAndFlush(); | 1120 EndTraceAndFlush(); |
1138 EXPECT_TRUE(FindMatchingValue("cat", "inc_wildcard_abc")); | 1121 EXPECT_TRUE(FindMatchingValue("cat", "inc_wildcard_abc")); |
1139 EXPECT_TRUE(FindMatchingValue("cat", "inc_wildcard_")); | 1122 EXPECT_TRUE(FindMatchingValue("cat", "inc_wildcard_")); |
1140 EXPECT_TRUE(FindMatchingValue("cat", "inc_wildchar_x_end")); | 1123 EXPECT_TRUE(FindMatchingValue("cat", "inc_wildchar_x_end")); |
1141 EXPECT_FALSE(FindMatchingValue("name", "not_inc")); | 1124 EXPECT_FALSE(FindMatchingValue("name", "not_inc")); |
1142 EXPECT_TRUE(FindMatchingValue("cat", "inc_wildcard_category,other_category")); | 1125 EXPECT_TRUE(FindMatchingValue("cat", "inc_wildcard_category,other_category")); |
1143 EXPECT_TRUE(FindMatchingValue("cat", | 1126 EXPECT_TRUE(FindMatchingValue("cat", |
1144 "non_included_category,inc_wildcard_category")); | 1127 "non_included_category,inc_wildcard_category")); |
1145 | 1128 |
1146 included_categories.clear(); | 1129 included_categories.clear(); |
1147 | 1130 |
1148 // Exclude nonexistent category -> all events | 1131 // Exclude nonexistent category -> all events |
1149 Clear(); | 1132 Clear(); |
1150 TraceLog::GetInstance()->SetEnabled(CategoryFilter("-not_found823564786"), | 1133 TraceLog::GetInstance()->SetEnabled(CategoryFilter("-not_found823564786"), |
1151 base::debug::TraceLog::RECORDING_MODE, | |
1152 TraceLog::RECORD_UNTIL_FULL); | 1134 TraceLog::RECORD_UNTIL_FULL); |
1153 TRACE_EVENT_INSTANT0("cat1", "name", TRACE_EVENT_SCOPE_THREAD); | 1135 TRACE_EVENT_INSTANT0("cat1", "name", TRACE_EVENT_SCOPE_THREAD); |
1154 TRACE_EVENT_INSTANT0("cat2", "name", TRACE_EVENT_SCOPE_THREAD); | 1136 TRACE_EVENT_INSTANT0("cat2", "name", TRACE_EVENT_SCOPE_THREAD); |
1155 TRACE_EVENT_INSTANT0("category1,category2", "name", TRACE_EVENT_SCOPE_THREAD); | 1137 TRACE_EVENT_INSTANT0("category1,category2", "name", TRACE_EVENT_SCOPE_THREAD); |
1156 EndTraceAndFlush(); | 1138 EndTraceAndFlush(); |
1157 EXPECT_TRUE(FindMatchingValue("cat", "cat1")); | 1139 EXPECT_TRUE(FindMatchingValue("cat", "cat1")); |
1158 EXPECT_TRUE(FindMatchingValue("cat", "cat2")); | 1140 EXPECT_TRUE(FindMatchingValue("cat", "cat2")); |
1159 EXPECT_TRUE(FindMatchingValue("cat", "category1,category2")); | 1141 EXPECT_TRUE(FindMatchingValue("cat", "category1,category2")); |
1160 | 1142 |
1161 // Exclude existent category -> only events of other categories | 1143 // Exclude existent category -> only events of other categories |
1162 Clear(); | 1144 Clear(); |
1163 TraceLog::GetInstance()->SetEnabled(CategoryFilter("-inc"), | 1145 TraceLog::GetInstance()->SetEnabled(CategoryFilter("-inc"), |
1164 base::debug::TraceLog::RECORDING_MODE, | |
1165 TraceLog::RECORD_UNTIL_FULL); | 1146 TraceLog::RECORD_UNTIL_FULL); |
1166 TRACE_EVENT_INSTANT0("inc", "name", TRACE_EVENT_SCOPE_THREAD); | 1147 TRACE_EVENT_INSTANT0("inc", "name", TRACE_EVENT_SCOPE_THREAD); |
1167 TRACE_EVENT_INSTANT0("inc2", "name", TRACE_EVENT_SCOPE_THREAD); | 1148 TRACE_EVENT_INSTANT0("inc2", "name", TRACE_EVENT_SCOPE_THREAD); |
1168 TRACE_EVENT_INSTANT0("inc2,inc", "name", TRACE_EVENT_SCOPE_THREAD); | 1149 TRACE_EVENT_INSTANT0("inc2,inc", "name", TRACE_EVENT_SCOPE_THREAD); |
1169 TRACE_EVENT_INSTANT0("inc,inc2", "name", TRACE_EVENT_SCOPE_THREAD); | 1150 TRACE_EVENT_INSTANT0("inc,inc2", "name", TRACE_EVENT_SCOPE_THREAD); |
1170 EndTraceAndFlush(); | 1151 EndTraceAndFlush(); |
1171 EXPECT_TRUE(FindMatchingValue("cat", "inc2")); | 1152 EXPECT_TRUE(FindMatchingValue("cat", "inc2")); |
1172 EXPECT_FALSE(FindMatchingValue("cat", "inc")); | 1153 EXPECT_FALSE(FindMatchingValue("cat", "inc")); |
1173 EXPECT_FALSE(FindMatchingValue("cat", "inc2,inc")); | 1154 EXPECT_FALSE(FindMatchingValue("cat", "inc2,inc")); |
1174 EXPECT_FALSE(FindMatchingValue("cat", "inc,inc2")); | 1155 EXPECT_FALSE(FindMatchingValue("cat", "inc,inc2")); |
1175 | 1156 |
1176 // Exclude existent wildcard -> all categories not matching wildcard | 1157 // Exclude existent wildcard -> all categories not matching wildcard |
1177 Clear(); | 1158 Clear(); |
1178 TraceLog::GetInstance()->SetEnabled( | 1159 TraceLog::GetInstance()->SetEnabled( |
1179 CategoryFilter("-inc_wildcard_*,-inc_wildchar_?_end"), | 1160 CategoryFilter("-inc_wildcard_*,-inc_wildchar_?_end"), |
1180 base::debug::TraceLog::RECORDING_MODE, | |
1181 TraceLog::RECORD_UNTIL_FULL); | 1161 TraceLog::RECORD_UNTIL_FULL); |
1182 TRACE_EVENT_INSTANT0("inc_wildcard_abc", "not_inc", | 1162 TRACE_EVENT_INSTANT0("inc_wildcard_abc", "not_inc", |
1183 TRACE_EVENT_SCOPE_THREAD); | 1163 TRACE_EVENT_SCOPE_THREAD); |
1184 TRACE_EVENT_INSTANT0("inc_wildcard_", "not_inc", | 1164 TRACE_EVENT_INSTANT0("inc_wildcard_", "not_inc", |
1185 TRACE_EVENT_SCOPE_THREAD); | 1165 TRACE_EVENT_SCOPE_THREAD); |
1186 TRACE_EVENT_INSTANT0("inc_wildchar_x_end", "not_inc", | 1166 TRACE_EVENT_INSTANT0("inc_wildchar_x_end", "not_inc", |
1187 TRACE_EVENT_SCOPE_THREAD); | 1167 TRACE_EVENT_SCOPE_THREAD); |
1188 TRACE_EVENT_INSTANT0("inc_wildchar_bla_end", "included", | 1168 TRACE_EVENT_INSTANT0("inc_wildchar_bla_end", "included", |
1189 TRACE_EVENT_SCOPE_THREAD); | 1169 TRACE_EVENT_SCOPE_THREAD); |
1190 TRACE_EVENT_INSTANT0("cat1", "included", TRACE_EVENT_SCOPE_THREAD); | 1170 TRACE_EVENT_INSTANT0("cat1", "included", TRACE_EVENT_SCOPE_THREAD); |
(...skipping 487 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1678 | 1658 |
1679 TRACE_EVENT_INSTANT1("category", "test", TRACE_EVENT_SCOPE_THREAD, "a", a++); | 1659 TRACE_EVENT_INSTANT1("category", "test", TRACE_EVENT_SCOPE_THREAD, "a", a++); |
1680 EXPECT_EQ(1, a); | 1660 EXPECT_EQ(1, a); |
1681 | 1661 |
1682 EndTraceAndFlush(); | 1662 EndTraceAndFlush(); |
1683 } | 1663 } |
1684 | 1664 |
1685 TEST_F(TraceEventTestFixture, TraceEnableDisable) { | 1665 TEST_F(TraceEventTestFixture, TraceEnableDisable) { |
1686 TraceLog* trace_log = TraceLog::GetInstance(); | 1666 TraceLog* trace_log = TraceLog::GetInstance(); |
1687 CategoryFilter cf_inc_all("*"); | 1667 CategoryFilter cf_inc_all("*"); |
1688 trace_log->SetEnabled(cf_inc_all, | 1668 trace_log->SetEnabled(cf_inc_all, TraceLog::RECORD_UNTIL_FULL); |
1689 base::debug::TraceLog::RECORDING_MODE, | |
1690 TraceLog::RECORD_UNTIL_FULL); | |
1691 EXPECT_TRUE(trace_log->IsEnabled()); | 1669 EXPECT_TRUE(trace_log->IsEnabled()); |
1692 trace_log->SetDisabled(); | 1670 trace_log->SetDisabled(); |
1693 EXPECT_FALSE(trace_log->IsEnabled()); | 1671 EXPECT_FALSE(trace_log->IsEnabled()); |
1694 | 1672 |
1695 trace_log->SetEnabled(cf_inc_all, | 1673 trace_log->SetEnabled(cf_inc_all, TraceLog::RECORD_UNTIL_FULL); |
1696 base::debug::TraceLog::RECORDING_MODE, | |
1697 TraceLog::RECORD_UNTIL_FULL); | |
1698 EXPECT_TRUE(trace_log->IsEnabled()); | 1674 EXPECT_TRUE(trace_log->IsEnabled()); |
1699 const std::vector<std::string> empty; | 1675 const std::vector<std::string> empty; |
1700 trace_log->SetEnabled(CategoryFilter(""), | 1676 trace_log->SetEnabled(CategoryFilter(""), TraceLog::RECORD_UNTIL_FULL); |
1701 base::debug::TraceLog::RECORDING_MODE, | |
1702 TraceLog::RECORD_UNTIL_FULL); | |
1703 EXPECT_TRUE(trace_log->IsEnabled()); | 1677 EXPECT_TRUE(trace_log->IsEnabled()); |
1704 trace_log->SetDisabled(); | 1678 trace_log->SetDisabled(); |
1705 EXPECT_FALSE(trace_log->IsEnabled()); | 1679 EXPECT_FALSE(trace_log->IsEnabled()); |
1706 trace_log->SetDisabled(); | 1680 trace_log->SetDisabled(); |
1707 EXPECT_FALSE(trace_log->IsEnabled()); | 1681 EXPECT_FALSE(trace_log->IsEnabled()); |
1708 } | 1682 } |
1709 | 1683 |
1710 TEST_F(TraceEventTestFixture, TraceCategoriesAfterNestedEnable) { | 1684 TEST_F(TraceEventTestFixture, TraceCategoriesAfterNestedEnable) { |
1711 TraceLog* trace_log = TraceLog::GetInstance(); | 1685 TraceLog* trace_log = TraceLog::GetInstance(); |
1712 trace_log->SetEnabled(CategoryFilter("foo,bar"), | 1686 trace_log->SetEnabled(CategoryFilter("foo,bar"), TraceLog::RECORD_UNTIL_FULL); |
1713 base::debug::TraceLog::RECORDING_MODE, | |
1714 TraceLog::RECORD_UNTIL_FULL); | |
1715 EXPECT_TRUE(*trace_log->GetCategoryGroupEnabled("foo")); | 1687 EXPECT_TRUE(*trace_log->GetCategoryGroupEnabled("foo")); |
1716 EXPECT_TRUE(*trace_log->GetCategoryGroupEnabled("bar")); | 1688 EXPECT_TRUE(*trace_log->GetCategoryGroupEnabled("bar")); |
1717 EXPECT_FALSE(*trace_log->GetCategoryGroupEnabled("baz")); | 1689 EXPECT_FALSE(*trace_log->GetCategoryGroupEnabled("baz")); |
1718 trace_log->SetEnabled(CategoryFilter("foo2"), | 1690 trace_log->SetEnabled(CategoryFilter("foo2"), TraceLog::RECORD_UNTIL_FULL); |
1719 base::debug::TraceLog::RECORDING_MODE, | |
1720 TraceLog::RECORD_UNTIL_FULL); | |
1721 EXPECT_TRUE(*trace_log->GetCategoryGroupEnabled("foo2")); | 1691 EXPECT_TRUE(*trace_log->GetCategoryGroupEnabled("foo2")); |
1722 EXPECT_FALSE(*trace_log->GetCategoryGroupEnabled("baz")); | 1692 EXPECT_FALSE(*trace_log->GetCategoryGroupEnabled("baz")); |
1723 // The "" becomes the default catergory set when applied. | 1693 // The "" becomes the default catergory set when applied. |
1724 trace_log->SetEnabled(CategoryFilter(""), | 1694 trace_log->SetEnabled(CategoryFilter(""), TraceLog::RECORD_UNTIL_FULL); |
1725 base::debug::TraceLog::RECORDING_MODE, | |
1726 TraceLog::RECORD_UNTIL_FULL); | |
1727 EXPECT_TRUE(*trace_log->GetCategoryGroupEnabled("foo")); | 1695 EXPECT_TRUE(*trace_log->GetCategoryGroupEnabled("foo")); |
1728 EXPECT_TRUE(*trace_log->GetCategoryGroupEnabled("baz")); | 1696 EXPECT_TRUE(*trace_log->GetCategoryGroupEnabled("baz")); |
1729 EXPECT_STREQ("-*Debug,-*Test", | 1697 EXPECT_STREQ("-*Debug,-*Test", |
1730 trace_log->GetCurrentCategoryFilter().ToString().c_str()); | 1698 trace_log->GetCurrentCategoryFilter().ToString().c_str()); |
1731 trace_log->SetDisabled(); | 1699 trace_log->SetDisabled(); |
1732 trace_log->SetDisabled(); | 1700 trace_log->SetDisabled(); |
1733 trace_log->SetDisabled(); | 1701 trace_log->SetDisabled(); |
1734 EXPECT_FALSE(*trace_log->GetCategoryGroupEnabled("foo")); | 1702 EXPECT_FALSE(*trace_log->GetCategoryGroupEnabled("foo")); |
1735 EXPECT_FALSE(*trace_log->GetCategoryGroupEnabled("baz")); | 1703 EXPECT_FALSE(*trace_log->GetCategoryGroupEnabled("baz")); |
1736 | 1704 |
1737 trace_log->SetEnabled(CategoryFilter("-foo,-bar"), | 1705 trace_log->SetEnabled(CategoryFilter("-foo,-bar"), |
1738 base::debug::TraceLog::RECORDING_MODE, | |
1739 TraceLog::RECORD_UNTIL_FULL); | 1706 TraceLog::RECORD_UNTIL_FULL); |
1740 EXPECT_FALSE(*trace_log->GetCategoryGroupEnabled("foo")); | 1707 EXPECT_FALSE(*trace_log->GetCategoryGroupEnabled("foo")); |
1741 EXPECT_TRUE(*trace_log->GetCategoryGroupEnabled("baz")); | 1708 EXPECT_TRUE(*trace_log->GetCategoryGroupEnabled("baz")); |
1742 trace_log->SetEnabled(CategoryFilter("moo"), | 1709 trace_log->SetEnabled(CategoryFilter("moo"), TraceLog::RECORD_UNTIL_FULL); |
1743 base::debug::TraceLog::RECORDING_MODE, | |
1744 TraceLog::RECORD_UNTIL_FULL); | |
1745 EXPECT_TRUE(*trace_log->GetCategoryGroupEnabled("baz")); | 1710 EXPECT_TRUE(*trace_log->GetCategoryGroupEnabled("baz")); |
1746 EXPECT_TRUE(*trace_log->GetCategoryGroupEnabled("moo")); | 1711 EXPECT_TRUE(*trace_log->GetCategoryGroupEnabled("moo")); |
1747 EXPECT_FALSE(*trace_log->GetCategoryGroupEnabled("foo")); | 1712 EXPECT_FALSE(*trace_log->GetCategoryGroupEnabled("foo")); |
1748 EXPECT_STREQ("-foo,-bar", | 1713 EXPECT_STREQ("-foo,-bar", |
1749 trace_log->GetCurrentCategoryFilter().ToString().c_str()); | 1714 trace_log->GetCurrentCategoryFilter().ToString().c_str()); |
1750 trace_log->SetDisabled(); | 1715 trace_log->SetDisabled(); |
1751 trace_log->SetDisabled(); | 1716 trace_log->SetDisabled(); |
1752 | 1717 |
1753 // Make sure disabled categories aren't cleared if we set in the second. | 1718 // Make sure disabled categories aren't cleared if we set in the second. |
1754 trace_log->SetEnabled(CategoryFilter("disabled-by-default-cc,foo"), | 1719 trace_log->SetEnabled(CategoryFilter("disabled-by-default-cc,foo"), |
1755 base::debug::TraceLog::RECORDING_MODE, | |
1756 TraceLog::RECORD_UNTIL_FULL); | 1720 TraceLog::RECORD_UNTIL_FULL); |
1757 EXPECT_FALSE(*trace_log->GetCategoryGroupEnabled("bar")); | 1721 EXPECT_FALSE(*trace_log->GetCategoryGroupEnabled("bar")); |
1758 trace_log->SetEnabled(CategoryFilter("disabled-by-default-gpu"), | 1722 trace_log->SetEnabled(CategoryFilter("disabled-by-default-gpu"), |
1759 base::debug::TraceLog::RECORDING_MODE, | |
1760 TraceLog::RECORD_UNTIL_FULL); | 1723 TraceLog::RECORD_UNTIL_FULL); |
1761 EXPECT_TRUE(*trace_log->GetCategoryGroupEnabled("disabled-by-default-cc")); | 1724 EXPECT_TRUE(*trace_log->GetCategoryGroupEnabled("disabled-by-default-cc")); |
1762 EXPECT_TRUE(*trace_log->GetCategoryGroupEnabled("disabled-by-default-gpu")); | 1725 EXPECT_TRUE(*trace_log->GetCategoryGroupEnabled("disabled-by-default-gpu")); |
1763 EXPECT_TRUE(*trace_log->GetCategoryGroupEnabled("bar")); | 1726 EXPECT_TRUE(*trace_log->GetCategoryGroupEnabled("bar")); |
1764 EXPECT_STREQ("disabled-by-default-cc,disabled-by-default-gpu", | 1727 EXPECT_STREQ("disabled-by-default-cc,disabled-by-default-gpu", |
1765 trace_log->GetCurrentCategoryFilter().ToString().c_str()); | 1728 trace_log->GetCurrentCategoryFilter().ToString().c_str()); |
1766 trace_log->SetDisabled(); | 1729 trace_log->SetDisabled(); |
1767 trace_log->SetDisabled(); | 1730 trace_log->SetDisabled(); |
1768 } | 1731 } |
1769 | 1732 |
1770 TEST_F(TraceEventTestFixture, TraceSampling) { | 1733 TEST_F(TraceEventTestFixture, TraceSampling) { |
1771 TraceLog::GetInstance()->SetEnabled( | 1734 TraceLog::GetInstance()->SetEnabled( |
1772 CategoryFilter("*"), | 1735 CategoryFilter("*"), |
1773 base::debug::TraceLog::RECORDING_MODE, | |
1774 TraceLog::Options(TraceLog::RECORD_UNTIL_FULL | | 1736 TraceLog::Options(TraceLog::RECORD_UNTIL_FULL | |
1775 TraceLog::ENABLE_SAMPLING)); | 1737 TraceLog::ENABLE_SAMPLING)); |
1776 | 1738 |
1777 TRACE_EVENT_SET_SAMPLING_STATE_FOR_BUCKET(1, "cc", "Stuff"); | 1739 TRACE_EVENT_SET_SAMPLING_STATE_FOR_BUCKET(1, "cc", "Stuff"); |
1778 TraceLog::GetInstance()->WaitSamplingEventForTesting(); | 1740 TraceLog::GetInstance()->WaitSamplingEventForTesting(); |
1779 TRACE_EVENT_SET_SAMPLING_STATE_FOR_BUCKET(1, "cc", "Things"); | 1741 TRACE_EVENT_SET_SAMPLING_STATE_FOR_BUCKET(1, "cc", "Things"); |
1780 TraceLog::GetInstance()->WaitSamplingEventForTesting(); | 1742 TraceLog::GetInstance()->WaitSamplingEventForTesting(); |
1781 | 1743 |
1782 EndTraceAndFlush(); | 1744 EndTraceAndFlush(); |
1783 | 1745 |
1784 // Make sure we hit at least once. | 1746 // Make sure we hit at least once. |
1785 EXPECT_TRUE(FindNamePhase("Stuff", "P")); | 1747 EXPECT_TRUE(FindNamePhase("Stuff", "P")); |
1786 EXPECT_TRUE(FindNamePhase("Things", "P")); | 1748 EXPECT_TRUE(FindNamePhase("Things", "P")); |
1787 } | 1749 } |
1788 | 1750 |
1789 TEST_F(TraceEventTestFixture, TraceSamplingScope) { | 1751 TEST_F(TraceEventTestFixture, TraceSamplingScope) { |
1790 TraceLog::GetInstance()->SetEnabled( | 1752 TraceLog::GetInstance()->SetEnabled( |
1791 CategoryFilter("*"), | 1753 CategoryFilter("*"), |
1792 base::debug::TraceLog::RECORDING_MODE, | |
1793 TraceLog::Options(TraceLog::RECORD_UNTIL_FULL | | 1754 TraceLog::Options(TraceLog::RECORD_UNTIL_FULL | |
1794 TraceLog::ENABLE_SAMPLING)); | 1755 TraceLog::ENABLE_SAMPLING)); |
1795 | 1756 |
1796 TRACE_EVENT_SCOPED_SAMPLING_STATE("AAA", "name"); | 1757 TRACE_EVENT_SCOPED_SAMPLING_STATE("AAA", "name"); |
1797 TraceLog::GetInstance()->WaitSamplingEventForTesting(); | 1758 TraceLog::GetInstance()->WaitSamplingEventForTesting(); |
1798 { | 1759 { |
1799 EXPECT_STREQ(TRACE_EVENT_GET_SAMPLING_STATE(), "AAA"); | 1760 EXPECT_STREQ(TRACE_EVENT_GET_SAMPLING_STATE(), "AAA"); |
1800 TRACE_EVENT_SCOPED_SAMPLING_STATE("BBB", "name"); | 1761 TRACE_EVENT_SCOPED_SAMPLING_STATE("BBB", "name"); |
1801 TraceLog::GetInstance()->WaitSamplingEventForTesting(); | 1762 TraceLog::GetInstance()->WaitSamplingEventForTesting(); |
1802 EXPECT_STREQ(TRACE_EVENT_GET_SAMPLING_STATE(), "BBB"); | 1763 EXPECT_STREQ(TRACE_EVENT_GET_SAMPLING_STATE(), "BBB"); |
(...skipping 14 matching lines...) Expand all Loading... |
1817 } | 1778 } |
1818 TraceLog::GetInstance()->WaitSamplingEventForTesting(); | 1779 TraceLog::GetInstance()->WaitSamplingEventForTesting(); |
1819 EXPECT_STREQ(TRACE_EVENT_GET_SAMPLING_STATE(), "DDD"); | 1780 EXPECT_STREQ(TRACE_EVENT_GET_SAMPLING_STATE(), "DDD"); |
1820 | 1781 |
1821 EndTraceAndFlush(); | 1782 EndTraceAndFlush(); |
1822 } | 1783 } |
1823 | 1784 |
1824 TEST_F(TraceEventTestFixture, TraceContinuousSampling) { | 1785 TEST_F(TraceEventTestFixture, TraceContinuousSampling) { |
1825 TraceLog::GetInstance()->SetEnabled( | 1786 TraceLog::GetInstance()->SetEnabled( |
1826 CategoryFilter("*"), | 1787 CategoryFilter("*"), |
1827 base::debug::TraceLog::MONITORING_MODE, | 1788 TraceLog::Options(TraceLog::MONITOR_SAMPLING)); |
1828 TraceLog::Options(TraceLog::ENABLE_SAMPLING)); | |
1829 | 1789 |
1830 TRACE_EVENT_SET_SAMPLING_STATE_FOR_BUCKET(1, "category", "AAA"); | 1790 TRACE_EVENT_SET_SAMPLING_STATE_FOR_BUCKET(1, "category", "AAA"); |
1831 TraceLog::GetInstance()->WaitSamplingEventForTesting(); | 1791 TraceLog::GetInstance()->WaitSamplingEventForTesting(); |
1832 TRACE_EVENT_SET_SAMPLING_STATE_FOR_BUCKET(1, "category", "BBB"); | 1792 TRACE_EVENT_SET_SAMPLING_STATE_FOR_BUCKET(1, "category", "BBB"); |
1833 TraceLog::GetInstance()->WaitSamplingEventForTesting(); | 1793 TraceLog::GetInstance()->WaitSamplingEventForTesting(); |
1834 | 1794 |
1835 FlushMonitoring(); | 1795 FlushMonitoring(); |
1836 | 1796 |
1837 // Make sure we can get the profiled data. | 1797 // Make sure we can get the profiled data. |
1838 EXPECT_TRUE(FindNamePhase("AAA", "P")); | 1798 EXPECT_TRUE(FindNamePhase("AAA", "P")); |
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1876 out->append("{\"foo\":1}"); | 1836 out->append("{\"foo\":1}"); |
1877 } | 1837 } |
1878 | 1838 |
1879 private: | 1839 private: |
1880 virtual ~MyData() {} | 1840 virtual ~MyData() {} |
1881 DISALLOW_COPY_AND_ASSIGN(MyData); | 1841 DISALLOW_COPY_AND_ASSIGN(MyData); |
1882 }; | 1842 }; |
1883 | 1843 |
1884 TEST_F(TraceEventTestFixture, ConvertableTypes) { | 1844 TEST_F(TraceEventTestFixture, ConvertableTypes) { |
1885 TraceLog::GetInstance()->SetEnabled(CategoryFilter("*"), | 1845 TraceLog::GetInstance()->SetEnabled(CategoryFilter("*"), |
1886 base::debug::TraceLog::RECORDING_MODE, | |
1887 TraceLog::RECORD_UNTIL_FULL); | 1846 TraceLog::RECORD_UNTIL_FULL); |
1888 | 1847 |
1889 scoped_refptr<ConvertableToTraceFormat> data(new MyData()); | 1848 scoped_refptr<ConvertableToTraceFormat> data(new MyData()); |
1890 scoped_refptr<ConvertableToTraceFormat> data1(new MyData()); | 1849 scoped_refptr<ConvertableToTraceFormat> data1(new MyData()); |
1891 scoped_refptr<ConvertableToTraceFormat> data2(new MyData()); | 1850 scoped_refptr<ConvertableToTraceFormat> data2(new MyData()); |
1892 TRACE_EVENT1("foo", "bar", "data", data); | 1851 TRACE_EVENT1("foo", "bar", "data", data); |
1893 TRACE_EVENT2("foo", "baz", | 1852 TRACE_EVENT2("foo", "baz", |
1894 "data1", data1, | 1853 "data1", data1, |
1895 "data2", data2); | 1854 "data2", data2); |
1896 | 1855 |
(...skipping 183 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2080 EXPECT_EQ("duration", collected_events_names_[4]); | 2039 EXPECT_EQ("duration", collected_events_names_[4]); |
2081 EXPECT_EQ(TRACE_EVENT_PHASE_END, collected_events_phases_[4]); | 2040 EXPECT_EQ(TRACE_EVENT_PHASE_END, collected_events_phases_[4]); |
2082 for (size_t i = 1; i < collected_events_timestamps_.size(); i++) { | 2041 for (size_t i = 1; i < collected_events_timestamps_.size(); i++) { |
2083 EXPECT_LE(collected_events_timestamps_[i - 1], | 2042 EXPECT_LE(collected_events_timestamps_[i - 1], |
2084 collected_events_timestamps_[i]); | 2043 collected_events_timestamps_[i]); |
2085 } | 2044 } |
2086 } | 2045 } |
2087 | 2046 |
2088 TEST_F(TraceEventCallbackTest, TraceEventCallbackWhileFull) { | 2047 TEST_F(TraceEventCallbackTest, TraceEventCallbackWhileFull) { |
2089 TraceLog::GetInstance()->SetEnabled(CategoryFilter("*"), | 2048 TraceLog::GetInstance()->SetEnabled(CategoryFilter("*"), |
2090 base::debug::TraceLog::RECORDING_MODE, | |
2091 TraceLog::RECORD_UNTIL_FULL); | 2049 TraceLog::RECORD_UNTIL_FULL); |
2092 do { | 2050 do { |
2093 TRACE_EVENT_INSTANT0("all", "badger badger", TRACE_EVENT_SCOPE_GLOBAL); | 2051 TRACE_EVENT_INSTANT0("all", "badger badger", TRACE_EVENT_SCOPE_GLOBAL); |
2094 } while (!TraceLog::GetInstance()->BufferIsFull()); | 2052 } while (!TraceLog::GetInstance()->BufferIsFull()); |
2095 TraceLog::GetInstance()->SetEventCallbackEnabled(CategoryFilter("*"), | 2053 TraceLog::GetInstance()->SetEventCallbackEnabled(CategoryFilter("*"), |
2096 Callback); | 2054 Callback); |
2097 TRACE_EVENT_INSTANT0("all", "a snake", TRACE_EVENT_SCOPE_GLOBAL); | 2055 TRACE_EVENT_INSTANT0("all", "a snake", TRACE_EVENT_SCOPE_GLOBAL); |
2098 TraceLog::GetInstance()->SetEventCallbackDisabled(); | 2056 TraceLog::GetInstance()->SetEventCallbackDisabled(); |
2099 ASSERT_EQ(1u, collected_events_names_.size()); | 2057 ASSERT_EQ(1u, collected_events_names_.size()); |
2100 EXPECT_EQ("a snake", collected_events_names_[0]); | 2058 EXPECT_EQ("a snake", collected_events_names_[0]); |
2101 } | 2059 } |
2102 | 2060 |
2103 // 1: Enable callback, enable recording, disable callback, disable recording. | 2061 // 1: Enable callback, enable recording, disable callback, disable recording. |
2104 TEST_F(TraceEventCallbackTest, TraceEventCallbackAndRecording1) { | 2062 TEST_F(TraceEventCallbackTest, TraceEventCallbackAndRecording1) { |
2105 TRACE_EVENT_INSTANT0("recording", "no", TRACE_EVENT_SCOPE_GLOBAL); | 2063 TRACE_EVENT_INSTANT0("recording", "no", TRACE_EVENT_SCOPE_GLOBAL); |
2106 TRACE_EVENT_INSTANT0("callback", "no", TRACE_EVENT_SCOPE_GLOBAL); | 2064 TRACE_EVENT_INSTANT0("callback", "no", TRACE_EVENT_SCOPE_GLOBAL); |
2107 TraceLog::GetInstance()->SetEventCallbackEnabled(CategoryFilter("callback"), | 2065 TraceLog::GetInstance()->SetEventCallbackEnabled(CategoryFilter("callback"), |
2108 Callback); | 2066 Callback); |
2109 TRACE_EVENT_INSTANT0("recording", "no", TRACE_EVENT_SCOPE_GLOBAL); | 2067 TRACE_EVENT_INSTANT0("recording", "no", TRACE_EVENT_SCOPE_GLOBAL); |
2110 TRACE_EVENT_INSTANT0("callback", "yes", TRACE_EVENT_SCOPE_GLOBAL); | 2068 TRACE_EVENT_INSTANT0("callback", "yes", TRACE_EVENT_SCOPE_GLOBAL); |
2111 TraceLog::GetInstance()->SetEnabled(CategoryFilter("recording"), | 2069 TraceLog::GetInstance()->SetEnabled( |
2112 base::debug::TraceLog::RECORDING_MODE, | 2070 CategoryFilter("recording"), TraceLog::RECORD_UNTIL_FULL); |
2113 TraceLog::RECORD_UNTIL_FULL); | |
2114 TRACE_EVENT_INSTANT0("recording", "yes", TRACE_EVENT_SCOPE_GLOBAL); | 2071 TRACE_EVENT_INSTANT0("recording", "yes", TRACE_EVENT_SCOPE_GLOBAL); |
2115 TRACE_EVENT_INSTANT0("callback", "yes", TRACE_EVENT_SCOPE_GLOBAL); | 2072 TRACE_EVENT_INSTANT0("callback", "yes", TRACE_EVENT_SCOPE_GLOBAL); |
2116 TraceLog::GetInstance()->SetEventCallbackDisabled(); | 2073 TraceLog::GetInstance()->SetEventCallbackDisabled(); |
2117 TRACE_EVENT_INSTANT0("recording", "yes", TRACE_EVENT_SCOPE_GLOBAL); | 2074 TRACE_EVENT_INSTANT0("recording", "yes", TRACE_EVENT_SCOPE_GLOBAL); |
2118 TRACE_EVENT_INSTANT0("callback", "no", TRACE_EVENT_SCOPE_GLOBAL); | 2075 TRACE_EVENT_INSTANT0("callback", "no", TRACE_EVENT_SCOPE_GLOBAL); |
2119 EndTraceAndFlush(); | 2076 EndTraceAndFlush(); |
2120 TRACE_EVENT_INSTANT0("recording", "no", TRACE_EVENT_SCOPE_GLOBAL); | 2077 TRACE_EVENT_INSTANT0("recording", "no", TRACE_EVENT_SCOPE_GLOBAL); |
2121 TRACE_EVENT_INSTANT0("callback", "no", TRACE_EVENT_SCOPE_GLOBAL); | 2078 TRACE_EVENT_INSTANT0("callback", "no", TRACE_EVENT_SCOPE_GLOBAL); |
2122 | 2079 |
2123 VerifyCallbackAndRecordedEvents(2, 2); | 2080 VerifyCallbackAndRecordedEvents(2, 2); |
2124 } | 2081 } |
2125 | 2082 |
2126 // 2: Enable callback, enable recording, disable recording, disable callback. | 2083 // 2: Enable callback, enable recording, disable recording, disable callback. |
2127 TEST_F(TraceEventCallbackTest, TraceEventCallbackAndRecording2) { | 2084 TEST_F(TraceEventCallbackTest, TraceEventCallbackAndRecording2) { |
2128 TRACE_EVENT_INSTANT0("recording", "no", TRACE_EVENT_SCOPE_GLOBAL); | 2085 TRACE_EVENT_INSTANT0("recording", "no", TRACE_EVENT_SCOPE_GLOBAL); |
2129 TRACE_EVENT_INSTANT0("callback", "no", TRACE_EVENT_SCOPE_GLOBAL); | 2086 TRACE_EVENT_INSTANT0("callback", "no", TRACE_EVENT_SCOPE_GLOBAL); |
2130 TraceLog::GetInstance()->SetEventCallbackEnabled(CategoryFilter("callback"), | 2087 TraceLog::GetInstance()->SetEventCallbackEnabled(CategoryFilter("callback"), |
2131 Callback); | 2088 Callback); |
2132 TRACE_EVENT_INSTANT0("recording", "no", TRACE_EVENT_SCOPE_GLOBAL); | 2089 TRACE_EVENT_INSTANT0("recording", "no", TRACE_EVENT_SCOPE_GLOBAL); |
2133 TRACE_EVENT_INSTANT0("callback", "yes", TRACE_EVENT_SCOPE_GLOBAL); | 2090 TRACE_EVENT_INSTANT0("callback", "yes", TRACE_EVENT_SCOPE_GLOBAL); |
2134 TraceLog::GetInstance()->SetEnabled(CategoryFilter("recording"), | 2091 TraceLog::GetInstance()->SetEnabled( |
2135 base::debug::TraceLog::RECORDING_MODE, | 2092 CategoryFilter("recording"), TraceLog::RECORD_UNTIL_FULL); |
2136 TraceLog::RECORD_UNTIL_FULL); | |
2137 TRACE_EVENT_INSTANT0("recording", "yes", TRACE_EVENT_SCOPE_GLOBAL); | 2093 TRACE_EVENT_INSTANT0("recording", "yes", TRACE_EVENT_SCOPE_GLOBAL); |
2138 TRACE_EVENT_INSTANT0("callback", "yes", TRACE_EVENT_SCOPE_GLOBAL); | 2094 TRACE_EVENT_INSTANT0("callback", "yes", TRACE_EVENT_SCOPE_GLOBAL); |
2139 EndTraceAndFlush(); | 2095 EndTraceAndFlush(); |
2140 TRACE_EVENT_INSTANT0("recording", "no", TRACE_EVENT_SCOPE_GLOBAL); | 2096 TRACE_EVENT_INSTANT0("recording", "no", TRACE_EVENT_SCOPE_GLOBAL); |
2141 TRACE_EVENT_INSTANT0("callback", "yes", TRACE_EVENT_SCOPE_GLOBAL); | 2097 TRACE_EVENT_INSTANT0("callback", "yes", TRACE_EVENT_SCOPE_GLOBAL); |
2142 TraceLog::GetInstance()->SetEventCallbackDisabled(); | 2098 TraceLog::GetInstance()->SetEventCallbackDisabled(); |
2143 TRACE_EVENT_INSTANT0("recording", "no", TRACE_EVENT_SCOPE_GLOBAL); | 2099 TRACE_EVENT_INSTANT0("recording", "no", TRACE_EVENT_SCOPE_GLOBAL); |
2144 TRACE_EVENT_INSTANT0("callback", "no", TRACE_EVENT_SCOPE_GLOBAL); | 2100 TRACE_EVENT_INSTANT0("callback", "no", TRACE_EVENT_SCOPE_GLOBAL); |
2145 | 2101 |
2146 VerifyCallbackAndRecordedEvents(3, 1); | 2102 VerifyCallbackAndRecordedEvents(3, 1); |
2147 } | 2103 } |
2148 | 2104 |
2149 // 3: Enable recording, enable callback, disable callback, disable recording. | 2105 // 3: Enable recording, enable callback, disable callback, disable recording. |
2150 TEST_F(TraceEventCallbackTest, TraceEventCallbackAndRecording3) { | 2106 TEST_F(TraceEventCallbackTest, TraceEventCallbackAndRecording3) { |
2151 TRACE_EVENT_INSTANT0("recording", "no", TRACE_EVENT_SCOPE_GLOBAL); | 2107 TRACE_EVENT_INSTANT0("recording", "no", TRACE_EVENT_SCOPE_GLOBAL); |
2152 TRACE_EVENT_INSTANT0("callback", "no", TRACE_EVENT_SCOPE_GLOBAL); | 2108 TRACE_EVENT_INSTANT0("callback", "no", TRACE_EVENT_SCOPE_GLOBAL); |
2153 TraceLog::GetInstance()->SetEnabled(CategoryFilter("recording"), | 2109 TraceLog::GetInstance()->SetEnabled( |
2154 base::debug::TraceLog::RECORDING_MODE, | 2110 CategoryFilter("recording"), TraceLog::RECORD_UNTIL_FULL); |
2155 TraceLog::RECORD_UNTIL_FULL); | |
2156 TRACE_EVENT_INSTANT0("recording", "yes", TRACE_EVENT_SCOPE_GLOBAL); | 2111 TRACE_EVENT_INSTANT0("recording", "yes", TRACE_EVENT_SCOPE_GLOBAL); |
2157 TRACE_EVENT_INSTANT0("callback", "no", TRACE_EVENT_SCOPE_GLOBAL); | 2112 TRACE_EVENT_INSTANT0("callback", "no", TRACE_EVENT_SCOPE_GLOBAL); |
2158 TraceLog::GetInstance()->SetEventCallbackEnabled(CategoryFilter("callback"), | 2113 TraceLog::GetInstance()->SetEventCallbackEnabled(CategoryFilter("callback"), |
2159 Callback); | 2114 Callback); |
2160 TRACE_EVENT_INSTANT0("recording", "yes", TRACE_EVENT_SCOPE_GLOBAL); | 2115 TRACE_EVENT_INSTANT0("recording", "yes", TRACE_EVENT_SCOPE_GLOBAL); |
2161 TRACE_EVENT_INSTANT0("callback", "yes", TRACE_EVENT_SCOPE_GLOBAL); | 2116 TRACE_EVENT_INSTANT0("callback", "yes", TRACE_EVENT_SCOPE_GLOBAL); |
2162 TraceLog::GetInstance()->SetEventCallbackDisabled(); | 2117 TraceLog::GetInstance()->SetEventCallbackDisabled(); |
2163 TRACE_EVENT_INSTANT0("recording", "yes", TRACE_EVENT_SCOPE_GLOBAL); | 2118 TRACE_EVENT_INSTANT0("recording", "yes", TRACE_EVENT_SCOPE_GLOBAL); |
2164 TRACE_EVENT_INSTANT0("callback", "no", TRACE_EVENT_SCOPE_GLOBAL); | 2119 TRACE_EVENT_INSTANT0("callback", "no", TRACE_EVENT_SCOPE_GLOBAL); |
2165 EndTraceAndFlush(); | 2120 EndTraceAndFlush(); |
2166 TRACE_EVENT_INSTANT0("recording", "no", TRACE_EVENT_SCOPE_GLOBAL); | 2121 TRACE_EVENT_INSTANT0("recording", "no", TRACE_EVENT_SCOPE_GLOBAL); |
2167 TRACE_EVENT_INSTANT0("callback", "no", TRACE_EVENT_SCOPE_GLOBAL); | 2122 TRACE_EVENT_INSTANT0("callback", "no", TRACE_EVENT_SCOPE_GLOBAL); |
2168 | 2123 |
2169 VerifyCallbackAndRecordedEvents(1, 3); | 2124 VerifyCallbackAndRecordedEvents(1, 3); |
2170 } | 2125 } |
2171 | 2126 |
2172 // 4: Enable recording, enable callback, disable recording, disable callback. | 2127 // 4: Enable recording, enable callback, disable recording, disable callback. |
2173 TEST_F(TraceEventCallbackTest, TraceEventCallbackAndRecording4) { | 2128 TEST_F(TraceEventCallbackTest, TraceEventCallbackAndRecording4) { |
2174 TRACE_EVENT_INSTANT0("recording", "no", TRACE_EVENT_SCOPE_GLOBAL); | 2129 TRACE_EVENT_INSTANT0("recording", "no", TRACE_EVENT_SCOPE_GLOBAL); |
2175 TRACE_EVENT_INSTANT0("callback", "no", TRACE_EVENT_SCOPE_GLOBAL); | 2130 TRACE_EVENT_INSTANT0("callback", "no", TRACE_EVENT_SCOPE_GLOBAL); |
2176 TraceLog::GetInstance()->SetEnabled(CategoryFilter("recording"), | 2131 TraceLog::GetInstance()->SetEnabled( |
2177 base::debug::TraceLog::RECORDING_MODE, | 2132 CategoryFilter("recording"), TraceLog::RECORD_UNTIL_FULL); |
2178 TraceLog::RECORD_UNTIL_FULL); | |
2179 TRACE_EVENT_INSTANT0("recording", "yes", TRACE_EVENT_SCOPE_GLOBAL); | 2133 TRACE_EVENT_INSTANT0("recording", "yes", TRACE_EVENT_SCOPE_GLOBAL); |
2180 TRACE_EVENT_INSTANT0("callback", "no", TRACE_EVENT_SCOPE_GLOBAL); | 2134 TRACE_EVENT_INSTANT0("callback", "no", TRACE_EVENT_SCOPE_GLOBAL); |
2181 TraceLog::GetInstance()->SetEventCallbackEnabled(CategoryFilter("callback"), | 2135 TraceLog::GetInstance()->SetEventCallbackEnabled(CategoryFilter("callback"), |
2182 Callback); | 2136 Callback); |
2183 TRACE_EVENT_INSTANT0("recording", "yes", TRACE_EVENT_SCOPE_GLOBAL); | 2137 TRACE_EVENT_INSTANT0("recording", "yes", TRACE_EVENT_SCOPE_GLOBAL); |
2184 TRACE_EVENT_INSTANT0("callback", "yes", TRACE_EVENT_SCOPE_GLOBAL); | 2138 TRACE_EVENT_INSTANT0("callback", "yes", TRACE_EVENT_SCOPE_GLOBAL); |
2185 EndTraceAndFlush(); | 2139 EndTraceAndFlush(); |
2186 TRACE_EVENT_INSTANT0("recording", "no", TRACE_EVENT_SCOPE_GLOBAL); | 2140 TRACE_EVENT_INSTANT0("recording", "no", TRACE_EVENT_SCOPE_GLOBAL); |
2187 TRACE_EVENT_INSTANT0("callback", "yes", TRACE_EVENT_SCOPE_GLOBAL); | 2141 TRACE_EVENT_INSTANT0("callback", "yes", TRACE_EVENT_SCOPE_GLOBAL); |
2188 TraceLog::GetInstance()->SetEventCallbackDisabled(); | 2142 TraceLog::GetInstance()->SetEventCallbackDisabled(); |
2189 TRACE_EVENT_INSTANT0("recording", "no", TRACE_EVENT_SCOPE_GLOBAL); | 2143 TRACE_EVENT_INSTANT0("recording", "no", TRACE_EVENT_SCOPE_GLOBAL); |
2190 TRACE_EVENT_INSTANT0("callback", "no", TRACE_EVENT_SCOPE_GLOBAL); | 2144 TRACE_EVENT_INSTANT0("callback", "no", TRACE_EVENT_SCOPE_GLOBAL); |
2191 | 2145 |
2192 VerifyCallbackAndRecordedEvents(2, 2); | 2146 VerifyCallbackAndRecordedEvents(2, 2); |
2193 } | 2147 } |
2194 | 2148 |
2195 TEST_F(TraceEventCallbackTest, TraceEventCallbackAndRecordingDuration) { | 2149 TEST_F(TraceEventCallbackTest, TraceEventCallbackAndRecordingDuration) { |
2196 TraceLog::GetInstance()->SetEventCallbackEnabled(CategoryFilter("*"), | 2150 TraceLog::GetInstance()->SetEventCallbackEnabled(CategoryFilter("*"), |
2197 Callback); | 2151 Callback); |
2198 { | 2152 { |
2199 TRACE_EVENT0("callback", "duration1"); | 2153 TRACE_EVENT0("callback", "duration1"); |
2200 TraceLog::GetInstance()->SetEnabled(CategoryFilter("*"), | 2154 TraceLog::GetInstance()->SetEnabled( |
2201 base::debug::TraceLog::RECORDING_MODE, | 2155 CategoryFilter("*"), TraceLog::RECORD_UNTIL_FULL); |
2202 TraceLog::RECORD_UNTIL_FULL); | |
2203 TRACE_EVENT0("callback", "duration2"); | 2156 TRACE_EVENT0("callback", "duration2"); |
2204 EndTraceAndFlush(); | 2157 EndTraceAndFlush(); |
2205 TRACE_EVENT0("callback", "duration3"); | 2158 TRACE_EVENT0("callback", "duration3"); |
2206 } | 2159 } |
2207 TraceLog::GetInstance()->SetEventCallbackDisabled(); | 2160 TraceLog::GetInstance()->SetEventCallbackDisabled(); |
2208 | 2161 |
2209 ASSERT_EQ(6u, collected_events_names_.size()); | 2162 ASSERT_EQ(6u, collected_events_names_.size()); |
2210 VerifyCollectedEvent(0, TRACE_EVENT_PHASE_BEGIN, "callback", "duration1"); | 2163 VerifyCollectedEvent(0, TRACE_EVENT_PHASE_BEGIN, "callback", "duration1"); |
2211 VerifyCollectedEvent(1, TRACE_EVENT_PHASE_BEGIN, "callback", "duration2"); | 2164 VerifyCollectedEvent(1, TRACE_EVENT_PHASE_BEGIN, "callback", "duration2"); |
2212 VerifyCollectedEvent(2, TRACE_EVENT_PHASE_BEGIN, "callback", "duration3"); | 2165 VerifyCollectedEvent(2, TRACE_EVENT_PHASE_BEGIN, "callback", "duration3"); |
2213 VerifyCollectedEvent(3, TRACE_EVENT_PHASE_END, "callback", "duration3"); | 2166 VerifyCollectedEvent(3, TRACE_EVENT_PHASE_END, "callback", "duration3"); |
2214 VerifyCollectedEvent(4, TRACE_EVENT_PHASE_END, "callback", "duration2"); | 2167 VerifyCollectedEvent(4, TRACE_EVENT_PHASE_END, "callback", "duration2"); |
2215 VerifyCollectedEvent(5, TRACE_EVENT_PHASE_END, "callback", "duration1"); | 2168 VerifyCollectedEvent(5, TRACE_EVENT_PHASE_END, "callback", "duration1"); |
2216 } | 2169 } |
2217 | 2170 |
2218 TEST_F(TraceEventTestFixture, TraceBufferRingBufferGetReturnChunk) { | 2171 TEST_F(TraceEventTestFixture, TraceBufferRingBufferGetReturnChunk) { |
2219 TraceLog::GetInstance()->SetEnabled(CategoryFilter("*"), | 2172 TraceLog::GetInstance()->SetEnabled(CategoryFilter("*"), |
2220 base::debug::TraceLog::RECORDING_MODE, | |
2221 TraceLog::RECORD_CONTINUOUSLY); | 2173 TraceLog::RECORD_CONTINUOUSLY); |
2222 TraceBuffer* buffer = TraceLog::GetInstance()->trace_buffer(); | 2174 TraceBuffer* buffer = TraceLog::GetInstance()->trace_buffer(); |
2223 size_t capacity = buffer->Capacity(); | 2175 size_t capacity = buffer->Capacity(); |
2224 size_t num_chunks = capacity / TraceBufferChunk::kTraceBufferChunkSize; | 2176 size_t num_chunks = capacity / TraceBufferChunk::kTraceBufferChunkSize; |
2225 uint32 last_seq = 0; | 2177 uint32 last_seq = 0; |
2226 size_t chunk_index; | 2178 size_t chunk_index; |
2227 EXPECT_EQ(0u, buffer->Size()); | 2179 EXPECT_EQ(0u, buffer->Size()); |
2228 | 2180 |
2229 scoped_ptr<TraceBufferChunk*[]> chunks(new TraceBufferChunk*[num_chunks]); | 2181 scoped_ptr<TraceBufferChunk*[]> chunks(new TraceBufferChunk*[num_chunks]); |
2230 for (size_t i = 0; i < num_chunks; ++i) { | 2182 for (size_t i = 0; i < num_chunks; ++i) { |
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2270 } | 2222 } |
2271 | 2223 |
2272 for (size_t i = 0; i < num_chunks; ++i) | 2224 for (size_t i = 0; i < num_chunks; ++i) |
2273 buffer->ReturnChunk(i, scoped_ptr<TraceBufferChunk>(chunks[i])); | 2225 buffer->ReturnChunk(i, scoped_ptr<TraceBufferChunk>(chunks[i])); |
2274 | 2226 |
2275 TraceLog::GetInstance()->SetDisabled(); | 2227 TraceLog::GetInstance()->SetDisabled(); |
2276 } | 2228 } |
2277 | 2229 |
2278 TEST_F(TraceEventTestFixture, TraceBufferRingBufferHalfIteration) { | 2230 TEST_F(TraceEventTestFixture, TraceBufferRingBufferHalfIteration) { |
2279 TraceLog::GetInstance()->SetEnabled(CategoryFilter("*"), | 2231 TraceLog::GetInstance()->SetEnabled(CategoryFilter("*"), |
2280 base::debug::TraceLog::RECORDING_MODE, | |
2281 TraceLog::RECORD_CONTINUOUSLY); | 2232 TraceLog::RECORD_CONTINUOUSLY); |
2282 TraceBuffer* buffer = TraceLog::GetInstance()->trace_buffer(); | 2233 TraceBuffer* buffer = TraceLog::GetInstance()->trace_buffer(); |
2283 size_t capacity = buffer->Capacity(); | 2234 size_t capacity = buffer->Capacity(); |
2284 size_t num_chunks = capacity / TraceBufferChunk::kTraceBufferChunkSize; | 2235 size_t num_chunks = capacity / TraceBufferChunk::kTraceBufferChunkSize; |
2285 size_t chunk_index; | 2236 size_t chunk_index; |
2286 EXPECT_EQ(0u, buffer->Size()); | 2237 EXPECT_EQ(0u, buffer->Size()); |
2287 EXPECT_FALSE(buffer->NextChunk()); | 2238 EXPECT_FALSE(buffer->NextChunk()); |
2288 | 2239 |
2289 size_t half_chunks = num_chunks / 2; | 2240 size_t half_chunks = num_chunks / 2; |
2290 scoped_ptr<TraceBufferChunk*[]> chunks(new TraceBufferChunk*[half_chunks]); | 2241 scoped_ptr<TraceBufferChunk*[]> chunks(new TraceBufferChunk*[half_chunks]); |
2291 | 2242 |
2292 for (size_t i = 0; i < half_chunks; ++i) { | 2243 for (size_t i = 0; i < half_chunks; ++i) { |
2293 chunks[i] = buffer->GetChunk(&chunk_index).release(); | 2244 chunks[i] = buffer->GetChunk(&chunk_index).release(); |
2294 EXPECT_TRUE(chunks[i]); | 2245 EXPECT_TRUE(chunks[i]); |
2295 EXPECT_EQ(i, chunk_index); | 2246 EXPECT_EQ(i, chunk_index); |
2296 } | 2247 } |
2297 for (size_t i = 0; i < half_chunks; ++i) | 2248 for (size_t i = 0; i < half_chunks; ++i) |
2298 buffer->ReturnChunk(i, scoped_ptr<TraceBufferChunk>(chunks[i])); | 2249 buffer->ReturnChunk(i, scoped_ptr<TraceBufferChunk>(chunks[i])); |
2299 | 2250 |
2300 for (size_t i = 0; i < half_chunks; ++i) | 2251 for (size_t i = 0; i < half_chunks; ++i) |
2301 EXPECT_EQ(chunks[i], buffer->NextChunk()); | 2252 EXPECT_EQ(chunks[i], buffer->NextChunk()); |
2302 EXPECT_FALSE(buffer->NextChunk()); | 2253 EXPECT_FALSE(buffer->NextChunk()); |
2303 TraceLog::GetInstance()->SetDisabled(); | 2254 TraceLog::GetInstance()->SetDisabled(); |
2304 } | 2255 } |
2305 | 2256 |
2306 TEST_F(TraceEventTestFixture, TraceBufferRingBufferFullIteration) { | 2257 TEST_F(TraceEventTestFixture, TraceBufferRingBufferFullIteration) { |
2307 TraceLog::GetInstance()->SetEnabled(CategoryFilter("*"), | 2258 TraceLog::GetInstance()->SetEnabled(CategoryFilter("*"), |
2308 base::debug::TraceLog::RECORDING_MODE, | |
2309 TraceLog::RECORD_CONTINUOUSLY); | 2259 TraceLog::RECORD_CONTINUOUSLY); |
2310 TraceBuffer* buffer = TraceLog::GetInstance()->trace_buffer(); | 2260 TraceBuffer* buffer = TraceLog::GetInstance()->trace_buffer(); |
2311 size_t capacity = buffer->Capacity(); | 2261 size_t capacity = buffer->Capacity(); |
2312 size_t num_chunks = capacity / TraceBufferChunk::kTraceBufferChunkSize; | 2262 size_t num_chunks = capacity / TraceBufferChunk::kTraceBufferChunkSize; |
2313 size_t chunk_index; | 2263 size_t chunk_index; |
2314 EXPECT_EQ(0u, buffer->Size()); | 2264 EXPECT_EQ(0u, buffer->Size()); |
2315 EXPECT_FALSE(buffer->NextChunk()); | 2265 EXPECT_FALSE(buffer->NextChunk()); |
2316 | 2266 |
2317 scoped_ptr<TraceBufferChunk*[]> chunks(new TraceBufferChunk*[num_chunks]); | 2267 scoped_ptr<TraceBufferChunk*[]> chunks(new TraceBufferChunk*[num_chunks]); |
2318 | 2268 |
(...skipping 228 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2547 g_log_buffer->append(str); | 2497 g_log_buffer->append(str); |
2548 return false; | 2498 return false; |
2549 } | 2499 } |
2550 | 2500 |
2551 TEST_F(TraceEventTestFixture, EchoToConsole) { | 2501 TEST_F(TraceEventTestFixture, EchoToConsole) { |
2552 logging::LogMessageHandlerFunction old_log_message_handler = | 2502 logging::LogMessageHandlerFunction old_log_message_handler = |
2553 logging::GetLogMessageHandler(); | 2503 logging::GetLogMessageHandler(); |
2554 logging::SetLogMessageHandler(MockLogMessageHandler); | 2504 logging::SetLogMessageHandler(MockLogMessageHandler); |
2555 | 2505 |
2556 TraceLog::GetInstance()->SetEnabled(CategoryFilter("*"), | 2506 TraceLog::GetInstance()->SetEnabled(CategoryFilter("*"), |
2557 base::debug::TraceLog::RECORDING_MODE, | |
2558 TraceLog::ECHO_TO_CONSOLE); | 2507 TraceLog::ECHO_TO_CONSOLE); |
2559 TRACE_EVENT_BEGIN0("a", "begin_end"); | 2508 TRACE_EVENT_BEGIN0("a", "begin_end"); |
2560 { | 2509 { |
2561 TRACE_EVENT0("b", "duration"); | 2510 TRACE_EVENT0("b", "duration"); |
2562 TRACE_EVENT0("b1", "duration1"); | 2511 TRACE_EVENT0("b1", "duration1"); |
2563 } | 2512 } |
2564 TRACE_EVENT_INSTANT0("c", "instant", TRACE_EVENT_SCOPE_GLOBAL); | 2513 TRACE_EVENT_INSTANT0("c", "instant", TRACE_EVENT_SCOPE_GLOBAL); |
2565 TRACE_EVENT_END0("a", "begin_end"); | 2514 TRACE_EVENT_END0("a", "begin_end"); |
2566 | 2515 |
2567 EXPECT_NE(std::string::npos, g_log_buffer->find("begin_end[a]\x1b")); | 2516 EXPECT_NE(std::string::npos, g_log_buffer->find("begin_end[a]\x1b")); |
(...skipping 15 matching lines...) Expand all Loading... |
2583 TRACE_EVENT0("log", "trace_event"); | 2532 TRACE_EVENT0("log", "trace_event"); |
2584 return false; | 2533 return false; |
2585 } | 2534 } |
2586 | 2535 |
2587 TEST_F(TraceEventTestFixture, EchoToConsoleTraceEventRecursion) { | 2536 TEST_F(TraceEventTestFixture, EchoToConsoleTraceEventRecursion) { |
2588 logging::LogMessageHandlerFunction old_log_message_handler = | 2537 logging::LogMessageHandlerFunction old_log_message_handler = |
2589 logging::GetLogMessageHandler(); | 2538 logging::GetLogMessageHandler(); |
2590 logging::SetLogMessageHandler(LogMessageHandlerWithTraceEvent); | 2539 logging::SetLogMessageHandler(LogMessageHandlerWithTraceEvent); |
2591 | 2540 |
2592 TraceLog::GetInstance()->SetEnabled(CategoryFilter("*"), | 2541 TraceLog::GetInstance()->SetEnabled(CategoryFilter("*"), |
2593 base::debug::TraceLog::RECORDING_MODE, | |
2594 TraceLog::ECHO_TO_CONSOLE); | 2542 TraceLog::ECHO_TO_CONSOLE); |
2595 { | 2543 { |
2596 // This should not cause deadlock or infinite recursion. | 2544 // This should not cause deadlock or infinite recursion. |
2597 TRACE_EVENT0("b", "duration"); | 2545 TRACE_EVENT0("b", "duration"); |
2598 } | 2546 } |
2599 | 2547 |
2600 EndTraceAndFlush(); | 2548 EndTraceAndFlush(); |
2601 logging::SetLogMessageHandler(old_log_message_handler); | 2549 logging::SetLogMessageHandler(old_log_message_handler); |
2602 } | 2550 } |
2603 | 2551 |
(...skipping 25 matching lines...) Expand all Loading... |
2629 double timestamp; | 2577 double timestamp; |
2630 EXPECT_TRUE(item->GetDouble("ts", ×tamp)); | 2578 EXPECT_TRUE(item->GetDouble("ts", ×tamp)); |
2631 EXPECT_GE(timestamp, last_timestamp); | 2579 EXPECT_GE(timestamp, last_timestamp); |
2632 EXPECT_LE(timestamp, end_time); | 2580 EXPECT_LE(timestamp, end_time); |
2633 last_timestamp = timestamp; | 2581 last_timestamp = timestamp; |
2634 } | 2582 } |
2635 } | 2583 } |
2636 | 2584 |
2637 } // namespace debug | 2585 } // namespace debug |
2638 } // namespace base | 2586 } // namespace base |
OLD | NEW |