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 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
46 const char kAsyncIdStr[] = "0x5"; | 46 const char kAsyncIdStr[] = "0x5"; |
47 const int kAsyncId2 = 6; | 47 const int kAsyncId2 = 6; |
48 const char kAsyncId2Str[] = "0x6"; | 48 const char kAsyncId2Str[] = "0x6"; |
49 | 49 |
50 class TraceEventTestFixture : public testing::Test { | 50 class TraceEventTestFixture : public testing::Test { |
51 public: | 51 public: |
52 void OnTraceDataCollected( | 52 void OnTraceDataCollected( |
53 WaitableEvent* flush_complete_event, | 53 WaitableEvent* flush_complete_event, |
54 const scoped_refptr<base::RefCountedString>& events_str, | 54 const scoped_refptr<base::RefCountedString>& events_str, |
55 bool has_more_events); | 55 bool has_more_events); |
56 void OnTraceNotification(int notification) { | 56 void OnWatchEventMatched() { |
57 if (notification & TraceLog::EVENT_WATCH_NOTIFICATION) | 57 ++event_watch_notification_; |
58 ++event_watch_notification_; | |
59 notifications_received_ |= notification; | |
60 } | 58 } |
61 DictionaryValue* FindMatchingTraceEntry(const JsonKeyValue* key_values); | 59 DictionaryValue* FindMatchingTraceEntry(const JsonKeyValue* key_values); |
62 DictionaryValue* FindNamePhase(const char* name, const char* phase); | 60 DictionaryValue* FindNamePhase(const char* name, const char* phase); |
63 DictionaryValue* FindNamePhaseKeyValue(const char* name, | 61 DictionaryValue* FindNamePhaseKeyValue(const char* name, |
64 const char* phase, | 62 const char* phase, |
65 const char* key, | 63 const char* key, |
66 const char* value); | 64 const char* value); |
67 bool FindMatchingValue(const char* key, | 65 bool FindMatchingValue(const char* key, |
68 const char* value); | 66 const char* value); |
69 bool FindNonMatchingValue(const char* key, | 67 bool FindNonMatchingValue(const char* key, |
70 const char* value); | 68 const char* value); |
71 void Clear() { | 69 void Clear() { |
72 trace_parsed_.Clear(); | 70 trace_parsed_.Clear(); |
73 json_output_.json_output.clear(); | 71 json_output_.json_output.clear(); |
74 } | 72 } |
75 | 73 |
76 void BeginTrace() { | 74 void BeginTrace() { |
77 BeginSpecificTrace("*"); | 75 BeginSpecificTrace("*"); |
78 } | 76 } |
79 | 77 |
80 void BeginSpecificTrace(const std::string& filter) { | 78 void BeginSpecificTrace(const std::string& filter) { |
81 event_watch_notification_ = 0; | 79 event_watch_notification_ = 0; |
82 notifications_received_ = 0; | |
83 TraceLog::GetInstance()->SetEnabled(CategoryFilter(filter), | 80 TraceLog::GetInstance()->SetEnabled(CategoryFilter(filter), |
84 TraceLog::RECORD_UNTIL_FULL); | 81 TraceLog::RECORD_UNTIL_FULL); |
85 } | 82 } |
86 | 83 |
87 void EndTraceAndFlush() { | 84 void EndTraceAndFlush() { |
88 WaitableEvent flush_complete_event(false, false); | 85 WaitableEvent flush_complete_event(false, false); |
89 EndTraceAndFlushAsync(&flush_complete_event); | 86 EndTraceAndFlushAsync(&flush_complete_event); |
90 flush_complete_event.Wait(); | 87 flush_complete_event.Wait(); |
91 } | 88 } |
92 | 89 |
(...skipping 28 matching lines...) Expand all Loading... |
121 void FlushMonitoring(WaitableEvent* flush_complete_event) { | 118 void FlushMonitoring(WaitableEvent* flush_complete_event) { |
122 TraceLog::GetInstance()->FlushButLeaveBufferIntact( | 119 TraceLog::GetInstance()->FlushButLeaveBufferIntact( |
123 base::Bind(&TraceEventTestFixture::OnTraceDataCollected, | 120 base::Bind(&TraceEventTestFixture::OnTraceDataCollected, |
124 base::Unretained(static_cast<TraceEventTestFixture*>(this)), | 121 base::Unretained(static_cast<TraceEventTestFixture*>(this)), |
125 base::Unretained(flush_complete_event))); | 122 base::Unretained(flush_complete_event))); |
126 } | 123 } |
127 | 124 |
128 virtual void SetUp() OVERRIDE { | 125 virtual void SetUp() OVERRIDE { |
129 const char* name = PlatformThread::GetName(); | 126 const char* name = PlatformThread::GetName(); |
130 old_thread_name_ = name ? strdup(name) : NULL; | 127 old_thread_name_ = name ? strdup(name) : NULL; |
131 notifications_received_ = 0; | |
132 | 128 |
133 TraceLog::DeleteForTesting(); | 129 TraceLog::DeleteForTesting(); |
134 TraceLog* tracelog = TraceLog::GetInstance(); | 130 TraceLog* tracelog = TraceLog::GetInstance(); |
135 ASSERT_TRUE(tracelog); | 131 ASSERT_TRUE(tracelog); |
136 ASSERT_FALSE(tracelog->IsEnabled()); | 132 ASSERT_FALSE(tracelog->IsEnabled()); |
137 tracelog->SetNotificationCallback( | |
138 base::Bind(&TraceEventTestFixture::OnTraceNotification, | |
139 base::Unretained(this))); | |
140 trace_buffer_.SetOutputCallback(json_output_.GetCallback()); | 133 trace_buffer_.SetOutputCallback(json_output_.GetCallback()); |
| 134 event_watch_notification_ = 0; |
141 } | 135 } |
142 virtual void TearDown() OVERRIDE { | 136 virtual void TearDown() OVERRIDE { |
143 if (TraceLog::GetInstance()) | 137 if (TraceLog::GetInstance()) |
144 EXPECT_FALSE(TraceLog::GetInstance()->IsEnabled()); | 138 EXPECT_FALSE(TraceLog::GetInstance()->IsEnabled()); |
145 PlatformThread::SetName(old_thread_name_ ? old_thread_name_ : ""); | 139 PlatformThread::SetName(old_thread_name_ ? old_thread_name_ : ""); |
146 free(old_thread_name_); | 140 free(old_thread_name_); |
147 old_thread_name_ = NULL; | 141 old_thread_name_ = NULL; |
148 // We want our singleton torn down after each test. | 142 // We want our singleton torn down after each test. |
149 TraceLog::DeleteForTesting(); | 143 TraceLog::DeleteForTesting(); |
150 } | 144 } |
151 | 145 |
152 char* old_thread_name_; | 146 char* old_thread_name_; |
153 ListValue trace_parsed_; | 147 ListValue trace_parsed_; |
154 base::debug::TraceResultBuffer trace_buffer_; | 148 base::debug::TraceResultBuffer trace_buffer_; |
155 base::debug::TraceResultBuffer::SimpleOutput json_output_; | 149 base::debug::TraceResultBuffer::SimpleOutput json_output_; |
156 int event_watch_notification_; | 150 int event_watch_notification_; |
157 int notifications_received_; | |
158 | 151 |
159 private: | 152 private: |
160 // We want our singleton torn down after each test. | 153 // We want our singleton torn down after each test. |
161 ShadowingAtExitManager at_exit_manager_; | 154 ShadowingAtExitManager at_exit_manager_; |
162 Lock lock_; | 155 Lock lock_; |
163 }; | 156 }; |
164 | 157 |
165 void TraceEventTestFixture::OnTraceDataCollected( | 158 void TraceEventTestFixture::OnTraceDataCollected( |
166 WaitableEvent* flush_complete_event, | 159 WaitableEvent* flush_complete_event, |
167 const scoped_refptr<base::RefCountedString>& events_str, | 160 const scoped_refptr<base::RefCountedString>& events_str, |
(...skipping 1014 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1182 EXPECT_TRUE(FindMatchingValue("cat", "cat1")); | 1175 EXPECT_TRUE(FindMatchingValue("cat", "cat1")); |
1183 EXPECT_TRUE(FindMatchingValue("cat", "cat2")); | 1176 EXPECT_TRUE(FindMatchingValue("cat", "cat2")); |
1184 EXPECT_FALSE(FindMatchingValue("name", "not_inc")); | 1177 EXPECT_FALSE(FindMatchingValue("name", "not_inc")); |
1185 } | 1178 } |
1186 | 1179 |
1187 | 1180 |
1188 // Test EVENT_WATCH_NOTIFICATION | 1181 // Test EVENT_WATCH_NOTIFICATION |
1189 TEST_F(TraceEventTestFixture, EventWatchNotification) { | 1182 TEST_F(TraceEventTestFixture, EventWatchNotification) { |
1190 // Basic one occurrence. | 1183 // Basic one occurrence. |
1191 BeginTrace(); | 1184 BeginTrace(); |
1192 TraceLog::GetInstance()->SetWatchEvent("cat", "event"); | 1185 TraceLog::WatchEventCallback callback = |
| 1186 base::Bind(&TraceEventTestFixture::OnWatchEventMatched, |
| 1187 base::Unretained(this)); |
| 1188 TraceLog::GetInstance()->SetWatchEvent("cat", "event", callback); |
1193 TRACE_EVENT_INSTANT0("cat", "event", TRACE_EVENT_SCOPE_THREAD); | 1189 TRACE_EVENT_INSTANT0("cat", "event", TRACE_EVENT_SCOPE_THREAD); |
1194 EndTraceAndFlush(); | 1190 EndTraceAndFlush(); |
1195 EXPECT_EQ(event_watch_notification_, 1); | 1191 EXPECT_EQ(event_watch_notification_, 1); |
1196 | 1192 |
1197 // Auto-reset after end trace. | 1193 // Auto-reset after end trace. |
1198 BeginTrace(); | 1194 BeginTrace(); |
1199 TraceLog::GetInstance()->SetWatchEvent("cat", "event"); | 1195 TraceLog::GetInstance()->SetWatchEvent("cat", "event", callback); |
1200 EndTraceAndFlush(); | 1196 EndTraceAndFlush(); |
1201 BeginTrace(); | 1197 BeginTrace(); |
1202 TRACE_EVENT_INSTANT0("cat", "event", TRACE_EVENT_SCOPE_THREAD); | 1198 TRACE_EVENT_INSTANT0("cat", "event", TRACE_EVENT_SCOPE_THREAD); |
1203 EndTraceAndFlush(); | 1199 EndTraceAndFlush(); |
1204 EXPECT_EQ(event_watch_notification_, 0); | 1200 EXPECT_EQ(event_watch_notification_, 0); |
1205 | 1201 |
1206 // Multiple occurrence. | 1202 // Multiple occurrence. |
1207 BeginTrace(); | 1203 BeginTrace(); |
1208 int num_occurrences = 5; | 1204 int num_occurrences = 5; |
1209 TraceLog::GetInstance()->SetWatchEvent("cat", "event"); | 1205 TraceLog::GetInstance()->SetWatchEvent("cat", "event", callback); |
1210 for (int i = 0; i < num_occurrences; ++i) | 1206 for (int i = 0; i < num_occurrences; ++i) |
1211 TRACE_EVENT_INSTANT0("cat", "event", TRACE_EVENT_SCOPE_THREAD); | 1207 TRACE_EVENT_INSTANT0("cat", "event", TRACE_EVENT_SCOPE_THREAD); |
1212 EndTraceAndFlush(); | 1208 EndTraceAndFlush(); |
1213 EXPECT_EQ(event_watch_notification_, num_occurrences); | 1209 EXPECT_EQ(event_watch_notification_, num_occurrences); |
1214 | 1210 |
1215 // Wrong category. | 1211 // Wrong category. |
1216 BeginTrace(); | 1212 BeginTrace(); |
1217 TraceLog::GetInstance()->SetWatchEvent("cat", "event"); | 1213 TraceLog::GetInstance()->SetWatchEvent("cat", "event", callback); |
1218 TRACE_EVENT_INSTANT0("wrong_cat", "event", TRACE_EVENT_SCOPE_THREAD); | 1214 TRACE_EVENT_INSTANT0("wrong_cat", "event", TRACE_EVENT_SCOPE_THREAD); |
1219 EndTraceAndFlush(); | 1215 EndTraceAndFlush(); |
1220 EXPECT_EQ(event_watch_notification_, 0); | 1216 EXPECT_EQ(event_watch_notification_, 0); |
1221 | 1217 |
1222 // Wrong name. | 1218 // Wrong name. |
1223 BeginTrace(); | 1219 BeginTrace(); |
1224 TraceLog::GetInstance()->SetWatchEvent("cat", "event"); | 1220 TraceLog::GetInstance()->SetWatchEvent("cat", "event", callback); |
1225 TRACE_EVENT_INSTANT0("cat", "wrong_event", TRACE_EVENT_SCOPE_THREAD); | 1221 TRACE_EVENT_INSTANT0("cat", "wrong_event", TRACE_EVENT_SCOPE_THREAD); |
1226 EndTraceAndFlush(); | 1222 EndTraceAndFlush(); |
1227 EXPECT_EQ(event_watch_notification_, 0); | 1223 EXPECT_EQ(event_watch_notification_, 0); |
1228 | 1224 |
1229 // Canceled. | 1225 // Canceled. |
1230 BeginTrace(); | 1226 BeginTrace(); |
1231 TraceLog::GetInstance()->SetWatchEvent("cat", "event"); | 1227 TraceLog::GetInstance()->SetWatchEvent("cat", "event", callback); |
1232 TraceLog::GetInstance()->CancelWatchEvent(); | 1228 TraceLog::GetInstance()->CancelWatchEvent(); |
1233 TRACE_EVENT_INSTANT0("cat", "event", TRACE_EVENT_SCOPE_THREAD); | 1229 TRACE_EVENT_INSTANT0("cat", "event", TRACE_EVENT_SCOPE_THREAD); |
1234 EndTraceAndFlush(); | 1230 EndTraceAndFlush(); |
1235 EXPECT_EQ(event_watch_notification_, 0); | 1231 EXPECT_EQ(event_watch_notification_, 0); |
1236 } | 1232 } |
1237 | 1233 |
1238 // Test ASYNC_BEGIN/END events | 1234 // Test ASYNC_BEGIN/END events |
1239 TEST_F(TraceEventTestFixture, AsyncBeginEndEvents) { | 1235 TEST_F(TraceEventTestFixture, AsyncBeginEndEvents) { |
1240 BeginTrace(); | 1236 BeginTrace(); |
1241 | 1237 |
(...skipping 486 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1728 TraceLog::RECORD_UNTIL_FULL); | 1724 TraceLog::RECORD_UNTIL_FULL); |
1729 EXPECT_TRUE(*trace_log->GetCategoryGroupEnabled("disabled-by-default-cc")); | 1725 EXPECT_TRUE(*trace_log->GetCategoryGroupEnabled("disabled-by-default-cc")); |
1730 EXPECT_TRUE(*trace_log->GetCategoryGroupEnabled("disabled-by-default-gpu")); | 1726 EXPECT_TRUE(*trace_log->GetCategoryGroupEnabled("disabled-by-default-gpu")); |
1731 EXPECT_TRUE(*trace_log->GetCategoryGroupEnabled("bar")); | 1727 EXPECT_TRUE(*trace_log->GetCategoryGroupEnabled("bar")); |
1732 EXPECT_STREQ("disabled-by-default-cc,disabled-by-default-gpu", | 1728 EXPECT_STREQ("disabled-by-default-cc,disabled-by-default-gpu", |
1733 trace_log->GetCurrentCategoryFilter().ToString().c_str()); | 1729 trace_log->GetCurrentCategoryFilter().ToString().c_str()); |
1734 trace_log->SetDisabled(); | 1730 trace_log->SetDisabled(); |
1735 trace_log->SetDisabled(); | 1731 trace_log->SetDisabled(); |
1736 } | 1732 } |
1737 | 1733 |
1738 TEST_F(TraceEventTestFixture, TraceOptionsParsing) { | |
1739 EXPECT_EQ(TraceLog::RECORD_UNTIL_FULL, | |
1740 TraceLog::TraceOptionsFromString(std::string())); | |
1741 | |
1742 EXPECT_EQ(TraceLog::RECORD_UNTIL_FULL, | |
1743 TraceLog::TraceOptionsFromString("record-until-full")); | |
1744 EXPECT_EQ(TraceLog::RECORD_CONTINUOUSLY, | |
1745 TraceLog::TraceOptionsFromString("record-continuously")); | |
1746 EXPECT_EQ(TraceLog::RECORD_UNTIL_FULL | TraceLog::ENABLE_SAMPLING, | |
1747 TraceLog::TraceOptionsFromString("enable-sampling")); | |
1748 EXPECT_EQ(TraceLog::RECORD_CONTINUOUSLY | TraceLog::ENABLE_SAMPLING, | |
1749 TraceLog::TraceOptionsFromString( | |
1750 "record-continuously,enable-sampling")); | |
1751 } | |
1752 | |
1753 TEST_F(TraceEventTestFixture, TraceSampling) { | 1734 TEST_F(TraceEventTestFixture, TraceSampling) { |
1754 event_watch_notification_ = 0; | |
1755 TraceLog::GetInstance()->SetEnabled( | 1735 TraceLog::GetInstance()->SetEnabled( |
1756 CategoryFilter("*"), | 1736 CategoryFilter("*"), |
1757 TraceLog::Options(TraceLog::RECORD_UNTIL_FULL | | 1737 TraceLog::Options(TraceLog::RECORD_UNTIL_FULL | |
1758 TraceLog::ENABLE_SAMPLING)); | 1738 TraceLog::ENABLE_SAMPLING)); |
1759 | 1739 |
1760 TRACE_EVENT_SET_SAMPLING_STATE_FOR_BUCKET(1, "cc", "Stuff"); | 1740 TRACE_EVENT_SET_SAMPLING_STATE_FOR_BUCKET(1, "cc", "Stuff"); |
1761 TraceLog::GetInstance()->WaitSamplingEventForTesting(); | 1741 TraceLog::GetInstance()->WaitSamplingEventForTesting(); |
1762 TRACE_EVENT_SET_SAMPLING_STATE_FOR_BUCKET(1, "cc", "Things"); | 1742 TRACE_EVENT_SET_SAMPLING_STATE_FOR_BUCKET(1, "cc", "Things"); |
1763 TraceLog::GetInstance()->WaitSamplingEventForTesting(); | 1743 TraceLog::GetInstance()->WaitSamplingEventForTesting(); |
1764 | 1744 |
1765 EndTraceAndFlush(); | 1745 EndTraceAndFlush(); |
1766 | 1746 |
1767 // Make sure we hit at least once. | 1747 // Make sure we hit at least once. |
1768 EXPECT_TRUE(FindNamePhase("Stuff", "P")); | 1748 EXPECT_TRUE(FindNamePhase("Stuff", "P")); |
1769 EXPECT_TRUE(FindNamePhase("Things", "P")); | 1749 EXPECT_TRUE(FindNamePhase("Things", "P")); |
1770 } | 1750 } |
1771 | 1751 |
1772 TEST_F(TraceEventTestFixture, TraceSamplingScope) { | 1752 TEST_F(TraceEventTestFixture, TraceSamplingScope) { |
1773 event_watch_notification_ = 0; | |
1774 TraceLog::GetInstance()->SetEnabled( | 1753 TraceLog::GetInstance()->SetEnabled( |
1775 CategoryFilter("*"), | 1754 CategoryFilter("*"), |
1776 TraceLog::Options(TraceLog::RECORD_UNTIL_FULL | | 1755 TraceLog::Options(TraceLog::RECORD_UNTIL_FULL | |
1777 TraceLog::ENABLE_SAMPLING)); | 1756 TraceLog::ENABLE_SAMPLING)); |
1778 | 1757 |
1779 TRACE_EVENT_SCOPED_SAMPLING_STATE("AAA", "name"); | 1758 TRACE_EVENT_SCOPED_SAMPLING_STATE("AAA", "name"); |
1780 TraceLog::GetInstance()->WaitSamplingEventForTesting(); | 1759 TraceLog::GetInstance()->WaitSamplingEventForTesting(); |
1781 { | 1760 { |
1782 EXPECT_STREQ(TRACE_EVENT_GET_SAMPLING_STATE(), "AAA"); | 1761 EXPECT_STREQ(TRACE_EVENT_GET_SAMPLING_STATE(), "AAA"); |
1783 TRACE_EVENT_SCOPED_SAMPLING_STATE("BBB", "name"); | 1762 TRACE_EVENT_SCOPED_SAMPLING_STATE("BBB", "name"); |
(...skipping 14 matching lines...) Expand all Loading... |
1798 TraceLog::GetInstance()->WaitSamplingEventForTesting(); | 1777 TraceLog::GetInstance()->WaitSamplingEventForTesting(); |
1799 EXPECT_STREQ(TRACE_EVENT_GET_SAMPLING_STATE(), "DDD"); | 1778 EXPECT_STREQ(TRACE_EVENT_GET_SAMPLING_STATE(), "DDD"); |
1800 } | 1779 } |
1801 TraceLog::GetInstance()->WaitSamplingEventForTesting(); | 1780 TraceLog::GetInstance()->WaitSamplingEventForTesting(); |
1802 EXPECT_STREQ(TRACE_EVENT_GET_SAMPLING_STATE(), "DDD"); | 1781 EXPECT_STREQ(TRACE_EVENT_GET_SAMPLING_STATE(), "DDD"); |
1803 | 1782 |
1804 EndTraceAndFlush(); | 1783 EndTraceAndFlush(); |
1805 } | 1784 } |
1806 | 1785 |
1807 TEST_F(TraceEventTestFixture, TraceContinuousSampling) { | 1786 TEST_F(TraceEventTestFixture, TraceContinuousSampling) { |
1808 event_watch_notification_ = 0; | |
1809 TraceLog::GetInstance()->SetEnabled( | 1787 TraceLog::GetInstance()->SetEnabled( |
1810 CategoryFilter("*"), | 1788 CategoryFilter("*"), |
1811 TraceLog::Options(TraceLog::MONITOR_SAMPLING)); | 1789 TraceLog::Options(TraceLog::MONITOR_SAMPLING)); |
1812 | 1790 |
1813 TRACE_EVENT_SET_SAMPLING_STATE_FOR_BUCKET(1, "category", "AAA"); | 1791 TRACE_EVENT_SET_SAMPLING_STATE_FOR_BUCKET(1, "category", "AAA"); |
1814 TraceLog::GetInstance()->WaitSamplingEventForTesting(); | 1792 TraceLog::GetInstance()->WaitSamplingEventForTesting(); |
1815 TRACE_EVENT_SET_SAMPLING_STATE_FOR_BUCKET(1, "category", "BBB"); | 1793 TRACE_EVENT_SET_SAMPLING_STATE_FOR_BUCKET(1, "category", "BBB"); |
1816 TraceLog::GetInstance()->WaitSamplingEventForTesting(); | 1794 TraceLog::GetInstance()->WaitSamplingEventForTesting(); |
1817 | 1795 |
1818 FlushMonitoring(); | 1796 FlushMonitoring(); |
(...skipping 219 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2038 EXPECT_LE(collected_events_timestamps_[i - 1], | 2016 EXPECT_LE(collected_events_timestamps_[i - 1], |
2039 collected_events_timestamps_[i]); | 2017 collected_events_timestamps_[i]); |
2040 } | 2018 } |
2041 } | 2019 } |
2042 | 2020 |
2043 TEST_F(TraceEventCallbackTest, TraceEventCallbackWhileFull) { | 2021 TEST_F(TraceEventCallbackTest, TraceEventCallbackWhileFull) { |
2044 TraceLog::GetInstance()->SetEnabled(CategoryFilter("*"), | 2022 TraceLog::GetInstance()->SetEnabled(CategoryFilter("*"), |
2045 TraceLog::RECORD_UNTIL_FULL); | 2023 TraceLog::RECORD_UNTIL_FULL); |
2046 do { | 2024 do { |
2047 TRACE_EVENT_INSTANT0("all", "badger badger", TRACE_EVENT_SCOPE_GLOBAL); | 2025 TRACE_EVENT_INSTANT0("all", "badger badger", TRACE_EVENT_SCOPE_GLOBAL); |
2048 } while ((notifications_received_ & TraceLog::TRACE_BUFFER_FULL) == 0); | 2026 } while (!TraceLog::GetInstance()->BufferIsFull()); |
2049 TraceLog::GetInstance()->SetEventCallback(Callback); | 2027 TraceLog::GetInstance()->SetEventCallback(Callback); |
2050 TRACE_EVENT_INSTANT0("all", "a snake", TRACE_EVENT_SCOPE_GLOBAL); | 2028 TRACE_EVENT_INSTANT0("all", "a snake", TRACE_EVENT_SCOPE_GLOBAL); |
2051 TraceLog::GetInstance()->SetEventCallback(NULL); | 2029 TraceLog::GetInstance()->SetEventCallback(NULL); |
2052 ASSERT_EQ(1u, collected_events_.size()); | 2030 ASSERT_EQ(1u, collected_events_.size()); |
2053 EXPECT_EQ("a snake", collected_events_[0]); | 2031 EXPECT_EQ("a snake", collected_events_[0]); |
2054 } | 2032 } |
2055 | 2033 |
2056 TEST_F(TraceEventTestFixture, TraceBufferRingBufferGetReturnChunk) { | 2034 TEST_F(TraceEventTestFixture, TraceBufferRingBufferGetReturnChunk) { |
2057 TraceLog::GetInstance()->SetEnabled(CategoryFilter("*"), | 2035 TraceLog::GetInstance()->SetEnabled(CategoryFilter("*"), |
2058 TraceLog::RECORD_CONTINUOUSLY); | 2036 TraceLog::RECORD_CONTINUOUSLY); |
(...skipping 381 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2440 double timestamp; | 2418 double timestamp; |
2441 EXPECT_TRUE(item->GetDouble("ts", ×tamp)); | 2419 EXPECT_TRUE(item->GetDouble("ts", ×tamp)); |
2442 EXPECT_GE(timestamp, last_timestamp); | 2420 EXPECT_GE(timestamp, last_timestamp); |
2443 EXPECT_LE(timestamp, end_time); | 2421 EXPECT_LE(timestamp, end_time); |
2444 last_timestamp = timestamp; | 2422 last_timestamp = timestamp; |
2445 } | 2423 } |
2446 } | 2424 } |
2447 | 2425 |
2448 } // namespace debug | 2426 } // namespace debug |
2449 } // namespace base | 2427 } // namespace base |
OLD | NEW |