Index: base/debug/trace_event_unittest.cc |
diff --git a/base/debug/trace_event_unittest.cc b/base/debug/trace_event_unittest.cc |
index 3fbc777203e7fbfc56c9abefc56fd7a4de0b5617..f42fbf790f19fc37fce0e514eb01dd78f7dc1fa8 100644 |
--- a/base/debug/trace_event_unittest.cc |
+++ b/base/debug/trace_event_unittest.cc |
@@ -44,9 +44,11 @@ class TraceEventTestFixture : public testing::Test { |
private: |
// We want our singleton torn down after each test. |
ShadowingAtExitManager at_exit_manager_; |
+ Lock lock_; |
}; |
void TraceEventTestFixture::ManualTestSetUp() { |
+ TraceLog::DeleteForTesting(); |
TraceLog::Resurrect(); |
TraceLog* tracelog = TraceLog::GetInstance(); |
ASSERT_TRUE(tracelog); |
@@ -58,6 +60,7 @@ void TraceEventTestFixture::ManualTestSetUp() { |
void TraceEventTestFixture::OnTraceDataCollected( |
scoped_refptr<TraceLog::RefCountedString> json_events_str) { |
+ AutoLock lock(lock_); |
trace_string_ += json_events_str->data; |
scoped_ptr<Value> root; |
@@ -529,9 +532,9 @@ TEST_F(TraceEventTestFixture, DataCapturedOnThread) { |
FROM_HERE, NewRunnableFunction(&TraceWithAllMacroVariants, |
&task_complete_event)); |
task_complete_event.Wait(); |
+ thread.Stop(); |
TraceLog::GetInstance()->SetEnabled(false); |
- thread.Stop(); |
ValidateAllTraceMacrosCreatedData(trace_parsed_, trace_string_); |
} |
@@ -557,14 +560,14 @@ TEST_F(TraceEventTestFixture, DataCapturedManyThreads) { |
task_complete_events[i]->Wait(); |
} |
- TraceLog::GetInstance()->SetEnabled(false); |
- |
for (int i = 0; i < num_threads; i++) { |
threads[i]->Stop(); |
delete threads[i]; |
delete task_complete_events[i]; |
} |
+ TraceLog::GetInstance()->SetEnabled(false); |
+ |
ValidateInstantEventPresentOnEveryThread(trace_parsed_, trace_string_, |
num_threads, num_events); |
} |
@@ -600,13 +603,14 @@ TEST_F(TraceEventTestFixture, ThreadNames) { |
} |
// Shut things down. |
- TraceLog::GetInstance()->SetEnabled(false); |
for (int i = 0; i < num_threads; i++) { |
threads[i]->Stop(); |
delete threads[i]; |
delete task_complete_events[i]; |
} |
+ TraceLog::GetInstance()->SetEnabled(false); |
+ |
std::string tmp; |
int tmp_int; |
DictionaryValue* item; |