| 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 <math.h> | 5 #include <math.h> |
| 6 #include <cstdlib> | 6 #include <cstdlib> |
| 7 | 7 |
| 8 #include "base/bind.h" | 8 #include "base/bind.h" |
| 9 #include "base/command_line.h" | 9 #include "base/command_line.h" |
| 10 #include "base/json/json_reader.h" | 10 #include "base/json/json_reader.h" |
| (...skipping 2344 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2355 const std::string& category, | 2355 const std::string& category, |
| 2356 const std::string& name) { | 2356 const std::string& name) { |
| 2357 EXPECT_EQ(phase, collected_events_phases_[i]); | 2357 EXPECT_EQ(phase, collected_events_phases_[i]); |
| 2358 EXPECT_EQ(category, collected_events_categories_[i]); | 2358 EXPECT_EQ(category, collected_events_categories_[i]); |
| 2359 EXPECT_EQ(name, collected_events_names_[i]); | 2359 EXPECT_EQ(name, collected_events_names_[i]); |
| 2360 } | 2360 } |
| 2361 | 2361 |
| 2362 std::vector<std::string> collected_events_categories_; | 2362 std::vector<std::string> collected_events_categories_; |
| 2363 std::vector<std::string> collected_events_names_; | 2363 std::vector<std::string> collected_events_names_; |
| 2364 std::vector<unsigned char> collected_events_phases_; | 2364 std::vector<unsigned char> collected_events_phases_; |
| 2365 std::vector<TraceTicks> collected_events_timestamps_; | 2365 std::vector<TimeTicks> collected_events_timestamps_; |
| 2366 | 2366 |
| 2367 static TraceEventCallbackTest* s_instance; | 2367 static TraceEventCallbackTest* s_instance; |
| 2368 static void Callback(TraceTicks timestamp, | 2368 static void Callback(TimeTicks timestamp, |
| 2369 char phase, | 2369 char phase, |
| 2370 const unsigned char* category_group_enabled, | 2370 const unsigned char* category_group_enabled, |
| 2371 const char* name, | 2371 const char* name, |
| 2372 unsigned long long id, | 2372 unsigned long long id, |
| 2373 int num_args, | 2373 int num_args, |
| 2374 const char* const arg_names[], | 2374 const char* const arg_names[], |
| 2375 const unsigned char arg_types[], | 2375 const unsigned char arg_types[], |
| 2376 const unsigned long long arg_values[], | 2376 const unsigned long long arg_values[], |
| 2377 unsigned int flags) { | 2377 unsigned int flags) { |
| 2378 s_instance->collected_events_phases_.push_back(phase); | 2378 s_instance->collected_events_phases_.push_back(phase); |
| (...skipping 165 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2544 } | 2544 } |
| 2545 | 2545 |
| 2546 TEST_F(TraceEventTestFixture, TraceBufferVectorReportFull) { | 2546 TEST_F(TraceEventTestFixture, TraceBufferVectorReportFull) { |
| 2547 TraceLog* trace_log = TraceLog::GetInstance(); | 2547 TraceLog* trace_log = TraceLog::GetInstance(); |
| 2548 trace_log->SetEnabled( | 2548 trace_log->SetEnabled( |
| 2549 TraceConfig(kRecordAllCategoryFilter, ""), TraceLog::RECORDING_MODE); | 2549 TraceConfig(kRecordAllCategoryFilter, ""), TraceLog::RECORDING_MODE); |
| 2550 trace_log->logged_events_.reset( | 2550 trace_log->logged_events_.reset( |
| 2551 TraceBuffer::CreateTraceBufferVectorOfSize(100)); | 2551 TraceBuffer::CreateTraceBufferVectorOfSize(100)); |
| 2552 do { | 2552 do { |
| 2553 TRACE_EVENT_BEGIN_WITH_ID_TID_AND_TIMESTAMP0( | 2553 TRACE_EVENT_BEGIN_WITH_ID_TID_AND_TIMESTAMP0( |
| 2554 "all", "with_timestamp", 0, 0, TraceTicks::Now().ToInternalValue()); | 2554 "all", "with_timestamp", 0, 0, TimeTicks::Now().ToInternalValue()); |
| 2555 TRACE_EVENT_END_WITH_ID_TID_AND_TIMESTAMP0( | 2555 TRACE_EVENT_END_WITH_ID_TID_AND_TIMESTAMP0( |
| 2556 "all", "with_timestamp", 0, 0, TraceTicks::Now().ToInternalValue()); | 2556 "all", "with_timestamp", 0, 0, TimeTicks::Now().ToInternalValue()); |
| 2557 } while (!trace_log->BufferIsFull()); | 2557 } while (!trace_log->BufferIsFull()); |
| 2558 | 2558 |
| 2559 EndTraceAndFlush(); | 2559 EndTraceAndFlush(); |
| 2560 | 2560 |
| 2561 const DictionaryValue* trace_full_metadata = NULL; | 2561 const DictionaryValue* trace_full_metadata = NULL; |
| 2562 | 2562 |
| 2563 trace_full_metadata = FindTraceEntry(trace_parsed_, | 2563 trace_full_metadata = FindTraceEntry(trace_parsed_, |
| 2564 "overflowed_at_ts"); | 2564 "overflowed_at_ts"); |
| 2565 std::string phase; | 2565 std::string phase; |
| 2566 double buffer_limit_reached_timestamp = 0; | 2566 double buffer_limit_reached_timestamp = 0; |
| (...skipping 352 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2919 TRACE_EVENT0("b", "duration"); | 2919 TRACE_EVENT0("b", "duration"); |
| 2920 } | 2920 } |
| 2921 | 2921 |
| 2922 EndTraceAndFlush(); | 2922 EndTraceAndFlush(); |
| 2923 logging::SetLogMessageHandler(old_log_message_handler); | 2923 logging::SetLogMessageHandler(old_log_message_handler); |
| 2924 } | 2924 } |
| 2925 | 2925 |
| 2926 TEST_F(TraceEventTestFixture, TimeOffset) { | 2926 TEST_F(TraceEventTestFixture, TimeOffset) { |
| 2927 BeginTrace(); | 2927 BeginTrace(); |
| 2928 // Let TraceLog timer start from 0. | 2928 // Let TraceLog timer start from 0. |
| 2929 TimeDelta time_offset = TraceTicks::Now() - TraceTicks(); | 2929 TimeDelta time_offset = TimeTicks::Now() - TimeTicks(); |
| 2930 TraceLog::GetInstance()->SetTimeOffset(time_offset); | 2930 TraceLog::GetInstance()->SetTimeOffset(time_offset); |
| 2931 | 2931 |
| 2932 { | 2932 { |
| 2933 TRACE_EVENT0("all", "duration1"); | 2933 TRACE_EVENT0("all", "duration1"); |
| 2934 TRACE_EVENT0("all", "duration2"); | 2934 TRACE_EVENT0("all", "duration2"); |
| 2935 } | 2935 } |
| 2936 TRACE_EVENT_BEGIN_WITH_ID_TID_AND_TIMESTAMP0( | 2936 TRACE_EVENT_BEGIN_WITH_ID_TID_AND_TIMESTAMP0( |
| 2937 "all", "with_timestamp", 0, 0, TraceTicks::Now().ToInternalValue()); | 2937 "all", "with_timestamp", 0, 0, TimeTicks::Now().ToInternalValue()); |
| 2938 TRACE_EVENT_END_WITH_ID_TID_AND_TIMESTAMP0( | 2938 TRACE_EVENT_END_WITH_ID_TID_AND_TIMESTAMP0( |
| 2939 "all", "with_timestamp", 0, 0, TraceTicks::Now().ToInternalValue()); | 2939 "all", "with_timestamp", 0, 0, TimeTicks::Now().ToInternalValue()); |
| 2940 | 2940 |
| 2941 EndTraceAndFlush(); | 2941 EndTraceAndFlush(); |
| 2942 DropTracedMetadataRecords(); | 2942 DropTracedMetadataRecords(); |
| 2943 | 2943 |
| 2944 double end_time = static_cast<double>( | 2944 double end_time = static_cast<double>( |
| 2945 (TraceTicks::Now() - time_offset).ToInternalValue()); | 2945 (TimeTicks::Now() - time_offset).ToInternalValue()); |
| 2946 double last_timestamp = 0; | 2946 double last_timestamp = 0; |
| 2947 for (size_t i = 0; i < trace_parsed_.GetSize(); ++i) { | 2947 for (size_t i = 0; i < trace_parsed_.GetSize(); ++i) { |
| 2948 const DictionaryValue* item; | 2948 const DictionaryValue* item; |
| 2949 EXPECT_TRUE(trace_parsed_.GetDictionary(i, &item)); | 2949 EXPECT_TRUE(trace_parsed_.GetDictionary(i, &item)); |
| 2950 double timestamp; | 2950 double timestamp; |
| 2951 EXPECT_TRUE(item->GetDouble("ts", ×tamp)); | 2951 EXPECT_TRUE(item->GetDouble("ts", ×tamp)); |
| 2952 EXPECT_GE(timestamp, last_timestamp); | 2952 EXPECT_GE(timestamp, last_timestamp); |
| 2953 EXPECT_LE(timestamp, end_time); | 2953 EXPECT_LE(timestamp, end_time); |
| 2954 last_timestamp = timestamp; | 2954 last_timestamp = timestamp; |
| 2955 } | 2955 } |
| (...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2993 } | 2993 } |
| 2994 | 2994 |
| 2995 TEST_F(TraceEventTestFixture, SyntheticDelayConfigurationToString) { | 2995 TEST_F(TraceEventTestFixture, SyntheticDelayConfigurationToString) { |
| 2996 const char filter[] = "DELAY(test.Delay;16;oneshot)"; | 2996 const char filter[] = "DELAY(test.Delay;16;oneshot)"; |
| 2997 TraceConfig config(filter, ""); | 2997 TraceConfig config(filter, ""); |
| 2998 EXPECT_EQ(filter, config.ToCategoryFilterString()); | 2998 EXPECT_EQ(filter, config.ToCategoryFilterString()); |
| 2999 } | 2999 } |
| 3000 | 3000 |
| 3001 } // namespace trace_event | 3001 } // namespace trace_event |
| 3002 } // namespace base | 3002 } // namespace base |
| OLD | NEW |