Index: base/debug/trace_event_unittest.cc |
diff --git a/base/debug/trace_event_unittest.cc b/base/debug/trace_event_unittest.cc |
index 64f992d50302110a2cc1bd2f8b0ceada92790987..a78b002066eb0ffb17b17a91d81ce00a037e9b34 100644 |
--- a/base/debug/trace_event_unittest.cc |
+++ b/base/debug/trace_event_unittest.cc |
@@ -55,6 +55,7 @@ class TraceEventTestFixture : public testing::Test { |
void OnTraceNotification(int notification) { |
if (notification & TraceLog::EVENT_WATCH_NOTIFICATION) |
++event_watch_notification_; |
+ notifications_received_ |= notification; |
} |
DictionaryValue* FindMatchingTraceEntry(const JsonKeyValue* key_values); |
DictionaryValue* FindNamePhase(const char* name, const char* phase); |
@@ -73,6 +74,7 @@ class TraceEventTestFixture : public testing::Test { |
void BeginTrace() { |
event_watch_notification_ = 0; |
+ notifications_received_ = 0; |
TraceLog::GetInstance()->SetEnabled(CategoryFilter("*"), |
TraceLog::RECORD_UNTIL_FULL); |
} |
@@ -102,6 +104,7 @@ class TraceEventTestFixture : public testing::Test { |
base::debug::TraceResultBuffer trace_buffer_; |
base::debug::TraceResultBuffer::SimpleOutput json_output_; |
int event_watch_notification_; |
+ int notifications_received_; |
private: |
// We want our singleton torn down after each test. |
@@ -1666,11 +1669,24 @@ TEST_F(TraceEventCallbackTest, TraceEventCallback) { |
TraceLog::GetInstance()->SetEventCallback(NULL); |
TRACE_EVENT_INSTANT0("all", "after callback removed", |
TRACE_EVENT_SCOPE_GLOBAL); |
- EXPECT_EQ(2u, collected_events_.size()); |
+ ASSERT_EQ(2u, collected_events_.size()); |
jar (doing other things)
2013/04/26 16:43:31
nice catch/correction.
|
EXPECT_EQ("event1", collected_events_[0]); |
EXPECT_EQ("event2", collected_events_[1]); |
} |
+TEST_F(TraceEventCallbackTest, TraceEventCallbackWhileFull) { |
+ TraceLog::GetInstance()->SetEnabled(CategoryFilter("*"), |
+ TraceLog::RECORD_UNTIL_FULL); |
+ do { |
+ TRACE_EVENT_INSTANT0("all", "badger badger", TRACE_EVENT_SCOPE_GLOBAL); |
+ } while ((notifications_received_ & TraceLog::TRACE_BUFFER_FULL) == 0); |
+ TraceLog::GetInstance()->SetEventCallback(Callback); |
+ TRACE_EVENT_INSTANT0("all", "a snake", TRACE_EVENT_SCOPE_GLOBAL); |
+ TraceLog::GetInstance()->SetEventCallback(NULL); |
+ ASSERT_EQ(1u, collected_events_.size()); |
+ EXPECT_EQ("a snake", collected_events_[0]); |
+} |
+ |
// TODO(dsinclair): Continuous Tracing unit test. |
// Test the category filter. |