| 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 // Unit tests for event trace consumer_ base class. |    5 // Unit tests for event trace consumer_ base class. | 
|    6 #include "base/event_trace_consumer_win.h" |    6 #include "base/event_trace_consumer_win.h" | 
|    7 #include <list> |    7 #include <list> | 
|    8 #include "base/basictypes.h" |    8 #include "base/basictypes.h" | 
|    9 #include "base/event_trace_controller_win.h" |    9 #include "base/event_trace_controller_win.h" | 
|   10 #include "base/event_trace_provider_win.h" |   10 #include "base/event_trace_provider_win.h" | 
| (...skipping 160 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  171   ScopedHandle consumer_ready_; |  171   ScopedHandle consumer_ready_; | 
|  172   ScopedHandle consumer_thread_; |  172   ScopedHandle consumer_thread_; | 
|  173 }; |  173 }; | 
|  174 }  // namespace |  174 }  // namespace | 
|  175  |  175  | 
|  176 TEST_F(EtwTraceConsumerRealtimeTest, ConsumerReturnsWhenSessionClosed) { |  176 TEST_F(EtwTraceConsumerRealtimeTest, ConsumerReturnsWhenSessionClosed) { | 
|  177   EtwTraceController controller; |  177   EtwTraceController controller; | 
|  178  |  178  | 
|  179   HRESULT hr = controller.StartRealtimeSession(kTestSessionName, 100 * 1024); |  179   HRESULT hr = controller.StartRealtimeSession(kTestSessionName, 100 * 1024); | 
|  180   if (hr == E_ACCESSDENIED) { |  180   if (hr == E_ACCESSDENIED) { | 
|  181     LOG(INFO) << "You must be an administrator to run this test on Vista"; |  181     VLOG(1) << "You must be an administrator to run this test on Vista"; | 
|  182     return; |  182     return; | 
|  183   } |  183   } | 
|  184  |  184  | 
|  185   // Start the consumer_. |  185   // Start the consumer_. | 
|  186   ASSERT_HRESULT_SUCCEEDED(StartConsumerThread()); |  186   ASSERT_HRESULT_SUCCEEDED(StartConsumerThread()); | 
|  187  |  187  | 
|  188   // Wait around for the consumer_ thread a bit. |  188   // Wait around for the consumer_ thread a bit. | 
|  189   ASSERT_EQ(WAIT_TIMEOUT, ::WaitForSingleObject(consumer_thread_, 50)); |  189   ASSERT_EQ(WAIT_TIMEOUT, ::WaitForSingleObject(consumer_thread_, 50)); | 
|  190  |  190  | 
|  191   ASSERT_HRESULT_SUCCEEDED(controller.Stop(NULL)); |  191   ASSERT_HRESULT_SUCCEEDED(controller.Stop(NULL)); | 
| (...skipping 11 matching lines...) Expand all  Loading... | 
|  203 // {57E47923-A549-476f-86CA-503D57F59E62} |  203 // {57E47923-A549-476f-86CA-503D57F59E62} | 
|  204 DEFINE_GUID(kTestEventType, |  204 DEFINE_GUID(kTestEventType, | 
|  205   0x57e47923, 0xa549, 0x476f, 0x86, 0xca, 0x50, 0x3d, 0x57, 0xf5, 0x9e, 0x62); |  205   0x57e47923, 0xa549, 0x476f, 0x86, 0xca, 0x50, 0x3d, 0x57, 0xf5, 0x9e, 0x62); | 
|  206  |  206  | 
|  207 }  // namespace |  207 }  // namespace | 
|  208  |  208  | 
|  209 TEST_F(EtwTraceConsumerRealtimeTest, ConsumeEvent) { |  209 TEST_F(EtwTraceConsumerRealtimeTest, ConsumeEvent) { | 
|  210   EtwTraceController controller; |  210   EtwTraceController controller; | 
|  211   HRESULT hr = controller.StartRealtimeSession(kTestSessionName, 100 * 1024); |  211   HRESULT hr = controller.StartRealtimeSession(kTestSessionName, 100 * 1024); | 
|  212   if (hr == E_ACCESSDENIED) { |  212   if (hr == E_ACCESSDENIED) { | 
|  213     LOG(INFO) << "You must be an administrator to run this test on Vista"; |  213     VLOG(1) << "You must be an administrator to run this test on Vista"; | 
|  214     return; |  214     return; | 
|  215   } |  215   } | 
|  216  |  216  | 
|  217   ASSERT_HRESULT_SUCCEEDED(controller.EnableProvider(kTestProvider, |  217   ASSERT_HRESULT_SUCCEEDED(controller.EnableProvider(kTestProvider, | 
|  218       TRACE_LEVEL_VERBOSE, 0xFFFFFFFF)); |  218       TRACE_LEVEL_VERBOSE, 0xFFFFFFFF)); | 
|  219  |  219  | 
|  220   EtwTraceProvider provider(kTestProvider); |  220   EtwTraceProvider provider(kTestProvider); | 
|  221   ASSERT_EQ(ERROR_SUCCESS, provider.Register()); |  221   ASSERT_EQ(ERROR_SUCCESS, provider.Register()); | 
|  222  |  222  | 
|  223   // Start the consumer_. |  223   // Start the consumer_. | 
| (...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  321 TEST_F(EtwTraceConsumerDataTest, RoundTrip) { |  321 TEST_F(EtwTraceConsumerDataTest, RoundTrip) { | 
|  322   EtwMofEvent<1> event(kTestEventType, 1, TRACE_LEVEL_ERROR); |  322   EtwMofEvent<1> event(kTestEventType, 1, TRACE_LEVEL_ERROR); | 
|  323  |  323  | 
|  324   static const char kData[] = "This is but test data"; |  324   static const char kData[] = "This is but test data"; | 
|  325   event.fields[0].DataPtr = reinterpret_cast<ULONG64>(kData); |  325   event.fields[0].DataPtr = reinterpret_cast<ULONG64>(kData); | 
|  326   event.fields[0].Length = sizeof(kData); |  326   event.fields[0].Length = sizeof(kData); | 
|  327  |  327  | 
|  328   PEVENT_TRACE trace = NULL; |  328   PEVENT_TRACE trace = NULL; | 
|  329   HRESULT hr = RoundTripEvent(&event.header, &trace); |  329   HRESULT hr = RoundTripEvent(&event.header, &trace); | 
|  330   if (hr == E_ACCESSDENIED) { |  330   if (hr == E_ACCESSDENIED) { | 
|  331     LOG(INFO) << "You must be an administrator to run this test on Vista"; |  331     VLOG(1) << "You must be an administrator to run this test on Vista"; | 
|  332     return; |  332     return; | 
|  333   } |  333   } | 
|  334   ASSERT_TRUE(NULL != trace); |  334   ASSERT_TRUE(NULL != trace); | 
|  335   ASSERT_EQ(sizeof(kData), trace->MofLength); |  335   ASSERT_EQ(sizeof(kData), trace->MofLength); | 
|  336   ASSERT_STREQ(kData, reinterpret_cast<const char*>(trace->MofData)); |  336   ASSERT_STREQ(kData, reinterpret_cast<const char*>(trace->MofData)); | 
|  337 } |  337 } | 
| OLD | NEW |