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