Index: base/debug/trace_event_unittest.cc |
diff --git a/base/debug/trace_event_unittest.cc b/base/debug/trace_event_unittest.cc |
index 26e79c076ca73c176d4d9479582a894d9f08ad55..02bb899d2a227d4258a3b565c4aec00908b14b4e 100644 |
--- a/base/debug/trace_event_unittest.cc |
+++ b/base/debug/trace_event_unittest.cc |
@@ -905,6 +905,37 @@ TEST_F(TraceEventTestFixture, EnabledObserverFiresOnDisable) { |
TraceLog::GetInstance()->RemoveEnabledStateObserver(&observer); |
} |
+bool IsNewTrace() { |
+ bool is_new_trace; |
+ TRACE_EVENT_IS_NEW_TRACE(&is_new_trace); |
+ return is_new_trace; |
+} |
+ |
+TEST_F(TraceEventTestFixture, NewTraceRecording) { |
+ ManualTestSetUp(); |
+ ASSERT_FALSE(IsNewTrace()); |
+ TraceLog::GetInstance()->SetEnabled(CategoryFilter("*"), |
+ TraceLog::RECORD_UNTIL_FULL); |
+ // First call to IsNewTrace() should succeed. But, the second shouldn't. |
+ ASSERT_TRUE(IsNewTrace()); |
+ ASSERT_FALSE(IsNewTrace()); |
+ EndTraceAndFlush(); |
+ |
+ // IsNewTrace() should definitely be false now. |
+ ASSERT_FALSE(IsNewTrace()); |
+ |
+ // Start another trace. IsNewTrace() should become true again, briefly, as |
+ // before. |
+ TraceLog::GetInstance()->SetEnabled(CategoryFilter("*"), |
+ TraceLog::RECORD_UNTIL_FULL); |
+ ASSERT_TRUE(IsNewTrace()); |
+ ASSERT_FALSE(IsNewTrace()); |
+ |
+ // Cleanup. |
+ EndTraceAndFlush(); |
+} |
+ |
+ |
// Test that categories work. |
TEST_F(TraceEventTestFixture, Categories) { |
ManualTestSetUp(); |