| 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 {
|
|
|