| 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 // 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/logging.h" |   16 #include "base/logging.h" | 
|   16 #include "base/process.h" |   17 #include "base/process.h" | 
|   17 #include "base/scoped_temp_dir.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 { |   26 namespace { | 
|   27  |   27  | 
| (...skipping 321 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  349  |  349  | 
|  350     // We should now have the event in the queue. |  350     // We should now have the event in the queue. | 
|  351     if (events_.empty()) |  351     if (events_.empty()) | 
|  352       return E_FAIL; |  352       return E_FAIL; | 
|  353  |  353  | 
|  354     *trace = &events_.back(); |  354     *trace = &events_.back(); | 
|  355     return S_OK; |  355     return S_OK; | 
|  356   } |  356   } | 
|  357  |  357  | 
|  358   EventQueue events_; |  358   EventQueue events_; | 
|  359   ScopedTempDir temp_dir_; |  359   base::ScopedTempDir temp_dir_; | 
|  360   FilePath temp_file_; |  360   FilePath temp_file_; | 
|  361 }; |  361 }; | 
|  362  |  362  | 
|  363 }  // namespace |  363 }  // namespace | 
|  364  |  364  | 
|  365  |  365  | 
|  366 TEST_F(EtwTraceConsumerDataTest, RoundTrip) { |  366 TEST_F(EtwTraceConsumerDataTest, RoundTrip) { | 
|  367   EtwMofEvent<1> event(kTestEventType, 1, TRACE_LEVEL_ERROR); |  367   EtwMofEvent<1> event(kTestEventType, 1, TRACE_LEVEL_ERROR); | 
|  368  |  368  | 
|  369   static const char kData[] = "This is but test data"; |  369   static const char kData[] = "This is but test data"; | 
|  370   event.fields[0].DataPtr = reinterpret_cast<ULONG64>(kData); |  370   event.fields[0].DataPtr = reinterpret_cast<ULONG64>(kData); | 
|  371   event.fields[0].Length = sizeof(kData); |  371   event.fields[0].Length = sizeof(kData); | 
|  372  |  372  | 
|  373   PEVENT_TRACE trace = NULL; |  373   PEVENT_TRACE trace = NULL; | 
|  374   HRESULT hr = RoundTripEvent(&event.header, &trace); |  374   HRESULT hr = RoundTripEvent(&event.header, &trace); | 
|  375   if (hr == E_ACCESSDENIED) { |  375   if (hr == E_ACCESSDENIED) { | 
|  376     VLOG(1) << "You must be an administrator to run this test on Vista"; |  376     VLOG(1) << "You must be an administrator to run this test on Vista"; | 
|  377     return; |  377     return; | 
|  378   } |  378   } | 
|  379   ASSERT_HRESULT_SUCCEEDED(hr) << "RoundTripEvent failed"; |  379   ASSERT_HRESULT_SUCCEEDED(hr) << "RoundTripEvent failed"; | 
|  380   ASSERT_TRUE(NULL != trace); |  380   ASSERT_TRUE(NULL != trace); | 
|  381   ASSERT_EQ(sizeof(kData), trace->MofLength); |  381   ASSERT_EQ(sizeof(kData), trace->MofLength); | 
|  382   ASSERT_STREQ(kData, reinterpret_cast<const char*>(trace->MofData)); |  382   ASSERT_STREQ(kData, reinterpret_cast<const char*>(trace->MofData)); | 
|  383 } |  383 } | 
| OLD | NEW |