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/debug/trace_event_unittest.h" | 5 #include "base/debug/trace_event_unittest.h" |
6 | 6 |
7 #include <math.h> | 7 #include <math.h> |
8 #include <cstdlib> | 8 #include <cstdlib> |
9 | 9 |
10 #include "base/bind.h" | 10 #include "base/bind.h" |
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
58 bool has_more_events); | 58 bool has_more_events); |
59 void OnWatchEventMatched() { | 59 void OnWatchEventMatched() { |
60 ++event_watch_notification_; | 60 ++event_watch_notification_; |
61 } | 61 } |
62 DictionaryValue* FindMatchingTraceEntry(const JsonKeyValue* key_values); | 62 DictionaryValue* FindMatchingTraceEntry(const JsonKeyValue* key_values); |
63 DictionaryValue* FindNamePhase(const char* name, const char* phase); | 63 DictionaryValue* FindNamePhase(const char* name, const char* phase); |
64 DictionaryValue* FindNamePhaseKeyValue(const char* name, | 64 DictionaryValue* FindNamePhaseKeyValue(const char* name, |
65 const char* phase, | 65 const char* phase, |
66 const char* key, | 66 const char* key, |
67 const char* value); | 67 const char* value); |
| 68 void DropTracedMetadataRecords(); |
68 bool FindMatchingValue(const char* key, | 69 bool FindMatchingValue(const char* key, |
69 const char* value); | 70 const char* value); |
70 bool FindNonMatchingValue(const char* key, | 71 bool FindNonMatchingValue(const char* key, |
71 const char* value); | 72 const char* value); |
72 void Clear() { | 73 void Clear() { |
73 trace_parsed_.Clear(); | 74 trace_parsed_.Clear(); |
74 json_output_.json_output.clear(); | 75 json_output_.json_output.clear(); |
75 } | 76 } |
76 | 77 |
77 void BeginTrace() { | 78 void BeginTrace() { |
(...skipping 166 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
244 if (!value || value->GetType() != Value::TYPE_DICTIONARY) | 245 if (!value || value->GetType() != Value::TYPE_DICTIONARY) |
245 continue; | 246 continue; |
246 DictionaryValue* dict = static_cast<DictionaryValue*>(value); | 247 DictionaryValue* dict = static_cast<DictionaryValue*>(value); |
247 | 248 |
248 if (IsAllKeyValueInDict(key_values, dict)) | 249 if (IsAllKeyValueInDict(key_values, dict)) |
249 return dict; | 250 return dict; |
250 } | 251 } |
251 return NULL; | 252 return NULL; |
252 } | 253 } |
253 | 254 |
| 255 void TraceEventTestFixture::DropTracedMetadataRecords() { |
| 256 |
| 257 scoped_ptr<ListValue> old_trace_parsed(trace_parsed_.DeepCopy()); |
| 258 size_t old_trace_parsed_size = old_trace_parsed->GetSize(); |
| 259 trace_parsed_.Clear(); |
| 260 |
| 261 for (size_t i = 0; i < old_trace_parsed_size; i++) { |
| 262 Value* value = NULL; |
| 263 old_trace_parsed->Get(i, &value); |
| 264 if (!value || value->GetType() != Value::TYPE_DICTIONARY) { |
| 265 trace_parsed_.Append(value->DeepCopy()); |
| 266 continue; |
| 267 } |
| 268 DictionaryValue* dict = static_cast<DictionaryValue*>(value); |
| 269 std::string tmp; |
| 270 if(dict->GetString("ph", &tmp) && tmp == "M") |
| 271 continue; |
| 272 |
| 273 trace_parsed_.Append(value->DeepCopy()); |
| 274 } |
| 275 } |
| 276 |
254 DictionaryValue* TraceEventTestFixture::FindNamePhase(const char* name, | 277 DictionaryValue* TraceEventTestFixture::FindNamePhase(const char* name, |
255 const char* phase) { | 278 const char* phase) { |
256 JsonKeyValue key_values[] = { | 279 JsonKeyValue key_values[] = { |
257 {"name", name, IS_EQUAL}, | 280 {"name", name, IS_EQUAL}, |
258 {"ph", phase, IS_EQUAL}, | 281 {"ph", phase, IS_EQUAL}, |
259 {0, 0, IS_EQUAL} | 282 {0, 0, IS_EQUAL} |
260 }; | 283 }; |
261 return FindMatchingTraceEntry(key_values); | 284 return FindMatchingTraceEntry(key_values); |
262 } | 285 } |
263 | 286 |
(...skipping 831 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1095 | 1118 |
1096 // Include nonexistent category -> no events | 1119 // Include nonexistent category -> no events |
1097 Clear(); | 1120 Clear(); |
1098 included_categories.clear(); | 1121 included_categories.clear(); |
1099 TraceLog::GetInstance()->SetEnabled(CategoryFilter("not_found823564786"), | 1122 TraceLog::GetInstance()->SetEnabled(CategoryFilter("not_found823564786"), |
1100 base::debug::TraceLog::RECORDING_MODE, | 1123 base::debug::TraceLog::RECORDING_MODE, |
1101 TraceLog::RECORD_UNTIL_FULL); | 1124 TraceLog::RECORD_UNTIL_FULL); |
1102 TRACE_EVENT_INSTANT0("cat1", "name", TRACE_EVENT_SCOPE_THREAD); | 1125 TRACE_EVENT_INSTANT0("cat1", "name", TRACE_EVENT_SCOPE_THREAD); |
1103 TRACE_EVENT_INSTANT0("cat2", "name", TRACE_EVENT_SCOPE_THREAD); | 1126 TRACE_EVENT_INSTANT0("cat2", "name", TRACE_EVENT_SCOPE_THREAD); |
1104 EndTraceAndFlush(); | 1127 EndTraceAndFlush(); |
| 1128 DropTracedMetadataRecords(); |
1105 EXPECT_TRUE(trace_parsed_.empty()); | 1129 EXPECT_TRUE(trace_parsed_.empty()); |
1106 | 1130 |
1107 // Include existent category -> only events of that category | 1131 // Include existent category -> only events of that category |
1108 Clear(); | 1132 Clear(); |
1109 included_categories.clear(); | 1133 included_categories.clear(); |
1110 TraceLog::GetInstance()->SetEnabled(CategoryFilter("inc"), | 1134 TraceLog::GetInstance()->SetEnabled(CategoryFilter("inc"), |
1111 base::debug::TraceLog::RECORDING_MODE, | 1135 base::debug::TraceLog::RECORDING_MODE, |
1112 TraceLog::RECORD_UNTIL_FULL); | 1136 TraceLog::RECORD_UNTIL_FULL); |
1113 TRACE_EVENT_INSTANT0("inc", "name", TRACE_EVENT_SCOPE_THREAD); | 1137 TRACE_EVENT_INSTANT0("inc", "name", TRACE_EVENT_SCOPE_THREAD); |
1114 TRACE_EVENT_INSTANT0("inc2", "name", TRACE_EVENT_SCOPE_THREAD); | 1138 TRACE_EVENT_INSTANT0("inc2", "name", TRACE_EVENT_SCOPE_THREAD); |
1115 EndTraceAndFlush(); | 1139 EndTraceAndFlush(); |
| 1140 DropTracedMetadataRecords(); |
1116 EXPECT_TRUE(FindMatchingValue("cat", "inc")); | 1141 EXPECT_TRUE(FindMatchingValue("cat", "inc")); |
1117 EXPECT_FALSE(FindNonMatchingValue("cat", "inc")); | 1142 EXPECT_FALSE(FindNonMatchingValue("cat", "inc")); |
1118 | 1143 |
1119 // Include existent wildcard -> all categories matching wildcard | 1144 // Include existent wildcard -> all categories matching wildcard |
1120 Clear(); | 1145 Clear(); |
1121 included_categories.clear(); | 1146 included_categories.clear(); |
1122 TraceLog::GetInstance()->SetEnabled( | 1147 TraceLog::GetInstance()->SetEnabled( |
1123 CategoryFilter("inc_wildcard_*,inc_wildchar_?_end"), | 1148 CategoryFilter("inc_wildcard_*,inc_wildchar_?_end"), |
1124 base::debug::TraceLog::RECORDING_MODE, | 1149 base::debug::TraceLog::RECORDING_MODE, |
1125 TraceLog::RECORD_UNTIL_FULL); | 1150 TraceLog::RECORD_UNTIL_FULL); |
(...skipping 1155 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2281 TraceLog::RECORD_UNTIL_FULL); | 2306 TraceLog::RECORD_UNTIL_FULL); |
2282 TRACE_EVENT_INSTANT0("recording", "yes", TRACE_EVENT_SCOPE_GLOBAL); | 2307 TRACE_EVENT_INSTANT0("recording", "yes", TRACE_EVENT_SCOPE_GLOBAL); |
2283 TRACE_EVENT_INSTANT0("callback", "yes", TRACE_EVENT_SCOPE_GLOBAL); | 2308 TRACE_EVENT_INSTANT0("callback", "yes", TRACE_EVENT_SCOPE_GLOBAL); |
2284 TraceLog::GetInstance()->SetEventCallbackDisabled(); | 2309 TraceLog::GetInstance()->SetEventCallbackDisabled(); |
2285 TRACE_EVENT_INSTANT0("recording", "yes", TRACE_EVENT_SCOPE_GLOBAL); | 2310 TRACE_EVENT_INSTANT0("recording", "yes", TRACE_EVENT_SCOPE_GLOBAL); |
2286 TRACE_EVENT_INSTANT0("callback", "no", TRACE_EVENT_SCOPE_GLOBAL); | 2311 TRACE_EVENT_INSTANT0("callback", "no", TRACE_EVENT_SCOPE_GLOBAL); |
2287 EndTraceAndFlush(); | 2312 EndTraceAndFlush(); |
2288 TRACE_EVENT_INSTANT0("recording", "no", TRACE_EVENT_SCOPE_GLOBAL); | 2313 TRACE_EVENT_INSTANT0("recording", "no", TRACE_EVENT_SCOPE_GLOBAL); |
2289 TRACE_EVENT_INSTANT0("callback", "no", TRACE_EVENT_SCOPE_GLOBAL); | 2314 TRACE_EVENT_INSTANT0("callback", "no", TRACE_EVENT_SCOPE_GLOBAL); |
2290 | 2315 |
| 2316 DropTracedMetadataRecords(); |
2291 VerifyCallbackAndRecordedEvents(2, 2); | 2317 VerifyCallbackAndRecordedEvents(2, 2); |
2292 } | 2318 } |
2293 | 2319 |
2294 // 2: Enable callback, enable recording, disable recording, disable callback. | 2320 // 2: Enable callback, enable recording, disable recording, disable callback. |
2295 TEST_F(TraceEventCallbackTest, TraceEventCallbackAndRecording2) { | 2321 TEST_F(TraceEventCallbackTest, TraceEventCallbackAndRecording2) { |
2296 TRACE_EVENT_INSTANT0("recording", "no", TRACE_EVENT_SCOPE_GLOBAL); | 2322 TRACE_EVENT_INSTANT0("recording", "no", TRACE_EVENT_SCOPE_GLOBAL); |
2297 TRACE_EVENT_INSTANT0("callback", "no", TRACE_EVENT_SCOPE_GLOBAL); | 2323 TRACE_EVENT_INSTANT0("callback", "no", TRACE_EVENT_SCOPE_GLOBAL); |
2298 TraceLog::GetInstance()->SetEventCallbackEnabled(CategoryFilter("callback"), | 2324 TraceLog::GetInstance()->SetEventCallbackEnabled(CategoryFilter("callback"), |
2299 Callback); | 2325 Callback); |
2300 TRACE_EVENT_INSTANT0("recording", "no", TRACE_EVENT_SCOPE_GLOBAL); | 2326 TRACE_EVENT_INSTANT0("recording", "no", TRACE_EVENT_SCOPE_GLOBAL); |
2301 TRACE_EVENT_INSTANT0("callback", "yes", TRACE_EVENT_SCOPE_GLOBAL); | 2327 TRACE_EVENT_INSTANT0("callback", "yes", TRACE_EVENT_SCOPE_GLOBAL); |
2302 TraceLog::GetInstance()->SetEnabled(CategoryFilter("recording"), | 2328 TraceLog::GetInstance()->SetEnabled(CategoryFilter("recording"), |
2303 base::debug::TraceLog::RECORDING_MODE, | 2329 base::debug::TraceLog::RECORDING_MODE, |
2304 TraceLog::RECORD_UNTIL_FULL); | 2330 TraceLog::RECORD_UNTIL_FULL); |
2305 TRACE_EVENT_INSTANT0("recording", "yes", TRACE_EVENT_SCOPE_GLOBAL); | 2331 TRACE_EVENT_INSTANT0("recording", "yes", TRACE_EVENT_SCOPE_GLOBAL); |
2306 TRACE_EVENT_INSTANT0("callback", "yes", TRACE_EVENT_SCOPE_GLOBAL); | 2332 TRACE_EVENT_INSTANT0("callback", "yes", TRACE_EVENT_SCOPE_GLOBAL); |
2307 EndTraceAndFlush(); | 2333 EndTraceAndFlush(); |
2308 TRACE_EVENT_INSTANT0("recording", "no", TRACE_EVENT_SCOPE_GLOBAL); | 2334 TRACE_EVENT_INSTANT0("recording", "no", TRACE_EVENT_SCOPE_GLOBAL); |
2309 TRACE_EVENT_INSTANT0("callback", "yes", TRACE_EVENT_SCOPE_GLOBAL); | 2335 TRACE_EVENT_INSTANT0("callback", "yes", TRACE_EVENT_SCOPE_GLOBAL); |
2310 TraceLog::GetInstance()->SetEventCallbackDisabled(); | 2336 TraceLog::GetInstance()->SetEventCallbackDisabled(); |
2311 TRACE_EVENT_INSTANT0("recording", "no", TRACE_EVENT_SCOPE_GLOBAL); | 2337 TRACE_EVENT_INSTANT0("recording", "no", TRACE_EVENT_SCOPE_GLOBAL); |
2312 TRACE_EVENT_INSTANT0("callback", "no", TRACE_EVENT_SCOPE_GLOBAL); | 2338 TRACE_EVENT_INSTANT0("callback", "no", TRACE_EVENT_SCOPE_GLOBAL); |
2313 | 2339 |
| 2340 DropTracedMetadataRecords(); |
2314 VerifyCallbackAndRecordedEvents(3, 1); | 2341 VerifyCallbackAndRecordedEvents(3, 1); |
2315 } | 2342 } |
2316 | 2343 |
2317 // 3: Enable recording, enable callback, disable callback, disable recording. | 2344 // 3: Enable recording, enable callback, disable callback, disable recording. |
2318 TEST_F(TraceEventCallbackTest, TraceEventCallbackAndRecording3) { | 2345 TEST_F(TraceEventCallbackTest, TraceEventCallbackAndRecording3) { |
2319 TRACE_EVENT_INSTANT0("recording", "no", TRACE_EVENT_SCOPE_GLOBAL); | 2346 TRACE_EVENT_INSTANT0("recording", "no", TRACE_EVENT_SCOPE_GLOBAL); |
2320 TRACE_EVENT_INSTANT0("callback", "no", TRACE_EVENT_SCOPE_GLOBAL); | 2347 TRACE_EVENT_INSTANT0("callback", "no", TRACE_EVENT_SCOPE_GLOBAL); |
2321 TraceLog::GetInstance()->SetEnabled(CategoryFilter("recording"), | 2348 TraceLog::GetInstance()->SetEnabled(CategoryFilter("recording"), |
2322 base::debug::TraceLog::RECORDING_MODE, | 2349 base::debug::TraceLog::RECORDING_MODE, |
2323 TraceLog::RECORD_UNTIL_FULL); | 2350 TraceLog::RECORD_UNTIL_FULL); |
2324 TRACE_EVENT_INSTANT0("recording", "yes", TRACE_EVENT_SCOPE_GLOBAL); | 2351 TRACE_EVENT_INSTANT0("recording", "yes", TRACE_EVENT_SCOPE_GLOBAL); |
2325 TRACE_EVENT_INSTANT0("callback", "no", TRACE_EVENT_SCOPE_GLOBAL); | 2352 TRACE_EVENT_INSTANT0("callback", "no", TRACE_EVENT_SCOPE_GLOBAL); |
2326 TraceLog::GetInstance()->SetEventCallbackEnabled(CategoryFilter("callback"), | 2353 TraceLog::GetInstance()->SetEventCallbackEnabled(CategoryFilter("callback"), |
2327 Callback); | 2354 Callback); |
2328 TRACE_EVENT_INSTANT0("recording", "yes", TRACE_EVENT_SCOPE_GLOBAL); | 2355 TRACE_EVENT_INSTANT0("recording", "yes", TRACE_EVENT_SCOPE_GLOBAL); |
2329 TRACE_EVENT_INSTANT0("callback", "yes", TRACE_EVENT_SCOPE_GLOBAL); | 2356 TRACE_EVENT_INSTANT0("callback", "yes", TRACE_EVENT_SCOPE_GLOBAL); |
2330 TraceLog::GetInstance()->SetEventCallbackDisabled(); | 2357 TraceLog::GetInstance()->SetEventCallbackDisabled(); |
2331 TRACE_EVENT_INSTANT0("recording", "yes", TRACE_EVENT_SCOPE_GLOBAL); | 2358 TRACE_EVENT_INSTANT0("recording", "yes", TRACE_EVENT_SCOPE_GLOBAL); |
2332 TRACE_EVENT_INSTANT0("callback", "no", TRACE_EVENT_SCOPE_GLOBAL); | 2359 TRACE_EVENT_INSTANT0("callback", "no", TRACE_EVENT_SCOPE_GLOBAL); |
2333 EndTraceAndFlush(); | 2360 EndTraceAndFlush(); |
2334 TRACE_EVENT_INSTANT0("recording", "no", TRACE_EVENT_SCOPE_GLOBAL); | 2361 TRACE_EVENT_INSTANT0("recording", "no", TRACE_EVENT_SCOPE_GLOBAL); |
2335 TRACE_EVENT_INSTANT0("callback", "no", TRACE_EVENT_SCOPE_GLOBAL); | 2362 TRACE_EVENT_INSTANT0("callback", "no", TRACE_EVENT_SCOPE_GLOBAL); |
2336 | 2363 |
| 2364 DropTracedMetadataRecords(); |
2337 VerifyCallbackAndRecordedEvents(1, 3); | 2365 VerifyCallbackAndRecordedEvents(1, 3); |
2338 } | 2366 } |
2339 | 2367 |
2340 // 4: Enable recording, enable callback, disable recording, disable callback. | 2368 // 4: Enable recording, enable callback, disable recording, disable callback. |
2341 TEST_F(TraceEventCallbackTest, TraceEventCallbackAndRecording4) { | 2369 TEST_F(TraceEventCallbackTest, TraceEventCallbackAndRecording4) { |
2342 TRACE_EVENT_INSTANT0("recording", "no", TRACE_EVENT_SCOPE_GLOBAL); | 2370 TRACE_EVENT_INSTANT0("recording", "no", TRACE_EVENT_SCOPE_GLOBAL); |
2343 TRACE_EVENT_INSTANT0("callback", "no", TRACE_EVENT_SCOPE_GLOBAL); | 2371 TRACE_EVENT_INSTANT0("callback", "no", TRACE_EVENT_SCOPE_GLOBAL); |
2344 TraceLog::GetInstance()->SetEnabled(CategoryFilter("recording"), | 2372 TraceLog::GetInstance()->SetEnabled(CategoryFilter("recording"), |
2345 base::debug::TraceLog::RECORDING_MODE, | 2373 base::debug::TraceLog::RECORDING_MODE, |
2346 TraceLog::RECORD_UNTIL_FULL); | 2374 TraceLog::RECORD_UNTIL_FULL); |
2347 TRACE_EVENT_INSTANT0("recording", "yes", TRACE_EVENT_SCOPE_GLOBAL); | 2375 TRACE_EVENT_INSTANT0("recording", "yes", TRACE_EVENT_SCOPE_GLOBAL); |
2348 TRACE_EVENT_INSTANT0("callback", "no", TRACE_EVENT_SCOPE_GLOBAL); | 2376 TRACE_EVENT_INSTANT0("callback", "no", TRACE_EVENT_SCOPE_GLOBAL); |
2349 TraceLog::GetInstance()->SetEventCallbackEnabled(CategoryFilter("callback"), | 2377 TraceLog::GetInstance()->SetEventCallbackEnabled(CategoryFilter("callback"), |
2350 Callback); | 2378 Callback); |
2351 TRACE_EVENT_INSTANT0("recording", "yes", TRACE_EVENT_SCOPE_GLOBAL); | 2379 TRACE_EVENT_INSTANT0("recording", "yes", TRACE_EVENT_SCOPE_GLOBAL); |
2352 TRACE_EVENT_INSTANT0("callback", "yes", TRACE_EVENT_SCOPE_GLOBAL); | 2380 TRACE_EVENT_INSTANT0("callback", "yes", TRACE_EVENT_SCOPE_GLOBAL); |
2353 EndTraceAndFlush(); | 2381 EndTraceAndFlush(); |
2354 TRACE_EVENT_INSTANT0("recording", "no", TRACE_EVENT_SCOPE_GLOBAL); | 2382 TRACE_EVENT_INSTANT0("recording", "no", TRACE_EVENT_SCOPE_GLOBAL); |
2355 TRACE_EVENT_INSTANT0("callback", "yes", TRACE_EVENT_SCOPE_GLOBAL); | 2383 TRACE_EVENT_INSTANT0("callback", "yes", TRACE_EVENT_SCOPE_GLOBAL); |
2356 TraceLog::GetInstance()->SetEventCallbackDisabled(); | 2384 TraceLog::GetInstance()->SetEventCallbackDisabled(); |
2357 TRACE_EVENT_INSTANT0("recording", "no", TRACE_EVENT_SCOPE_GLOBAL); | 2385 TRACE_EVENT_INSTANT0("recording", "no", TRACE_EVENT_SCOPE_GLOBAL); |
2358 TRACE_EVENT_INSTANT0("callback", "no", TRACE_EVENT_SCOPE_GLOBAL); | 2386 TRACE_EVENT_INSTANT0("callback", "no", TRACE_EVENT_SCOPE_GLOBAL); |
2359 | 2387 |
| 2388 DropTracedMetadataRecords(); |
2360 VerifyCallbackAndRecordedEvents(2, 2); | 2389 VerifyCallbackAndRecordedEvents(2, 2); |
2361 } | 2390 } |
2362 | 2391 |
2363 TEST_F(TraceEventCallbackTest, TraceEventCallbackAndRecordingDuration) { | 2392 TEST_F(TraceEventCallbackTest, TraceEventCallbackAndRecordingDuration) { |
2364 TraceLog::GetInstance()->SetEventCallbackEnabled(CategoryFilter("*"), | 2393 TraceLog::GetInstance()->SetEventCallbackEnabled(CategoryFilter("*"), |
2365 Callback); | 2394 Callback); |
2366 { | 2395 { |
2367 TRACE_EVENT0("callback", "duration1"); | 2396 TRACE_EVENT0("callback", "duration1"); |
2368 TraceLog::GetInstance()->SetEnabled(CategoryFilter("*"), | 2397 TraceLog::GetInstance()->SetEnabled(CategoryFilter("*"), |
2369 base::debug::TraceLog::RECORDING_MODE, | 2398 base::debug::TraceLog::RECORDING_MODE, |
(...skipping 410 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2780 TRACE_EVENT0("all", "duration2"); | 2809 TRACE_EVENT0("all", "duration2"); |
2781 } | 2810 } |
2782 TRACE_EVENT_BEGIN_WITH_ID_TID_AND_TIMESTAMP0( | 2811 TRACE_EVENT_BEGIN_WITH_ID_TID_AND_TIMESTAMP0( |
2783 "all", "with_timestamp", 0, 0, | 2812 "all", "with_timestamp", 0, 0, |
2784 TimeTicks::NowFromSystemTraceTime().ToInternalValue()); | 2813 TimeTicks::NowFromSystemTraceTime().ToInternalValue()); |
2785 TRACE_EVENT_END_WITH_ID_TID_AND_TIMESTAMP0( | 2814 TRACE_EVENT_END_WITH_ID_TID_AND_TIMESTAMP0( |
2786 "all", "with_timestamp", 0, 0, | 2815 "all", "with_timestamp", 0, 0, |
2787 TimeTicks::NowFromSystemTraceTime().ToInternalValue()); | 2816 TimeTicks::NowFromSystemTraceTime().ToInternalValue()); |
2788 | 2817 |
2789 EndTraceAndFlush(); | 2818 EndTraceAndFlush(); |
| 2819 DropTracedMetadataRecords(); |
2790 | 2820 |
2791 double end_time = static_cast<double>( | 2821 double end_time = static_cast<double>( |
2792 (TimeTicks::NowFromSystemTraceTime() - time_offset).ToInternalValue()); | 2822 (TimeTicks::NowFromSystemTraceTime() - time_offset).ToInternalValue()); |
2793 double last_timestamp = 0; | 2823 double last_timestamp = 0; |
2794 for (size_t i = 0; i < trace_parsed_.GetSize(); ++i) { | 2824 for (size_t i = 0; i < trace_parsed_.GetSize(); ++i) { |
2795 const DictionaryValue* item; | 2825 const DictionaryValue* item; |
2796 EXPECT_TRUE(trace_parsed_.GetDictionary(i, &item)); | 2826 EXPECT_TRUE(trace_parsed_.GetDictionary(i, &item)); |
2797 double timestamp; | 2827 double timestamp; |
2798 EXPECT_TRUE(item->GetDouble("ts", ×tamp)); | 2828 EXPECT_TRUE(item->GetDouble("ts", ×tamp)); |
2799 EXPECT_GE(timestamp, last_timestamp); | 2829 EXPECT_GE(timestamp, last_timestamp); |
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2840 } | 2870 } |
2841 | 2871 |
2842 TEST_F(TraceEventTestFixture, SyntheticDelayConfigurationToString) { | 2872 TEST_F(TraceEventTestFixture, SyntheticDelayConfigurationToString) { |
2843 const char config[] = "DELAY(test.Delay;16;oneshot)"; | 2873 const char config[] = "DELAY(test.Delay;16;oneshot)"; |
2844 CategoryFilter filter(config); | 2874 CategoryFilter filter(config); |
2845 EXPECT_EQ(config, filter.ToString()); | 2875 EXPECT_EQ(config, filter.ToString()); |
2846 } | 2876 } |
2847 | 2877 |
2848 } // namespace debug | 2878 } // namespace debug |
2849 } // namespace base | 2879 } // namespace base |
OLD | NEW |