summaryrefslogtreecommitdiffstats
path: root/base/debug/trace_event_unittest.cc
diff options
context:
space:
mode:
Diffstat (limited to 'base/debug/trace_event_unittest.cc')
-rw-r--r--base/debug/trace_event_unittest.cc34
1 files changed, 19 insertions, 15 deletions
diff --git a/base/debug/trace_event_unittest.cc b/base/debug/trace_event_unittest.cc
index a5c889f..c0c9380 100644
--- a/base/debug/trace_event_unittest.cc
+++ b/base/debug/trace_event_unittest.cc
@@ -58,20 +58,23 @@ 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);
ASSERT_FALSE(tracelog->IsEnabled());
tracelog->SetOutputCallback(
- base::Bind(&TraceEventTestFixture::OnTraceDataCollected,
- base::Unretained(this)));
+ base::Bind(&TraceEventTestFixture::OnTraceDataCollected,
+ base::Unretained(this)));
}
void TraceEventTestFixture::OnTraceDataCollected(
scoped_refptr<TraceLog::RefCountedString> json_events_str) {
+ AutoLock lock(lock_);
trace_string_ += json_events_str->data;
scoped_ptr<Value> root;
@@ -283,11 +286,11 @@ void ValidateAllTraceMacrosCreatedData(const ListValue& trace_parsed,
DictionaryValue* item = NULL;
#define EXPECT_FIND_(string) \
- EXPECT_TRUE((item = FindTraceEntry(trace_parsed, string)));
+ EXPECT_TRUE((item = FindTraceEntry(trace_parsed, string)));
#define EXPECT_NOT_FIND_(string) \
- EXPECT_FALSE((item = FindTraceEntry(trace_parsed, string)));
+ EXPECT_FALSE((item = FindTraceEntry(trace_parsed, string)));
#define EXPECT_SUB_FIND_(string) \
- if (item) EXPECT_TRUE((IsStringInDict(string, item)));
+ if (item) EXPECT_TRUE((IsStringInDict(string, item)));
EXPECT_FIND_("ETW Trace Event");
EXPECT_FIND_("all");
@@ -679,12 +682,12 @@ TEST_F(TraceEventTestFixture, DataCapturedOnThread) {
thread.Start();
thread.message_loop()->PostTask(
- FROM_HERE, NewRunnableFunction(&TraceWithAllMacroVariants,
- &task_complete_event));
+ FROM_HERE, NewRunnableFunction(&TraceWithAllMacroVariants,
+ &task_complete_event));
task_complete_event.Wait();
+ thread.Stop();
TraceLog::GetInstance()->SetEnabled(false);
- thread.Stop();
ValidateAllTraceMacrosCreatedData(trace_parsed_, trace_string_);
}
@@ -702,22 +705,22 @@ TEST_F(TraceEventTestFixture, DataCapturedManyThreads) {
task_complete_events[i] = new WaitableEvent(false, false);
threads[i]->Start();
threads[i]->message_loop()->PostTask(
- FROM_HERE, NewRunnableFunction(&TraceManyInstantEvents,
- i, num_events, task_complete_events[i]));
+ FROM_HERE, NewRunnableFunction(&TraceManyInstantEvents,
+ i, num_events, task_complete_events[i]));
}
for (int i = 0; i < num_threads; i++) {
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);
}
@@ -745,21 +748,22 @@ TEST_F(TraceEventTestFixture, ThreadNames) {
threads[i]->Start();
thread_ids[i] = threads[i]->thread_id();
threads[i]->message_loop()->PostTask(
- FROM_HERE, NewRunnableFunction(&TraceManyInstantEvents,
- i, num_events, task_complete_events[i]));
+ FROM_HERE, NewRunnableFunction(&TraceManyInstantEvents,
+ i, num_events, task_complete_events[i]));
}
for (int i = 0; i < num_threads; i++) {
task_complete_events[i]->Wait();
}
// 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;