Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(807)

Side by Side Diff: base/debug/trace_event_win_unittest.cc

Issue 6862002: Merge gpu_trace_event back into base/debug/trace_event (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: "fix gpu/command_buffer/client/cmd_buffer_helper to new macros" Created 9 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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/debug/trace_event.h" 5 #include "base/debug/trace_event.h"
6 6
7 #include <strstream> 7 #include <strstream>
8 8
9 #include "base/at_exit.h" 9 #include "base/at_exit.h"
10 #include "base/basictypes.h" 10 #include "base/basictypes.h"
11 #include "base/file_util.h" 11 #include "base/file_util.h"
12 #include "base/debug/trace_event.h"
13 #include "base/debug/trace_event_win.h"
12 #include "base/win/event_trace_consumer.h" 14 #include "base/win/event_trace_consumer.h"
13 #include "base/win/event_trace_controller.h" 15 #include "base/win/event_trace_controller.h"
16 #include "base/win/event_trace_provider.h"
14 #include "base/win/windows_version.h" 17 #include "base/win/windows_version.h"
15 #include "testing/gmock/include/gmock/gmock.h" 18 #include "testing/gmock/include/gmock/gmock.h"
16 #include "testing/gtest/include/gtest/gtest.h" 19 #include "testing/gtest/include/gtest/gtest.h"
17 #include <initguid.h> // NOLINT - must be last include. 20 #include <initguid.h> // NOLINT - must be last include.
18 21
19 namespace base { 22 namespace base {
20 namespace debug { 23 namespace debug {
21 24
22 namespace { 25 namespace {
23 26
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after
96 // Tear down any dangling session from an earlier failing test. 99 // Tear down any dangling session from an earlier failing test.
97 EtwTraceProperties ignore; 100 EtwTraceProperties ignore;
98 EtwTraceController::Stop(kTestSessionName, &ignore); 101 EtwTraceController::Stop(kTestSessionName, &ignore);
99 } 102 }
100 103
101 // Resurrect and initialize the TraceLog singleton instance. 104 // Resurrect and initialize the TraceLog singleton instance.
102 // On Vista and better, we need the provider registered before we 105 // On Vista and better, we need the provider registered before we
103 // start the private, in-proc session, but on XP we need the global 106 // start the private, in-proc session, but on XP we need the global
104 // session created and the provider enabled before we register our 107 // session created and the provider enabled before we register our
105 // provider. 108 // provider.
106 TraceLog* tracelog = NULL; 109 TraceEventETWProvider* tracelog = NULL;
107 if (!is_xp) { 110 if (!is_xp) {
108 TraceLog::Resurrect(); 111 TraceEventETWProvider::Resurrect();
109 tracelog = TraceLog::GetInstance(); 112 tracelog = TraceEventETWProvider::GetInstance();
110 ASSERT_TRUE(tracelog != NULL); 113 ASSERT_TRUE(tracelog != NULL);
111 ASSERT_FALSE(tracelog->IsTracing()); 114 ASSERT_FALSE(tracelog->IsTracing());
112 } 115 }
113 116
114 // Create the log file. 117 // Create the log file.
115 ASSERT_TRUE(file_util::CreateTemporaryFile(&log_file_)); 118 ASSERT_TRUE(file_util::CreateTemporaryFile(&log_file_));
116 119
117 // Create a private log session on the file. 120 // Create a private log session on the file.
118 EtwTraceProperties prop; 121 EtwTraceProperties prop;
119 ASSERT_HRESULT_SUCCEEDED(prop.SetLoggerFileName(log_file_.value().c_str())); 122 ASSERT_HRESULT_SUCCEEDED(prop.SetLoggerFileName(log_file_.value().c_str()));
(...skipping 14 matching lines...) Expand all
134 p.FlushTimer = 1; // 1 second flush lag. 137 p.FlushTimer = 1; // 1 second flush lag.
135 ASSERT_HRESULT_SUCCEEDED(controller_.Start(kTestSessionName, &prop)); 138 ASSERT_HRESULT_SUCCEEDED(controller_.Start(kTestSessionName, &prop));
136 139
137 // Enable the TraceLog provider GUID. 140 // Enable the TraceLog provider GUID.
138 ASSERT_HRESULT_SUCCEEDED( 141 ASSERT_HRESULT_SUCCEEDED(
139 controller_.EnableProvider(kChromeTraceProviderName, 142 controller_.EnableProvider(kChromeTraceProviderName,
140 TRACE_LEVEL_INFORMATION, 143 TRACE_LEVEL_INFORMATION,
141 0)); 144 0));
142 145
143 if (is_xp) { 146 if (is_xp) {
144 TraceLog::Resurrect(); 147 TraceEventETWProvider::Resurrect();
145 tracelog = TraceLog::GetInstance(); 148 tracelog = TraceEventETWProvider::GetInstance();
146 } 149 }
147 ASSERT_TRUE(tracelog != NULL); 150 ASSERT_TRUE(tracelog != NULL);
148 EXPECT_TRUE(tracelog->IsTracing()); 151 EXPECT_TRUE(tracelog->IsTracing());
149 } 152 }
150 153
151 void TearDown() { 154 void TearDown() {
152 EtwTraceProperties prop; 155 EtwTraceProperties prop;
153 if (controller_.session() != 0) 156 if (controller_.session() != 0)
154 EXPECT_HRESULT_SUCCEEDED(controller_.Stop(&prop)); 157 EXPECT_HRESULT_SUCCEEDED(controller_.Stop(&prop));
155 158
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
204 } // namespace 207 } // namespace
205 208
206 209
207 TEST_F(TraceEventTest, TraceLog) { 210 TEST_F(TraceEventTest, TraceLog) {
208 ExpectPlayLog(); 211 ExpectPlayLog();
209 212
210 // The events should arrive in the same sequence as the expects. 213 // The events should arrive in the same sequence as the expects.
211 InSequence in_sequence; 214 InSequence in_sequence;
212 215
213 // Full argument version, passing lengths explicitly. 216 // Full argument version, passing lengths explicitly.
214 TraceLog::Trace(kName, 217 TraceEventETWProvider::Trace(kName,
215 strlen(kName), 218 strlen(kName),
216 TraceLog::EVENT_BEGIN, 219 base::debug::TRACE_EVENT_PHASE_BEGIN,
217 kId, 220 kId,
218 kExtra, 221 kExtra,
219 strlen(kExtra)); 222 strlen(kExtra));
220 223
221 ExpectEvent(kTraceEventClass32, 224 ExpectEvent(kTraceEventClass32,
222 kTraceEventTypeBegin, 225 kTraceEventTypeBegin,
223 kName, strlen(kName), 226 kName, strlen(kName),
224 kId, 227 kId,
225 kExtra, strlen(kExtra)); 228 kExtra, strlen(kExtra));
226 229
227 // Const char* version. 230 // Const char* version.
228 TraceLog::Trace(static_cast<const char*>(kName), 231 TraceEventETWProvider::Trace(static_cast<const char*>(kName),
229 TraceLog::EVENT_END, 232 base::debug::TRACE_EVENT_PHASE_END,
230 kId, 233 kId,
231 static_cast<const char*>(kExtra)); 234 static_cast<const char*>(kExtra));
232 235
233 ExpectEvent(kTraceEventClass32, 236 ExpectEvent(kTraceEventClass32,
234 kTraceEventTypeEnd, 237 kTraceEventTypeEnd,
235 kName, strlen(kName), 238 kName, strlen(kName),
236 kId, 239 kId,
237 kExtra, strlen(kExtra)); 240 kExtra, strlen(kExtra));
238 241
239 // std::string extra version. 242 // std::string extra version.
240 TraceLog::Trace(static_cast<const char*>(kName), 243 TraceEventETWProvider::Trace(static_cast<const char*>(kName),
241 TraceLog::EVENT_INSTANT, 244 base::debug::TRACE_EVENT_PHASE_INSTANT,
242 kId, 245 kId,
243 std::string(kExtra)); 246 std::string(kExtra));
244 247
245 ExpectEvent(kTraceEventClass32, 248 ExpectEvent(kTraceEventClass32,
246 kTraceEventTypeInstant, 249 kTraceEventTypeInstant,
247 kName, strlen(kName), 250 kName, strlen(kName),
248 kId, 251 kId,
249 kExtra, strlen(kExtra)); 252 kExtra, strlen(kExtra));
250 253
251 254
252 // Test for sanity on NULL inputs. 255 // Test for sanity on NULL inputs.
253 TraceLog::Trace(NULL, 256 TraceEventETWProvider::Trace(NULL,
254 0, 257 0,
255 TraceLog::EVENT_BEGIN, 258 base::debug::TRACE_EVENT_PHASE_BEGIN,
256 kId, 259 kId,
257 NULL, 260 NULL,
258 0); 261 0);
259 262
260 ExpectEvent(kTraceEventClass32, 263 ExpectEvent(kTraceEventClass32,
261 kTraceEventTypeBegin, 264 kTraceEventTypeBegin,
262 kEmpty, 0, 265 kEmpty, 0,
263 kId, 266 kId,
264 kEmpty, 0); 267 kEmpty, 0);
265 268
266 TraceLog::Trace(NULL, 269 TraceEventETWProvider::Trace(NULL,
267 -1, 270 -1,
268 TraceLog::EVENT_END, 271 base::debug::TRACE_EVENT_PHASE_END,
269 kId, 272 kId,
270 NULL, 273 NULL,
271 -1); 274 -1);
272 275
273 ExpectEvent(kTraceEventClass32, 276 ExpectEvent(kTraceEventClass32,
274 kTraceEventTypeEnd, 277 kTraceEventTypeEnd,
275 kEmpty, 0, 278 kEmpty, 0,
276 kId, 279 kId,
277 kEmpty, 0); 280 kEmpty, 0);
278 281
279 PlayLog(); 282 PlayLog();
280 } 283 }
281 284
282 TEST_F(TraceEventTest, Macros) { 285 TEST_F(TraceEventTest, Macros) {
283 ExpectPlayLog(); 286 ExpectPlayLog();
284 287
285 // The events should arrive in the same sequence as the expects. 288 // The events should arrive in the same sequence as the expects.
286 InSequence in_sequence; 289 InSequence in_sequence;
287 290
288 TRACE_EVENT_BEGIN(kName, kId, kExtra); 291 TRACE_EVENT_BEGIN_ETW(kName, kId, kExtra);
289 ExpectEvent(kTraceEventClass32, 292 ExpectEvent(kTraceEventClass32,
290 kTraceEventTypeBegin, 293 kTraceEventTypeBegin,
291 kName, strlen(kName), 294 kName, strlen(kName),
292 kId, 295 kId,
293 kExtra, strlen(kExtra)); 296 kExtra, strlen(kExtra));
294 297
295 TRACE_EVENT_END(kName, kId, kExtra); 298 TRACE_EVENT_END_ETW(kName, kId, kExtra);
296 ExpectEvent(kTraceEventClass32, 299 ExpectEvent(kTraceEventClass32,
297 kTraceEventTypeEnd, 300 kTraceEventTypeEnd,
298 kName, strlen(kName), 301 kName, strlen(kName),
299 kId, 302 kId,
300 kExtra, strlen(kExtra)); 303 kExtra, strlen(kExtra));
301 304
302 TRACE_EVENT_INSTANT(kName, kId, kExtra); 305 TRACE_EVENT_INSTANT_ETW(kName, kId, kExtra);
303 ExpectEvent(kTraceEventClass32, 306 ExpectEvent(kTraceEventClass32,
304 kTraceEventTypeInstant, 307 kTraceEventTypeInstant,
305 kName, strlen(kName), 308 kName, strlen(kName),
306 kId, 309 kId,
307 kExtra, strlen(kExtra)); 310 kExtra, strlen(kExtra));
308 311
309 PlayLog(); 312 PlayLog();
310 } 313 }
311 314
312 } // namespace debug 315 } // namespace debug
313 } // namespace base 316 } // namespace base
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698