OLD | NEW |
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2010 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/trace_event.h" | 5 #include "base/trace_event.h" |
6 | 6 |
7 #include <strstream> | 7 #include <strstream> |
8 | 8 |
9 #include "base/basictypes.h" | 9 #include "base/basictypes.h" |
10 #include "base/file_util.h" | 10 #include "base/file_util.h" |
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
72 static TestEventConsumer* current_; | 72 static TestEventConsumer* current_; |
73 }; | 73 }; |
74 | 74 |
75 TestEventConsumer* TestEventConsumer::current_ = NULL; | 75 TestEventConsumer* TestEventConsumer::current_ = NULL; |
76 | 76 |
77 class TraceEventTest: public testing::Test { | 77 class TraceEventTest: public testing::Test { |
78 public: | 78 public: |
79 void SetUp() { | 79 void SetUp() { |
80 bool is_xp = base::win::GetVersion() < base::win::VERSION_VISTA; | 80 bool is_xp = base::win::GetVersion() < base::win::VERSION_VISTA; |
81 | 81 |
| 82 if (is_xp) { |
| 83 // Tear down any dangling session from an earlier failing test. |
| 84 EtwTraceProperties ignore; |
| 85 |
| 86 EtwTraceController::Stop(kTestSessionName, &ignore); |
| 87 } |
| 88 |
82 // Resurrect and initialize the TraceLog singleton instance. | 89 // Resurrect and initialize the TraceLog singleton instance. |
83 // On Vista and better, we need the provider registered before we | 90 // On Vista and better, we need the provider registered before we |
84 // start the private, in-proc session, but on XP we need the global | 91 // start the private, in-proc session, but on XP we need the global |
85 // session created and the provider enabled before we register our | 92 // session created and the provider enabled before we register our |
86 // provider. | 93 // provider. |
87 if (!is_xp) { | 94 if (!is_xp) { |
88 base::TraceLog::Resurrect(); | 95 base::TraceLog::Resurrect(); |
89 base::TraceLog* tracelog = base::TraceLog::Get(); | 96 base::TraceLog* tracelog = base::TraceLog::Get(); |
90 ASSERT_TRUE(tracelog != NULL); | 97 ASSERT_TRUE(tracelog != NULL); |
91 } | 98 } |
(...skipping 155 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
247 | 254 |
248 ExpectEvent(base::kTraceEventClass32, | 255 ExpectEvent(base::kTraceEventClass32, |
249 base::kTraceEventTypeEnd, | 256 base::kTraceEventTypeEnd, |
250 kEmpty, 0, | 257 kEmpty, 0, |
251 kId, | 258 kId, |
252 kEmpty, 0); | 259 kEmpty, 0); |
253 | 260 |
254 PlayLog(); | 261 PlayLog(); |
255 } | 262 } |
256 | 263 |
257 // Marked flaky per http://crbug.com/52388 | 264 TEST_F(TraceEventTest, Macros) { |
258 TEST_F(TraceEventTest, FLAKY_Macros) { | |
259 ExpectPlayLog(); | 265 ExpectPlayLog(); |
260 | 266 |
261 // The events should arrive in the same sequence as the expects. | 267 // The events should arrive in the same sequence as the expects. |
262 InSequence in_sequence; | 268 InSequence in_sequence; |
263 | 269 |
264 TRACE_EVENT_BEGIN(kName, kId, kExtra); | 270 TRACE_EVENT_BEGIN(kName, kId, kExtra); |
265 ExpectEvent(base::kTraceEventClass32, | 271 ExpectEvent(base::kTraceEventClass32, |
266 base::kTraceEventTypeBegin, | 272 base::kTraceEventTypeBegin, |
267 kName, strlen(kName), | 273 kName, strlen(kName), |
268 kId, | 274 kId, |
269 kExtra, strlen(kExtra)); | 275 kExtra, strlen(kExtra)); |
270 | 276 |
271 TRACE_EVENT_END(kName, kId, kExtra); | 277 TRACE_EVENT_END(kName, kId, kExtra); |
272 ExpectEvent(base::kTraceEventClass32, | 278 ExpectEvent(base::kTraceEventClass32, |
273 base::kTraceEventTypeEnd, | 279 base::kTraceEventTypeEnd, |
274 kName, strlen(kName), | 280 kName, strlen(kName), |
275 kId, | 281 kId, |
276 kExtra, strlen(kExtra)); | 282 kExtra, strlen(kExtra)); |
277 | 283 |
278 TRACE_EVENT_INSTANT(kName, kId, kExtra); | 284 TRACE_EVENT_INSTANT(kName, kId, kExtra); |
279 ExpectEvent(base::kTraceEventClass32, | 285 ExpectEvent(base::kTraceEventClass32, |
280 base::kTraceEventTypeInstant, | 286 base::kTraceEventTypeInstant, |
281 kName, strlen(kName), | 287 kName, strlen(kName), |
282 kId, | 288 kId, |
283 kExtra, strlen(kExtra)); | 289 kExtra, strlen(kExtra)); |
284 | 290 |
285 PlayLog(); | 291 PlayLog(); |
286 } | 292 } |
OLD | NEW |