| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "base/trace_event/trace_event.h" | 5 #include "base/trace_event/trace_event.h" |
| 6 | 6 |
| 7 #include <math.h> | 7 #include <math.h> |
| 8 #include <stddef.h> | 8 #include <stddef.h> |
| 9 #include <stdint.h> | 9 #include <stdint.h> |
| 10 | 10 |
| (...skipping 2134 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2145 // are also enabled. | 2145 // are also enabled. |
| 2146 trace_log->SetEnabled(TraceConfig("disabled-by-default-foo", ""), | 2146 trace_log->SetEnabled(TraceConfig("disabled-by-default-foo", ""), |
| 2147 TraceLog::RECORDING_MODE); | 2147 TraceLog::RECORDING_MODE); |
| 2148 EXPECT_TRUE(*trace_log->GetCategoryGroupEnabled("disabled-by-default-foo")); | 2148 EXPECT_TRUE(*trace_log->GetCategoryGroupEnabled("disabled-by-default-foo")); |
| 2149 EXPECT_TRUE(*trace_log->GetCategoryGroupEnabled("foo")); | 2149 EXPECT_TRUE(*trace_log->GetCategoryGroupEnabled("foo")); |
| 2150 EXPECT_TRUE(*trace_log->GetCategoryGroupEnabled("bar")); | 2150 EXPECT_TRUE(*trace_log->GetCategoryGroupEnabled("bar")); |
| 2151 EXPECT_FALSE(*trace_log->GetCategoryGroupEnabled("disabled-by-default-bar")); | 2151 EXPECT_FALSE(*trace_log->GetCategoryGroupEnabled("disabled-by-default-bar")); |
| 2152 trace_log->SetDisabled(); | 2152 trace_log->SetDisabled(); |
| 2153 } | 2153 } |
| 2154 | 2154 |
| 2155 TEST_F(TraceEventTestFixture, TraceSampling) { | |
| 2156 TraceLog::GetInstance()->SetEnabled( | |
| 2157 TraceConfig(kRecordAllCategoryFilter, "record-until-full,enable-sampling"), | |
| 2158 TraceLog::RECORDING_MODE); | |
| 2159 | |
| 2160 TRACE_EVENT_SET_SAMPLING_STATE_FOR_BUCKET(1, "cc", "Stuff"); | |
| 2161 TraceLog::GetInstance()->WaitSamplingEventForTesting(); | |
| 2162 TRACE_EVENT_SET_SAMPLING_STATE_FOR_BUCKET(1, "cc", "Things"); | |
| 2163 TraceLog::GetInstance()->WaitSamplingEventForTesting(); | |
| 2164 | |
| 2165 EndTraceAndFlush(); | |
| 2166 | |
| 2167 // Make sure we hit at least once. | |
| 2168 EXPECT_TRUE(FindNamePhase("Stuff", "P")); | |
| 2169 EXPECT_TRUE(FindNamePhase("Things", "P")); | |
| 2170 } | |
| 2171 | |
| 2172 TEST_F(TraceEventTestFixture, TraceSamplingScope) { | |
| 2173 TraceLog::GetInstance()->SetEnabled( | |
| 2174 TraceConfig(kRecordAllCategoryFilter, "record-until-full,enable-sampling"), | |
| 2175 TraceLog::RECORDING_MODE); | |
| 2176 | |
| 2177 TRACE_EVENT_SCOPED_SAMPLING_STATE("AAA", "name"); | |
| 2178 TraceLog::GetInstance()->WaitSamplingEventForTesting(); | |
| 2179 { | |
| 2180 EXPECT_STREQ(TRACE_EVENT_GET_SAMPLING_STATE(), "AAA"); | |
| 2181 TRACE_EVENT_SCOPED_SAMPLING_STATE("BBB", "name"); | |
| 2182 TraceLog::GetInstance()->WaitSamplingEventForTesting(); | |
| 2183 EXPECT_STREQ(TRACE_EVENT_GET_SAMPLING_STATE(), "BBB"); | |
| 2184 } | |
| 2185 TraceLog::GetInstance()->WaitSamplingEventForTesting(); | |
| 2186 { | |
| 2187 EXPECT_STREQ(TRACE_EVENT_GET_SAMPLING_STATE(), "AAA"); | |
| 2188 TRACE_EVENT_SCOPED_SAMPLING_STATE("CCC", "name"); | |
| 2189 TraceLog::GetInstance()->WaitSamplingEventForTesting(); | |
| 2190 EXPECT_STREQ(TRACE_EVENT_GET_SAMPLING_STATE(), "CCC"); | |
| 2191 } | |
| 2192 TraceLog::GetInstance()->WaitSamplingEventForTesting(); | |
| 2193 { | |
| 2194 EXPECT_STREQ(TRACE_EVENT_GET_SAMPLING_STATE(), "AAA"); | |
| 2195 TRACE_EVENT_SET_SAMPLING_STATE("DDD", "name"); | |
| 2196 TraceLog::GetInstance()->WaitSamplingEventForTesting(); | |
| 2197 EXPECT_STREQ(TRACE_EVENT_GET_SAMPLING_STATE(), "DDD"); | |
| 2198 } | |
| 2199 TraceLog::GetInstance()->WaitSamplingEventForTesting(); | |
| 2200 EXPECT_STREQ(TRACE_EVENT_GET_SAMPLING_STATE(), "DDD"); | |
| 2201 | |
| 2202 EndTraceAndFlush(); | |
| 2203 } | |
| 2204 | |
| 2205 class MyData : public ConvertableToTraceFormat { | 2155 class MyData : public ConvertableToTraceFormat { |
| 2206 public: | 2156 public: |
| 2207 MyData() {} | 2157 MyData() {} |
| 2208 ~MyData() override {} | 2158 ~MyData() override {} |
| 2209 | 2159 |
| 2210 void AppendAsTraceFormat(std::string* out) const override { | 2160 void AppendAsTraceFormat(std::string* out) const override { |
| 2211 out->append("{\"foo\":1}"); | 2161 out->append("{\"foo\":1}"); |
| 2212 } | 2162 } |
| 2213 | 2163 |
| 2214 private: | 2164 private: |
| (...skipping 805 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3020 TraceConfig(kRecordAllCategoryFilter, RECORD_UNTIL_FULL))); | 2970 TraceConfig(kRecordAllCategoryFilter, RECORD_UNTIL_FULL))); |
| 3021 | 2971 |
| 3022 EXPECT_EQ(TraceLog::kInternalRecordContinuously, | 2972 EXPECT_EQ(TraceLog::kInternalRecordContinuously, |
| 3023 trace_log->GetInternalOptionsFromTraceConfig( | 2973 trace_log->GetInternalOptionsFromTraceConfig( |
| 3024 TraceConfig(kRecordAllCategoryFilter, RECORD_CONTINUOUSLY))); | 2974 TraceConfig(kRecordAllCategoryFilter, RECORD_CONTINUOUSLY))); |
| 3025 | 2975 |
| 3026 EXPECT_EQ(TraceLog::kInternalEchoToConsole, | 2976 EXPECT_EQ(TraceLog::kInternalEchoToConsole, |
| 3027 trace_log->GetInternalOptionsFromTraceConfig( | 2977 trace_log->GetInternalOptionsFromTraceConfig( |
| 3028 TraceConfig(kRecordAllCategoryFilter, ECHO_TO_CONSOLE))); | 2978 TraceConfig(kRecordAllCategoryFilter, ECHO_TO_CONSOLE))); |
| 3029 | 2979 |
| 3030 EXPECT_EQ( | 2980 EXPECT_EQ(TraceLog::kInternalEchoToConsole, |
| 3031 TraceLog::kInternalRecordUntilFull | TraceLog::kInternalEnableSampling, | 2981 trace_log->GetInternalOptionsFromTraceConfig( |
| 3032 trace_log->GetInternalOptionsFromTraceConfig( | 2982 TraceConfig("*", "trace-to-console,enable-systrace"))); |
| 3033 TraceConfig(kRecordAllCategoryFilter, | |
| 3034 "record-until-full,enable-sampling"))); | |
| 3035 | |
| 3036 EXPECT_EQ( | |
| 3037 TraceLog::kInternalRecordContinuously | TraceLog::kInternalEnableSampling, | |
| 3038 trace_log->GetInternalOptionsFromTraceConfig( | |
| 3039 TraceConfig(kRecordAllCategoryFilter, | |
| 3040 "record-continuously,enable-sampling"))); | |
| 3041 | |
| 3042 EXPECT_EQ( | |
| 3043 TraceLog::kInternalEchoToConsole | TraceLog::kInternalEnableSampling, | |
| 3044 trace_log->GetInternalOptionsFromTraceConfig( | |
| 3045 TraceConfig(kRecordAllCategoryFilter, | |
| 3046 "trace-to-console,enable-sampling"))); | |
| 3047 | |
| 3048 EXPECT_EQ( | |
| 3049 TraceLog::kInternalEchoToConsole | TraceLog::kInternalEnableSampling, | |
| 3050 trace_log->GetInternalOptionsFromTraceConfig( | |
| 3051 TraceConfig("*", | |
| 3052 "trace-to-console,enable-sampling,enable-systrace"))); | |
| 3053 } | 2983 } |
| 3054 | 2984 |
| 3055 void SetBlockingFlagAndBlockUntilStopped(WaitableEvent* task_start_event, | 2985 void SetBlockingFlagAndBlockUntilStopped(WaitableEvent* task_start_event, |
| 3056 WaitableEvent* task_stop_event) { | 2986 WaitableEvent* task_stop_event) { |
| 3057 TraceLog::GetInstance()->SetCurrentThreadBlocksMessageLoop(); | 2987 TraceLog::GetInstance()->SetCurrentThreadBlocksMessageLoop(); |
| 3058 BlockUntilStopped(task_start_event, task_stop_event); | 2988 BlockUntilStopped(task_start_event, task_stop_event); |
| 3059 } | 2989 } |
| 3060 | 2990 |
| 3061 TEST_F(TraceEventTestFixture, SetCurrentThreadBlocksMessageLoopAfterTracing) { | 2991 TEST_F(TraceEventTestFixture, SetCurrentThreadBlocksMessageLoopAfterTracing) { |
| 3062 BeginTrace(); | 2992 BeginTrace(); |
| (...skipping 339 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3402 | 3332 |
| 3403 TEST_F(TraceEventTestFixture, ClockSyncEventsAreAlwaysAddedToTrace) { | 3333 TEST_F(TraceEventTestFixture, ClockSyncEventsAreAlwaysAddedToTrace) { |
| 3404 BeginSpecificTrace("-*"); | 3334 BeginSpecificTrace("-*"); |
| 3405 TRACE_EVENT_CLOCK_SYNC_RECEIVER(1); | 3335 TRACE_EVENT_CLOCK_SYNC_RECEIVER(1); |
| 3406 EndTraceAndFlush(); | 3336 EndTraceAndFlush(); |
| 3407 EXPECT_TRUE(FindNamePhase("clock_sync", "c")); | 3337 EXPECT_TRUE(FindNamePhase("clock_sync", "c")); |
| 3408 } | 3338 } |
| 3409 | 3339 |
| 3410 } // namespace trace_event | 3340 } // namespace trace_event |
| 3411 } // namespace base | 3341 } // namespace base |
| OLD | NEW |