Index: base/test/trace_event_analyzer_unittest.cc |
diff --git a/base/test/trace_event_analyzer_unittest.cc b/base/test/trace_event_analyzer_unittest.cc |
index f9f4e960c7165cd2590b188e551b90746aa9f629..e7dce4e2d8f6dc6e2da7418cf5f656ceb12d7086 100644 |
--- a/base/test/trace_event_analyzer_unittest.cc |
+++ b/base/test/trace_event_analyzer_unittest.cc |
@@ -4,6 +4,7 @@ |
#include "base/bind.h" |
#include "base/debug/trace_event_unittest.h" |
+#include "base/synchronization/waitable_event.h" |
#include "base/test/trace_event_analyzer.h" |
#include "testing/gmock/include/gmock/gmock.h" |
#include "testing/gtest/include/gtest/gtest.h" |
@@ -16,7 +17,9 @@ class TraceEventAnalyzerTest : public testing::Test { |
public: |
void ManualSetUp(); |
void OnTraceDataCollected( |
- const scoped_refptr<base::RefCountedString>& json_events_str); |
+ base::WaitableEvent* flush_complete_event, |
+ const scoped_refptr<base::RefCountedString>& json_events_str, |
+ bool has_more_events); |
void BeginTracing(); |
void EndTracing(); |
@@ -31,8 +34,12 @@ void TraceEventAnalyzerTest::ManualSetUp() { |
} |
void TraceEventAnalyzerTest::OnTraceDataCollected( |
- const scoped_refptr<base::RefCountedString>& json_events_str) { |
+ base::WaitableEvent* flush_complete_event, |
+ const scoped_refptr<base::RefCountedString>& json_events_str, |
+ bool has_more_events) { |
buffer_.AddFragment(json_events_str->data()); |
+ if (!has_more_events) |
+ flush_complete_event->Signal(); |
} |
void TraceEventAnalyzerTest::BeginTracing() { |
@@ -45,9 +52,12 @@ void TraceEventAnalyzerTest::BeginTracing() { |
void TraceEventAnalyzerTest::EndTracing() { |
base::debug::TraceLog::GetInstance()->SetDisabled(); |
+ base::WaitableEvent flush_complete_event(false, false); |
base::debug::TraceLog::GetInstance()->Flush( |
base::Bind(&TraceEventAnalyzerTest::OnTraceDataCollected, |
- base::Unretained(this))); |
+ base::Unretained(this), |
+ base::Unretained(&flush_complete_event))); |
+ flush_complete_event.Wait(); |
buffer_.Finish(); |
} |