| Index: base/trace_event/trace_event_unittest.cc
|
| diff --git a/base/trace_event/trace_event_unittest.cc b/base/trace_event/trace_event_unittest.cc
|
| index c6d43d1366ceaebd7f8175455a930ea77634e93f..4d7a89ca4bb860f4460c5cf71bf3a7c02040af6f 100644
|
| --- a/base/trace_event/trace_event_unittest.cc
|
| +++ b/base/trace_event/trace_event_unittest.cc
|
| @@ -2530,233 +2530,6 @@ TEST_F(TraceEventTestFixture, ArgsWhitelisting) {
|
| EXPECT_EQ(args_string, "__stripped__");
|
| }
|
|
|
| -class TraceEventCallbackTest : public TraceEventTestFixture {
|
| - public:
|
| - void SetUp() override {
|
| - TraceEventTestFixture::SetUp();
|
| - ASSERT_EQ(NULL, s_instance);
|
| - s_instance = this;
|
| - }
|
| - void TearDown() override {
|
| - TraceLog::GetInstance()->SetDisabled();
|
| - ASSERT_TRUE(s_instance);
|
| - s_instance = NULL;
|
| - TraceEventTestFixture::TearDown();
|
| - }
|
| -
|
| - protected:
|
| - // For TraceEventCallbackAndRecordingX tests.
|
| - void VerifyCallbackAndRecordedEvents(size_t expected_callback_count,
|
| - size_t expected_recorded_count) {
|
| - // Callback events.
|
| - EXPECT_EQ(expected_callback_count, collected_events_names_.size());
|
| - for (size_t i = 0; i < collected_events_names_.size(); ++i) {
|
| - EXPECT_EQ("callback", collected_events_categories_[i]);
|
| - EXPECT_EQ("yes", collected_events_names_[i]);
|
| - }
|
| -
|
| - // Recorded events.
|
| - EXPECT_EQ(expected_recorded_count, trace_parsed_.GetSize());
|
| - EXPECT_TRUE(FindTraceEntry(trace_parsed_, "recording"));
|
| - EXPECT_FALSE(FindTraceEntry(trace_parsed_, "callback"));
|
| - EXPECT_TRUE(FindTraceEntry(trace_parsed_, "yes"));
|
| - EXPECT_FALSE(FindTraceEntry(trace_parsed_, "no"));
|
| - }
|
| -
|
| - void VerifyCollectedEvent(size_t i,
|
| - unsigned phase,
|
| - const std::string& category,
|
| - const std::string& name) {
|
| - EXPECT_EQ(phase, collected_events_phases_[i]);
|
| - EXPECT_EQ(category, collected_events_categories_[i]);
|
| - EXPECT_EQ(name, collected_events_names_[i]);
|
| - }
|
| -
|
| - std::vector<std::string> collected_events_categories_;
|
| - std::vector<std::string> collected_events_names_;
|
| - std::vector<unsigned char> collected_events_phases_;
|
| - std::vector<TimeTicks> collected_events_timestamps_;
|
| -
|
| - static TraceEventCallbackTest* s_instance;
|
| - static void Callback(TimeTicks timestamp,
|
| - char phase,
|
| - const unsigned char* category_group_enabled,
|
| - const char* name,
|
| - const char* scope,
|
| - unsigned long long id,
|
| - int num_args,
|
| - const char* const arg_names[],
|
| - const unsigned char arg_types[],
|
| - const unsigned long long arg_values[],
|
| - unsigned int flags) {
|
| - s_instance->collected_events_phases_.push_back(phase);
|
| - s_instance->collected_events_categories_.push_back(
|
| - TraceLog::GetCategoryGroupName(category_group_enabled));
|
| - s_instance->collected_events_names_.push_back(name);
|
| - s_instance->collected_events_timestamps_.push_back(timestamp);
|
| - }
|
| -};
|
| -
|
| -TraceEventCallbackTest* TraceEventCallbackTest::s_instance;
|
| -
|
| -TEST_F(TraceEventCallbackTest, TraceEventCallback) {
|
| - TRACE_EVENT_INSTANT0("all", "before enable", TRACE_EVENT_SCOPE_THREAD);
|
| - TraceLog::GetInstance()->SetEventCallbackEnabled(
|
| - TraceConfig(kRecordAllCategoryFilter, ""), Callback);
|
| - TRACE_EVENT_INSTANT0("all", "event1", TRACE_EVENT_SCOPE_GLOBAL);
|
| - TRACE_EVENT_INSTANT0("all", "event2", TRACE_EVENT_SCOPE_GLOBAL);
|
| - {
|
| - TRACE_EVENT0("all", "duration");
|
| - TRACE_EVENT_INSTANT0("all", "event3", TRACE_EVENT_SCOPE_GLOBAL);
|
| - }
|
| - TraceLog::GetInstance()->SetEventCallbackDisabled();
|
| - TRACE_EVENT_INSTANT0("all", "after callback removed",
|
| - TRACE_EVENT_SCOPE_GLOBAL);
|
| - ASSERT_EQ(5u, collected_events_names_.size());
|
| - EXPECT_EQ("event1", collected_events_names_[0]);
|
| - EXPECT_EQ(TRACE_EVENT_PHASE_INSTANT, collected_events_phases_[0]);
|
| - EXPECT_EQ("event2", collected_events_names_[1]);
|
| - EXPECT_EQ(TRACE_EVENT_PHASE_INSTANT, collected_events_phases_[1]);
|
| - EXPECT_EQ("duration", collected_events_names_[2]);
|
| - EXPECT_EQ(TRACE_EVENT_PHASE_BEGIN, collected_events_phases_[2]);
|
| - EXPECT_EQ("event3", collected_events_names_[3]);
|
| - EXPECT_EQ(TRACE_EVENT_PHASE_INSTANT, collected_events_phases_[3]);
|
| - EXPECT_EQ("duration", collected_events_names_[4]);
|
| - EXPECT_EQ(TRACE_EVENT_PHASE_END, collected_events_phases_[4]);
|
| - for (size_t i = 1; i < collected_events_timestamps_.size(); i++) {
|
| - EXPECT_LE(collected_events_timestamps_[i - 1],
|
| - collected_events_timestamps_[i]);
|
| - }
|
| -}
|
| -
|
| -TEST_F(TraceEventCallbackTest, TraceEventCallbackWhileFull) {
|
| - TraceLog::GetInstance()->SetEnabled(TraceConfig(kRecordAllCategoryFilter, ""),
|
| - TraceLog::RECORDING_MODE);
|
| - do {
|
| - TRACE_EVENT_INSTANT0("all", "badger badger", TRACE_EVENT_SCOPE_GLOBAL);
|
| - } while (!TraceLog::GetInstance()->BufferIsFull());
|
| - TraceLog::GetInstance()->SetEventCallbackEnabled(
|
| - TraceConfig(kRecordAllCategoryFilter, ""), Callback);
|
| - TRACE_EVENT_INSTANT0("all", "a snake", TRACE_EVENT_SCOPE_GLOBAL);
|
| - TraceLog::GetInstance()->SetEventCallbackDisabled();
|
| - ASSERT_EQ(1u, collected_events_names_.size());
|
| - EXPECT_EQ("a snake", collected_events_names_[0]);
|
| -}
|
| -
|
| -// 1: Enable callback, enable recording, disable callback, disable recording.
|
| -TEST_F(TraceEventCallbackTest, TraceEventCallbackAndRecording1) {
|
| - TRACE_EVENT_INSTANT0("recording", "no", TRACE_EVENT_SCOPE_GLOBAL);
|
| - TRACE_EVENT_INSTANT0("callback", "no", TRACE_EVENT_SCOPE_GLOBAL);
|
| - TraceLog::GetInstance()->SetEventCallbackEnabled(TraceConfig("callback", ""),
|
| - Callback);
|
| - TRACE_EVENT_INSTANT0("recording", "no", TRACE_EVENT_SCOPE_GLOBAL);
|
| - TRACE_EVENT_INSTANT0("callback", "yes", TRACE_EVENT_SCOPE_GLOBAL);
|
| - TraceLog::GetInstance()->SetEnabled(TraceConfig("recording", ""),
|
| - TraceLog::RECORDING_MODE);
|
| - TRACE_EVENT_INSTANT0("recording", "yes", TRACE_EVENT_SCOPE_GLOBAL);
|
| - TRACE_EVENT_INSTANT0("callback", "yes", TRACE_EVENT_SCOPE_GLOBAL);
|
| - TraceLog::GetInstance()->SetEventCallbackDisabled();
|
| - TRACE_EVENT_INSTANT0("recording", "yes", TRACE_EVENT_SCOPE_GLOBAL);
|
| - TRACE_EVENT_INSTANT0("callback", "no", TRACE_EVENT_SCOPE_GLOBAL);
|
| - EndTraceAndFlush();
|
| - TRACE_EVENT_INSTANT0("recording", "no", TRACE_EVENT_SCOPE_GLOBAL);
|
| - TRACE_EVENT_INSTANT0("callback", "no", TRACE_EVENT_SCOPE_GLOBAL);
|
| -
|
| - DropTracedMetadataRecords();
|
| - VerifyCallbackAndRecordedEvents(2, 2);
|
| -}
|
| -
|
| -// 2: Enable callback, enable recording, disable recording, disable callback.
|
| -TEST_F(TraceEventCallbackTest, TraceEventCallbackAndRecording2) {
|
| - TRACE_EVENT_INSTANT0("recording", "no", TRACE_EVENT_SCOPE_GLOBAL);
|
| - TRACE_EVENT_INSTANT0("callback", "no", TRACE_EVENT_SCOPE_GLOBAL);
|
| - TraceLog::GetInstance()->SetEventCallbackEnabled(TraceConfig("callback", ""),
|
| - Callback);
|
| - TRACE_EVENT_INSTANT0("recording", "no", TRACE_EVENT_SCOPE_GLOBAL);
|
| - TRACE_EVENT_INSTANT0("callback", "yes", TRACE_EVENT_SCOPE_GLOBAL);
|
| - TraceLog::GetInstance()->SetEnabled(TraceConfig("recording", ""),
|
| - TraceLog::RECORDING_MODE);
|
| - TRACE_EVENT_INSTANT0("recording", "yes", TRACE_EVENT_SCOPE_GLOBAL);
|
| - TRACE_EVENT_INSTANT0("callback", "yes", TRACE_EVENT_SCOPE_GLOBAL);
|
| - EndTraceAndFlush();
|
| - TRACE_EVENT_INSTANT0("recording", "no", TRACE_EVENT_SCOPE_GLOBAL);
|
| - TRACE_EVENT_INSTANT0("callback", "yes", TRACE_EVENT_SCOPE_GLOBAL);
|
| - TraceLog::GetInstance()->SetEventCallbackDisabled();
|
| - TRACE_EVENT_INSTANT0("recording", "no", TRACE_EVENT_SCOPE_GLOBAL);
|
| - TRACE_EVENT_INSTANT0("callback", "no", TRACE_EVENT_SCOPE_GLOBAL);
|
| -
|
| - DropTracedMetadataRecords();
|
| - VerifyCallbackAndRecordedEvents(3, 1);
|
| -}
|
| -
|
| -// 3: Enable recording, enable callback, disable callback, disable recording.
|
| -TEST_F(TraceEventCallbackTest, TraceEventCallbackAndRecording3) {
|
| - TRACE_EVENT_INSTANT0("recording", "no", TRACE_EVENT_SCOPE_GLOBAL);
|
| - TRACE_EVENT_INSTANT0("callback", "no", TRACE_EVENT_SCOPE_GLOBAL);
|
| - TraceLog::GetInstance()->SetEnabled(TraceConfig("recording", ""),
|
| - TraceLog::RECORDING_MODE);
|
| - TRACE_EVENT_INSTANT0("recording", "yes", TRACE_EVENT_SCOPE_GLOBAL);
|
| - TRACE_EVENT_INSTANT0("callback", "no", TRACE_EVENT_SCOPE_GLOBAL);
|
| - TraceLog::GetInstance()->SetEventCallbackEnabled(TraceConfig("callback", ""),
|
| - Callback);
|
| - TRACE_EVENT_INSTANT0("recording", "yes", TRACE_EVENT_SCOPE_GLOBAL);
|
| - TRACE_EVENT_INSTANT0("callback", "yes", TRACE_EVENT_SCOPE_GLOBAL);
|
| - TraceLog::GetInstance()->SetEventCallbackDisabled();
|
| - TRACE_EVENT_INSTANT0("recording", "yes", TRACE_EVENT_SCOPE_GLOBAL);
|
| - TRACE_EVENT_INSTANT0("callback", "no", TRACE_EVENT_SCOPE_GLOBAL);
|
| - EndTraceAndFlush();
|
| - TRACE_EVENT_INSTANT0("recording", "no", TRACE_EVENT_SCOPE_GLOBAL);
|
| - TRACE_EVENT_INSTANT0("callback", "no", TRACE_EVENT_SCOPE_GLOBAL);
|
| -
|
| - DropTracedMetadataRecords();
|
| - VerifyCallbackAndRecordedEvents(1, 3);
|
| -}
|
| -
|
| -// 4: Enable recording, enable callback, disable recording, disable callback.
|
| -TEST_F(TraceEventCallbackTest, TraceEventCallbackAndRecording4) {
|
| - TRACE_EVENT_INSTANT0("recording", "no", TRACE_EVENT_SCOPE_GLOBAL);
|
| - TRACE_EVENT_INSTANT0("callback", "no", TRACE_EVENT_SCOPE_GLOBAL);
|
| - TraceLog::GetInstance()->SetEnabled(TraceConfig("recording", ""),
|
| - TraceLog::RECORDING_MODE);
|
| - TRACE_EVENT_INSTANT0("recording", "yes", TRACE_EVENT_SCOPE_GLOBAL);
|
| - TRACE_EVENT_INSTANT0("callback", "no", TRACE_EVENT_SCOPE_GLOBAL);
|
| - TraceLog::GetInstance()->SetEventCallbackEnabled(TraceConfig("callback", ""),
|
| - Callback);
|
| - TRACE_EVENT_INSTANT0("recording", "yes", TRACE_EVENT_SCOPE_GLOBAL);
|
| - TRACE_EVENT_INSTANT0("callback", "yes", TRACE_EVENT_SCOPE_GLOBAL);
|
| - EndTraceAndFlush();
|
| - TRACE_EVENT_INSTANT0("recording", "no", TRACE_EVENT_SCOPE_GLOBAL);
|
| - TRACE_EVENT_INSTANT0("callback", "yes", TRACE_EVENT_SCOPE_GLOBAL);
|
| - TraceLog::GetInstance()->SetEventCallbackDisabled();
|
| - TRACE_EVENT_INSTANT0("recording", "no", TRACE_EVENT_SCOPE_GLOBAL);
|
| - TRACE_EVENT_INSTANT0("callback", "no", TRACE_EVENT_SCOPE_GLOBAL);
|
| -
|
| - DropTracedMetadataRecords();
|
| - VerifyCallbackAndRecordedEvents(2, 2);
|
| -}
|
| -
|
| -TEST_F(TraceEventCallbackTest, TraceEventCallbackAndRecordingDuration) {
|
| - TraceLog::GetInstance()->SetEventCallbackEnabled(
|
| - TraceConfig(kRecordAllCategoryFilter, ""), Callback);
|
| - {
|
| - TRACE_EVENT0("callback", "duration1");
|
| - TraceLog::GetInstance()->SetEnabled(
|
| - TraceConfig(kRecordAllCategoryFilter, ""), TraceLog::RECORDING_MODE);
|
| - TRACE_EVENT0("callback", "duration2");
|
| - EndTraceAndFlush();
|
| - TRACE_EVENT0("callback", "duration3");
|
| - }
|
| - TraceLog::GetInstance()->SetEventCallbackDisabled();
|
| -
|
| - ASSERT_EQ(6u, collected_events_names_.size());
|
| - VerifyCollectedEvent(0, TRACE_EVENT_PHASE_BEGIN, "callback", "duration1");
|
| - VerifyCollectedEvent(1, TRACE_EVENT_PHASE_BEGIN, "callback", "duration2");
|
| - VerifyCollectedEvent(2, TRACE_EVENT_PHASE_BEGIN, "callback", "duration3");
|
| - VerifyCollectedEvent(3, TRACE_EVENT_PHASE_END, "callback", "duration3");
|
| - VerifyCollectedEvent(4, TRACE_EVENT_PHASE_END, "callback", "duration2");
|
| - VerifyCollectedEvent(5, TRACE_EVENT_PHASE_END, "callback", "duration1");
|
| -}
|
| -
|
| TEST_F(TraceEventTestFixture, TraceBufferVectorReportFull) {
|
| TraceLog* trace_log = TraceLog::GetInstance();
|
| trace_log->SetEnabled(
|
|
|