Chromium Code Reviews| Index: base/debug/trace_event_unittest.cc |
| =================================================================== |
| --- base/debug/trace_event_unittest.cc (revision 210376) |
| +++ base/debug/trace_event_unittest.cc (working copy) |
| @@ -104,6 +104,8 @@ |
| PlatformThread::SetName(old_thread_name_ ? old_thread_name_ : ""); |
| free(old_thread_name_); |
| old_thread_name_ = NULL; |
| + // We want our singleton torn down after each test. |
| + TraceLog::DeleteForTesting(); |
| } |
| char* old_thread_name_; |
| @@ -121,7 +123,6 @@ |
| void TraceEventTestFixture::ManualTestSetUp() { |
| TraceLog::DeleteForTesting(); |
| - TraceLog::Resurrect(); |
| TraceLog* tracelog = TraceLog::GetInstance(); |
| ASSERT_TRUE(tracelog); |
| ASSERT_FALSE(tracelog->IsEnabled()); |
| @@ -1521,71 +1522,6 @@ |
| } |
| } |
| -// Test trace calls made after tracing singleton shut down. |
|
scheib
2013/07/08 22:58:57
I was initially hesitant to remove this test- but
jam
2013/07/08 23:03:10
Done.
|
| -// |
| -// The singleton is destroyed by our base::AtExitManager, but there can be |
| -// code still executing as the C++ static objects are destroyed. This test |
| -// forces the singleton to destroy early, and intentinally makes trace calls |
| -// afterwards. |
| -TEST_F(TraceEventTestFixture, AtExit) { |
| - // Repeat this test a few times. Besides just showing robustness, it also |
| - // allows us to test that events at shutdown do not appear with valid events |
| - // recorded after the system is started again. |
| - for (int i = 0; i < 4; i++) { |
| - // Scope to contain the then destroy the TraceLog singleton. |
| - { |
| - base::ShadowingAtExitManager exit_manager_will_destroy_singletons; |
| - |
| - // Setup TraceLog singleton inside this test's exit manager scope |
| - // so that it will be destroyed when this scope closes. |
| - ManualTestSetUp(); |
| - |
| - TRACE_EVENT_INSTANT0("all", "not recorded; system not enabled", |
| - TRACE_EVENT_SCOPE_THREAD); |
| - |
| - BeginTrace(); |
| - |
| - TRACE_EVENT_INSTANT0("all", "is recorded 1; system has been enabled", |
| - TRACE_EVENT_SCOPE_THREAD); |
| - // Trace calls that will cache pointers to categories; they're valid here |
| - TraceCallsWithCachedCategoryPointersPointers( |
| - "is recorded 2; system has been enabled"); |
| - |
| - EndTraceAndFlush(); |
| - } // scope to destroy singleton |
| - ASSERT_FALSE(TraceLog::GetInstance()); |
| - |
| - // Now that singleton is destroyed, check what trace events were recorded |
| - const DictionaryValue* item = NULL; |
| - ListValue& trace_parsed = trace_parsed_; |
| - EXPECT_FIND_("is recorded 1"); |
| - EXPECT_FIND_("is recorded 2"); |
| - EXPECT_NOT_FIND_("not recorded"); |
| - |
| - // Make additional trace event calls on the shutdown system. They should |
| - // all pass cleanly, but the data not be recorded. We'll verify that next |
| - // time around the loop (the only way to flush the trace buffers). |
| - TRACE_EVENT_BEGIN_ETW("not recorded; system shutdown", 0, NULL); |
| - TRACE_EVENT_END_ETW("not recorded; system shutdown", 0, NULL); |
| - TRACE_EVENT_INSTANT_ETW("not recorded; system shutdown", 0, NULL); |
| - TRACE_EVENT0("all", "not recorded; system shutdown"); |
| - TRACE_EVENT_INSTANT0("all", "not recorded; system shutdown", |
| - TRACE_EVENT_SCOPE_THREAD); |
| - TRACE_EVENT_BEGIN0("all", "not recorded; system shutdown"); |
| - TRACE_EVENT_END0("all", "not recorded; system shutdown"); |
| - |
| - TRACE_EVENT0("new category 0!", "not recorded; system shutdown"); |
| - TRACE_EVENT_INSTANT0("new category 1!", "not recorded; system shutdown", |
| - TRACE_EVENT_SCOPE_THREAD); |
| - TRACE_EVENT_BEGIN0("new category 2!", "not recorded; system shutdown"); |
| - TRACE_EVENT_END0("new category 3!", "not recorded; system shutdown"); |
| - |
| - // Cached categories should be safe to check, and still disable traces |
| - TraceCallsWithCachedCategoryPointersPointers( |
| - "not recorded; system shutdown"); |
| - } |
| -} |
| - |
| TEST_F(TraceEventTestFixture, NormallyNoDeepCopy) { |
| // Test that the TRACE_EVENT macros do not deep-copy their string. If they |
| // do so it may indicate a performance regression, but more-over it would |