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