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

Side by Side Diff: base/win/event_trace_consumer_unittest.cc

Issue 12294008: Fix more remaining FilePath -> base::FilePath. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 10 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
« no previous file with comments | « base/mac/foundation_util_unittest.mm ('k') | base/win/event_trace_controller_unittest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 // Unit tests for event trace consumer base class. 5 // Unit tests for event trace consumer base class.
6 #include "base/win/event_trace_consumer.h" 6 #include "base/win/event_trace_consumer.h"
7 7
8 #include <list> 8 #include <list>
9 9
10 #include <objbase.h> 10 #include <objbase.h>
11 11
12 #include "base/basictypes.h" 12 #include "base/basictypes.h"
13 #include "base/file_path.h" 13 #include "base/file_path.h"
14 #include "base/file_util.h" 14 #include "base/file_util.h"
15 #include "base/files/scoped_temp_dir.h" 15 #include "base/files/scoped_temp_dir.h"
16 #include "base/logging.h" 16 #include "base/logging.h"
17 #include "base/process.h" 17 #include "base/process.h"
18 #include "base/stringprintf.h" 18 #include "base/stringprintf.h"
19 #include "base/win/event_trace_controller.h" 19 #include "base/win/event_trace_controller.h"
20 #include "base/win/event_trace_provider.h" 20 #include "base/win/event_trace_provider.h"
21 #include "base/win/scoped_handle.h" 21 #include "base/win/scoped_handle.h"
22 #include "testing/gtest/include/gtest/gtest.h" 22 #include "testing/gtest/include/gtest/gtest.h"
23 23
24 #include <initguid.h> // NOLINT - has to be last 24 #include <initguid.h> // NOLINT - has to be last
25 25
26 namespace base {
27 namespace win {
28
26 namespace { 29 namespace {
27 30
28 using base::win::EtwMofEvent;
29 using base::win::EtwTraceController;
30 using base::win::EtwTraceConsumerBase;
31 using base::win::EtwTraceProperties;
32 using base::win::EtwTraceProvider;
33
34 typedef std::list<EVENT_TRACE> EventQueue; 31 typedef std::list<EVENT_TRACE> EventQueue;
35 32
36 class TestConsumer: public EtwTraceConsumerBase<TestConsumer> { 33 class TestConsumer: public EtwTraceConsumerBase<TestConsumer> {
37 public: 34 public:
38 TestConsumer() { 35 TestConsumer() {
39 sank_event_.Set(::CreateEvent(NULL, TRUE, FALSE, NULL)); 36 sank_event_.Set(::CreateEvent(NULL, TRUE, FALSE, NULL));
40 ClearQueue(); 37 ClearQueue();
41 } 38 }
42 39
43 ~TestConsumer() { 40 ~TestConsumer() {
(...skipping 19 matching lines...) Expand all
63 back.MofData = new char[event->MofLength]; 60 back.MofData = new char[event->MofLength];
64 memcpy(back.MofData, event->MofData, event->MofLength); 61 memcpy(back.MofData, event->MofData, event->MofLength);
65 } 62 }
66 } 63 }
67 64
68 static void ProcessEvent(EVENT_TRACE* event) { 65 static void ProcessEvent(EVENT_TRACE* event) {
69 EnqueueEvent(event); 66 EnqueueEvent(event);
70 ::SetEvent(sank_event_.Get()); 67 ::SetEvent(sank_event_.Get());
71 } 68 }
72 69
73 static base::win::ScopedHandle sank_event_; 70 static ScopedHandle sank_event_;
74 static EventQueue events_; 71 static EventQueue events_;
75 72
76 private: 73 private:
77 DISALLOW_COPY_AND_ASSIGN(TestConsumer); 74 DISALLOW_COPY_AND_ASSIGN(TestConsumer);
78 }; 75 };
79 76
80 base::win::ScopedHandle TestConsumer::sank_event_; 77 ScopedHandle TestConsumer::sank_event_;
81 EventQueue TestConsumer::events_; 78 EventQueue TestConsumer::events_;
82 79
83 class EtwTraceConsumerBaseTest: public testing::Test { 80 class EtwTraceConsumerBaseTest: public testing::Test {
84 public: 81 public:
85 EtwTraceConsumerBaseTest() 82 EtwTraceConsumerBaseTest()
86 : session_name_(base::StringPrintf(L"TestSession-%d", 83 : session_name_(StringPrintf(L"TestSession-%d",
87 base::Process::Current().pid())) { 84 Process::Current().pid())) {
88 } 85 }
89 86
90 virtual void SetUp() { 87 virtual void SetUp() {
91 // Cleanup any potentially dangling sessions. 88 // Cleanup any potentially dangling sessions.
92 EtwTraceProperties ignore; 89 EtwTraceProperties ignore;
93 EtwTraceController::Stop(session_name_.c_str(), &ignore); 90 EtwTraceController::Stop(session_name_.c_str(), &ignore);
94 91
95 // Allocate a new GUID for each provider test. 92 // Allocate a new GUID for each provider test.
96 ASSERT_HRESULT_SUCCEEDED(::CoCreateGuid(&test_provider_)); 93 ASSERT_HRESULT_SUCCEEDED(::CoCreateGuid(&test_provider_));
97 } 94 }
(...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after
199 return HRESULT_FROM_WIN32(::GetLastError()); 196 return HRESULT_FROM_WIN32(::GetLastError());
200 197
201 DWORD exit_code = 0; 198 DWORD exit_code = 0;
202 if (::GetExitCodeThread(consumer_thread_, &exit_code)) 199 if (::GetExitCodeThread(consumer_thread_, &exit_code))
203 return exit_code; 200 return exit_code;
204 201
205 return HRESULT_FROM_WIN32(::GetLastError()); 202 return HRESULT_FROM_WIN32(::GetLastError());
206 } 203 }
207 204
208 TestConsumer consumer_; 205 TestConsumer consumer_;
209 base::win::ScopedHandle consumer_ready_; 206 ScopedHandle consumer_ready_;
210 base::win::ScopedHandle consumer_thread_; 207 ScopedHandle consumer_thread_;
211 }; 208 };
212 209
213 } // namespace 210 } // namespace
214 211
215 TEST_F(EtwTraceConsumerRealtimeTest, ConsumerReturnsWhenSessionClosed) { 212 TEST_F(EtwTraceConsumerRealtimeTest, ConsumerReturnsWhenSessionClosed) {
216 EtwTraceController controller; 213 EtwTraceController controller;
217 214
218 HRESULT hr = controller.StartRealtimeSession(session_name_.c_str(), 215 HRESULT hr = controller.StartRealtimeSession(session_name_.c_str(),
219 100 * 1024); 216 100 * 1024);
220 if (hr == E_ACCESSDENIED) { 217 if (hr == E_ACCESSDENIED) {
(...skipping 128 matching lines...) Expand 10 before | Expand all | Expand 10 after
349 346
350 // We should now have the event in the queue. 347 // We should now have the event in the queue.
351 if (events_.empty()) 348 if (events_.empty())
352 return E_FAIL; 349 return E_FAIL;
353 350
354 *trace = &events_.back(); 351 *trace = &events_.back();
355 return S_OK; 352 return S_OK;
356 } 353 }
357 354
358 EventQueue events_; 355 EventQueue events_;
359 base::ScopedTempDir temp_dir_; 356 ScopedTempDir temp_dir_;
360 FilePath temp_file_; 357 FilePath temp_file_;
361 }; 358 };
362 359
363 } // namespace 360 } // namespace
364 361
365 362
366 TEST_F(EtwTraceConsumerDataTest, RoundTrip) { 363 TEST_F(EtwTraceConsumerDataTest, RoundTrip) {
367 EtwMofEvent<1> event(kTestEventType, 1, TRACE_LEVEL_ERROR); 364 EtwMofEvent<1> event(kTestEventType, 1, TRACE_LEVEL_ERROR);
368 365
369 static const char kData[] = "This is but test data"; 366 static const char kData[] = "This is but test data";
370 event.fields[0].DataPtr = reinterpret_cast<ULONG64>(kData); 367 event.fields[0].DataPtr = reinterpret_cast<ULONG64>(kData);
371 event.fields[0].Length = sizeof(kData); 368 event.fields[0].Length = sizeof(kData);
372 369
373 PEVENT_TRACE trace = NULL; 370 PEVENT_TRACE trace = NULL;
374 HRESULT hr = RoundTripEvent(&event.header, &trace); 371 HRESULT hr = RoundTripEvent(&event.header, &trace);
375 if (hr == E_ACCESSDENIED) { 372 if (hr == E_ACCESSDENIED) {
376 VLOG(1) << "You must be an administrator to run this test on Vista"; 373 VLOG(1) << "You must be an administrator to run this test on Vista";
377 return; 374 return;
378 } 375 }
379 ASSERT_HRESULT_SUCCEEDED(hr) << "RoundTripEvent failed"; 376 ASSERT_HRESULT_SUCCEEDED(hr) << "RoundTripEvent failed";
380 ASSERT_TRUE(NULL != trace); 377 ASSERT_TRUE(NULL != trace);
381 ASSERT_EQ(sizeof(kData), trace->MofLength); 378 ASSERT_EQ(sizeof(kData), trace->MofLength);
382 ASSERT_STREQ(kData, reinterpret_cast<const char*>(trace->MofData)); 379 ASSERT_STREQ(kData, reinterpret_cast<const char*>(trace->MofData));
383 } 380 }
381
382 } // namespace win
383 } // namespace base
OLDNEW
« no previous file with comments | « base/mac/foundation_util_unittest.mm ('k') | base/win/event_trace_controller_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698