Index: base/debug/trace_event_unittest.cc |
diff --git a/base/debug/trace_event_unittest.cc b/base/debug/trace_event_unittest.cc |
index 000097e16e0c58f739cf9376d955ef58bf728261..83f98d2498b8113343fc8c1c6fc6085a467d376b 100644 |
--- a/base/debug/trace_event_unittest.cc |
+++ b/base/debug/trace_event_unittest.cc |
@@ -1788,7 +1788,7 @@ TEST_F(TraceEventTestFixture, TraceOptionsParsing) { |
"record-continuously,enable-sampling")); |
} |
-// Not supported in split dll build. http://crbug.com/237249 |
+// Not supported in split dll build. http://crbug.com/256965 |
#if !defined(CHROME_SPLIT_DLL) |
TEST_F(TraceEventTestFixture, TraceSampling) { |
ManualTestSetUp(); |
@@ -1802,9 +1802,9 @@ TEST_F(TraceEventTestFixture, TraceSampling) { |
WaitableEvent* sampled = new WaitableEvent(false, false); |
TraceLog::GetInstance()->InstallWaitableEventForSamplingTesting(sampled); |
- TRACE_EVENT_SAMPLE_STATE(1, "cc", "Stuff"); |
+ TRACE_EVENT_SET_SAMPLING_STATE_FOR_BUCKET(1, "cc", "Stuff"); |
sampled->Wait(); |
- TRACE_EVENT_SAMPLE_STATE(1, "cc", "Things"); |
+ TRACE_EVENT_SET_SAMPLING_STATE_FOR_BUCKET(1, "cc", "Things"); |
sampled->Wait(); |
EndTraceAndFlush(); |
@@ -1813,6 +1813,46 @@ TEST_F(TraceEventTestFixture, TraceSampling) { |
EXPECT_TRUE(FindNamePhase("Stuff", "P")); |
EXPECT_TRUE(FindNamePhase("Things", "P")); |
} |
+ |
+TEST_F(TraceEventTestFixture, TraceSamplingScope) { |
+ ManualTestSetUp(); |
+ |
+ event_watch_notification_ = 0; |
+ TraceLog::GetInstance()->SetEnabled( |
+ CategoryFilter("*"), |
+ TraceLog::Options(TraceLog::RECORD_UNTIL_FULL | |
+ TraceLog::ENABLE_SAMPLING)); |
+ |
+ WaitableEvent* sampled = new WaitableEvent(false, false); |
+ TraceLog::GetInstance()->InstallWaitableEventForSamplingTesting(sampled); |
+ |
+ TRACE_EVENT_SCOPED_SAMPLING_STATE("AAA", "name"); |
+ sampled->Wait(); |
+ { |
+ EXPECT_STREQ(TRACE_EVENT_GET_SAMPLING_STATE(), "AAA"); |
+ TRACE_EVENT_SCOPED_SAMPLING_STATE("BBB", "name"); |
+ sampled->Wait(); |
+ EXPECT_STREQ(TRACE_EVENT_GET_SAMPLING_STATE(), "BBB"); |
+ } |
+ sampled->Wait(); |
+ { |
+ EXPECT_STREQ(TRACE_EVENT_GET_SAMPLING_STATE(), "AAA"); |
+ TRACE_EVENT_SCOPED_SAMPLING_STATE("CCC", "name"); |
+ sampled->Wait(); |
+ EXPECT_STREQ(TRACE_EVENT_GET_SAMPLING_STATE(), "CCC"); |
+ } |
+ sampled->Wait(); |
+ { |
+ EXPECT_STREQ(TRACE_EVENT_GET_SAMPLING_STATE(), "AAA"); |
+ TRACE_EVENT_SET_SAMPLING_STATE("DDD", "name"); |
+ sampled->Wait(); |
+ EXPECT_STREQ(TRACE_EVENT_GET_SAMPLING_STATE(), "DDD"); |
+ } |
+ sampled->Wait(); |
+ EXPECT_STREQ(TRACE_EVENT_GET_SAMPLING_STATE(), "DDD"); |
+ |
+ EndTraceAndFlush(); |
+} |
#endif // !CHROME_SPLIT_DLL |
class MyData : public base::debug::ConvertableToTraceFormat { |