Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(229)

Side by Side Diff: base/debug/trace_event_unittest.cc

Issue 9155024: Allow tracing in third_party libraries (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: win compile Created 8 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « base/debug/trace_event.cc ('k') | base/debug/trace_event_win.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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.h" 5 #include "base/debug/trace_event.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/command_line.h" 8 #include "base/command_line.h"
9 #include "base/json/json_reader.h" 9 #include "base/json/json_reader.h"
10 #include "base/json/json_writer.h" 10 #include "base/json/json_writer.h"
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after
92 const scoped_refptr<TraceLog::RefCountedString>& events_str) { 92 const scoped_refptr<TraceLog::RefCountedString>& events_str) {
93 AutoLock lock(lock_); 93 AutoLock lock(lock_);
94 json_output_.json_output.clear(); 94 json_output_.json_output.clear();
95 trace_buffer_.Start(); 95 trace_buffer_.Start();
96 trace_buffer_.AddFragment(events_str->data); 96 trace_buffer_.AddFragment(events_str->data);
97 trace_buffer_.Finish(); 97 trace_buffer_.Finish();
98 98
99 scoped_ptr<Value> root; 99 scoped_ptr<Value> root;
100 root.reset(base::JSONReader::Read(json_output_.json_output, false)); 100 root.reset(base::JSONReader::Read(json_output_.json_output, false));
101 101
102 if (!root.get()) {
103 LOG(ERROR) << json_output_.json_output;
104 }
105
102 ListValue* root_list = NULL; 106 ListValue* root_list = NULL;
103 ASSERT_TRUE(root.get()); 107 ASSERT_TRUE(root.get());
104 ASSERT_TRUE(root->GetAsList(&root_list)); 108 ASSERT_TRUE(root->GetAsList(&root_list));
105 109
106 // Move items into our aggregate collection 110 // Move items into our aggregate collection
107 while (root_list->GetSize()) { 111 while (root_list->GetSize()) {
108 Value* item = NULL; 112 Value* item = NULL;
109 root_list->Remove(0, &item); 113 root_list->Remove(0, &item);
110 trace_parsed_.Append(item); 114 trace_parsed_.Append(item);
111 } 115 }
(...skipping 191 matching lines...) Expand 10 before | Expand all | Expand 10 after
303 TRACE_EVENT_BEGIN2("all", "TRACE_EVENT_BEGIN2 call", 307 TRACE_EVENT_BEGIN2("all", "TRACE_EVENT_BEGIN2 call",
304 "name1", "value1", 308 "name1", "value1",
305 "name2", "value2"); 309 "name2", "value2");
306 310
307 TRACE_EVENT_END0("all", "TRACE_EVENT_END0 call"); 311 TRACE_EVENT_END0("all", "TRACE_EVENT_END0 call");
308 TRACE_EVENT_END1("all", "TRACE_EVENT_END1 call", "name1", "value1"); 312 TRACE_EVENT_END1("all", "TRACE_EVENT_END1 call", "name1", "value1");
309 TRACE_EVENT_END2("all", "TRACE_EVENT_END2 call", 313 TRACE_EVENT_END2("all", "TRACE_EVENT_END2 call",
310 "name1", "value1", 314 "name1", "value1",
311 "name2", "value2"); 315 "name2", "value2");
312 316
317 TRACE_EVENT_IF_LONGER_THAN0(0, "all", "TRACE_EVENT_IF_LONGER_THAN0 call");
318 TRACE_EVENT_IF_LONGER_THAN1(0, "all", "TRACE_EVENT_IF_LONGER_THAN1 call",
319 "name1", "value1");
320 TRACE_EVENT_IF_LONGER_THAN2(0, "all", "TRACE_EVENT_IF_LONGER_THAN2 call",
321 "name1", "value1",
322 "name2", "value2");
323
324 TRACE_EVENT_START0("all", "TRACE_EVENT_START0 call", 5);
325 TRACE_EVENT_START1("all", "TRACE_EVENT_START1 call", 5,
326 "name1", "value1");
327 TRACE_EVENT_START2("all", "TRACE_EVENT_START2 call", 5,
328 "name1", "value1",
329 "name2", "value2");
330
331 TRACE_EVENT_FINISH0("all", "TRACE_EVENT_FINISH0 call", 5);
332 TRACE_EVENT_FINISH1("all", "TRACE_EVENT_FINISH1 call", 5,
333 "name1", "value1");
334 TRACE_EVENT_FINISH2("all", "TRACE_EVENT_FINISH2 call", 5,
335 "name1", "value1",
336 "name2", "value2");
337
338 TRACE_EVENT_BEGIN_ETW("TRACE_EVENT_BEGIN_ETW0 call", 5, NULL);
339 TRACE_EVENT_BEGIN_ETW("TRACE_EVENT_BEGIN_ETW1 call", 5, "value");
340 TRACE_EVENT_END_ETW("TRACE_EVENT_END_ETW0 call", 5, NULL);
341 TRACE_EVENT_END_ETW("TRACE_EVENT_END_ETW1 call", 5, "value");
342 TRACE_EVENT_INSTANT_ETW("TRACE_EVENT_INSTANT_ETW0 call", 5, NULL);
343 TRACE_EVENT_INSTANT_ETW("TRACE_EVENT_INSTANT_ETW1 call", 5, "value");
344
313 TRACE_COUNTER1("all", "TRACE_COUNTER1 call", 31415); 345 TRACE_COUNTER1("all", "TRACE_COUNTER1 call", 31415);
314 TRACE_COUNTER2("all", "TRACE_COUNTER2 call", 346 TRACE_COUNTER2("all", "TRACE_COUNTER2 call",
315 "a", 30000, 347 "a", 30000,
316 "b", 1415); 348 "b", 1415);
317 349
318 TRACE_COUNTER_ID1("all", "TRACE_COUNTER_ID1 call", 0x319009, 31415); 350 TRACE_COUNTER_ID1("all", "TRACE_COUNTER_ID1 call", 0x319009, 31415);
319 TRACE_COUNTER_ID2("all", "TRACE_COUNTER_ID2 call", 0x319009, 351 TRACE_COUNTER_ID2("all", "TRACE_COUNTER_ID2 call", 0x319009,
320 "a", 30000, "b", 1415); 352 "a", 30000, "b", 1415);
321 } // Scope close causes TRACE_EVENT0 etc to send their END events. 353 } // Scope close causes TRACE_EVENT0 etc to send their END events.
322 354
(...skipping 28 matching lines...) Expand all
351 std::string ph_end; 383 std::string ph_end;
352 EXPECT_TRUE((item = FindTraceEntry(trace_parsed, "TRACE_EVENT0 call"))); 384 EXPECT_TRUE((item = FindTraceEntry(trace_parsed, "TRACE_EVENT0 call")));
353 EXPECT_TRUE((item && item->GetString("ph", &ph_begin))); 385 EXPECT_TRUE((item && item->GetString("ph", &ph_begin)));
354 EXPECT_TRUE((item = FindTraceEntry(trace_parsed, "TRACE_EVENT0 call", 386 EXPECT_TRUE((item = FindTraceEntry(trace_parsed, "TRACE_EVENT0 call",
355 item))); 387 item)));
356 EXPECT_TRUE((item && item->GetString("ph", &ph_end))); 388 EXPECT_TRUE((item && item->GetString("ph", &ph_end)));
357 EXPECT_EQ("B", ph_begin); 389 EXPECT_EQ("B", ph_begin);
358 EXPECT_EQ("E", ph_end); 390 EXPECT_EQ("E", ph_end);
359 } 391 }
360 EXPECT_FIND_("TRACE_EVENT1 call"); 392 EXPECT_FIND_("TRACE_EVENT1 call");
393 EXPECT_SUB_FIND_("name1");
394 EXPECT_SUB_FIND_("value1");
361 EXPECT_FIND_("TRACE_EVENT2 call"); 395 EXPECT_FIND_("TRACE_EVENT2 call");
362 EXPECT_SUB_FIND_("name1"); 396 EXPECT_SUB_FIND_("name1");
363 EXPECT_SUB_FIND_("\"value1\""); 397 EXPECT_SUB_FIND_("\"value1\"");
364 EXPECT_SUB_FIND_("name2"); 398 EXPECT_SUB_FIND_("name2");
365 EXPECT_SUB_FIND_("value\\2"); 399 EXPECT_SUB_FIND_("value\\2");
400
366 EXPECT_FIND_("TRACE_EVENT_INSTANT0 call"); 401 EXPECT_FIND_("TRACE_EVENT_INSTANT0 call");
367 EXPECT_FIND_("TRACE_EVENT_INSTANT1 call"); 402 EXPECT_FIND_("TRACE_EVENT_INSTANT1 call");
403 EXPECT_SUB_FIND_("name1");
404 EXPECT_SUB_FIND_("value1");
368 EXPECT_FIND_("TRACE_EVENT_INSTANT2 call"); 405 EXPECT_FIND_("TRACE_EVENT_INSTANT2 call");
369 EXPECT_SUB_FIND_("name1"); 406 EXPECT_SUB_FIND_("name1");
370 EXPECT_SUB_FIND_("value1"); 407 EXPECT_SUB_FIND_("value1");
371 EXPECT_SUB_FIND_("name2"); 408 EXPECT_SUB_FIND_("name2");
372 EXPECT_SUB_FIND_("value2"); 409 EXPECT_SUB_FIND_("value2");
410
373 EXPECT_FIND_("TRACE_EVENT_BEGIN0 call"); 411 EXPECT_FIND_("TRACE_EVENT_BEGIN0 call");
374 EXPECT_FIND_("TRACE_EVENT_BEGIN1 call"); 412 EXPECT_FIND_("TRACE_EVENT_BEGIN1 call");
413 EXPECT_SUB_FIND_("name1");
414 EXPECT_SUB_FIND_("value1");
375 EXPECT_FIND_("TRACE_EVENT_BEGIN2 call"); 415 EXPECT_FIND_("TRACE_EVENT_BEGIN2 call");
376 EXPECT_SUB_FIND_("name1"); 416 EXPECT_SUB_FIND_("name1");
377 EXPECT_SUB_FIND_("value1"); 417 EXPECT_SUB_FIND_("value1");
378 EXPECT_SUB_FIND_("name2"); 418 EXPECT_SUB_FIND_("name2");
379 EXPECT_SUB_FIND_("value2"); 419 EXPECT_SUB_FIND_("value2");
420
380 EXPECT_FIND_("TRACE_EVENT_END0 call"); 421 EXPECT_FIND_("TRACE_EVENT_END0 call");
381 EXPECT_FIND_("TRACE_EVENT_END1 call"); 422 EXPECT_FIND_("TRACE_EVENT_END1 call");
423 EXPECT_SUB_FIND_("name1");
424 EXPECT_SUB_FIND_("value1");
382 EXPECT_FIND_("TRACE_EVENT_END2 call"); 425 EXPECT_FIND_("TRACE_EVENT_END2 call");
383 EXPECT_SUB_FIND_("name1"); 426 EXPECT_SUB_FIND_("name1");
384 EXPECT_SUB_FIND_("value1"); 427 EXPECT_SUB_FIND_("value1");
385 EXPECT_SUB_FIND_("name2"); 428 EXPECT_SUB_FIND_("name2");
386 EXPECT_SUB_FIND_("value2"); 429 EXPECT_SUB_FIND_("value2");
387 430
431 EXPECT_FIND_("TRACE_EVENT_IF_LONGER_THAN0 call");
432 EXPECT_FIND_("TRACE_EVENT_IF_LONGER_THAN1 call");
433 EXPECT_SUB_FIND_("name1");
434 EXPECT_SUB_FIND_("value1");
435 EXPECT_FIND_("TRACE_EVENT_IF_LONGER_THAN2 call");
436 EXPECT_SUB_FIND_("name1");
437 EXPECT_SUB_FIND_("value1");
438 EXPECT_SUB_FIND_("name2");
439 EXPECT_SUB_FIND_("value2");
440
441 EXPECT_FIND_("TRACE_EVENT_START0 call");
442 EXPECT_SUB_FIND_("id");
443 EXPECT_SUB_FIND_("5");
444 EXPECT_FIND_("TRACE_EVENT_START1 call");
445 EXPECT_SUB_FIND_("id");
446 EXPECT_SUB_FIND_("5");
447 EXPECT_SUB_FIND_("name1");
448 EXPECT_SUB_FIND_("value1");
449 EXPECT_FIND_("TRACE_EVENT_START2 call");
450 EXPECT_SUB_FIND_("id");
451 EXPECT_SUB_FIND_("5");
452 EXPECT_SUB_FIND_("name1");
453 EXPECT_SUB_FIND_("value1");
454 EXPECT_SUB_FIND_("name2");
455 EXPECT_SUB_FIND_("value2");
456
457 EXPECT_FIND_("TRACE_EVENT_FINISH0 call");
458 EXPECT_SUB_FIND_("id");
459 EXPECT_SUB_FIND_("5");
460 EXPECT_FIND_("TRACE_EVENT_FINISH1 call");
461 EXPECT_SUB_FIND_("id");
462 EXPECT_SUB_FIND_("5");
463 EXPECT_SUB_FIND_("name1");
464 EXPECT_SUB_FIND_("value1");
465 EXPECT_FIND_("TRACE_EVENT_FINISH2 call");
466 EXPECT_SUB_FIND_("id");
467 EXPECT_SUB_FIND_("5");
468 EXPECT_SUB_FIND_("name1");
469 EXPECT_SUB_FIND_("value1");
470 EXPECT_SUB_FIND_("name2");
471 EXPECT_SUB_FIND_("value2");
472
473 EXPECT_FIND_("TRACE_EVENT_BEGIN_ETW0 call");
474 EXPECT_SUB_FIND_("id");
475 EXPECT_SUB_FIND_("5");
476 EXPECT_SUB_FIND_("extra");
477 EXPECT_SUB_FIND_("NULL");
478 EXPECT_FIND_("TRACE_EVENT_BEGIN_ETW1 call");
479 EXPECT_SUB_FIND_("id");
480 EXPECT_SUB_FIND_("5");
481 EXPECT_SUB_FIND_("extra");
482 EXPECT_SUB_FIND_("value");
483 EXPECT_FIND_("TRACE_EVENT_END_ETW0 call");
484 EXPECT_SUB_FIND_("id");
485 EXPECT_SUB_FIND_("5");
486 EXPECT_SUB_FIND_("extra");
487 EXPECT_SUB_FIND_("NULL");
488 EXPECT_FIND_("TRACE_EVENT_END_ETW1 call");
489 EXPECT_SUB_FIND_("id");
490 EXPECT_SUB_FIND_("5");
491 EXPECT_SUB_FIND_("extra");
492 EXPECT_SUB_FIND_("value");
493 EXPECT_FIND_("TRACE_EVENT_INSTANT_ETW0 call");
494 EXPECT_SUB_FIND_("id");
495 EXPECT_SUB_FIND_("5");
496 EXPECT_SUB_FIND_("extra");
497 EXPECT_SUB_FIND_("NULL");
498 EXPECT_FIND_("TRACE_EVENT_INSTANT_ETW1 call");
499 EXPECT_SUB_FIND_("id");
500 EXPECT_SUB_FIND_("5");
501 EXPECT_SUB_FIND_("extra");
502 EXPECT_SUB_FIND_("value");
503
388 EXPECT_FIND_("TRACE_COUNTER1 call"); 504 EXPECT_FIND_("TRACE_COUNTER1 call");
389 { 505 {
390 std::string ph; 506 std::string ph;
391 EXPECT_TRUE((item && item->GetString("ph", &ph))); 507 EXPECT_TRUE((item && item->GetString("ph", &ph)));
392 EXPECT_EQ("C", ph); 508 EXPECT_EQ("C", ph);
393 509
394 int value; 510 int value;
395 EXPECT_TRUE((item && item->GetInteger("args.value", &value))); 511 EXPECT_TRUE((item && item->GetInteger("args.value", &value)));
396 EXPECT_EQ(31415, value); 512 EXPECT_EQ(31415, value);
397 } 513 }
(...skipping 750 matching lines...) Expand 10 before | Expand all | Expand 10 after
1148 Clear(); 1264 Clear();
1149 1265
1150 trace_buffer_.Start(); 1266 trace_buffer_.Start();
1151 trace_buffer_.AddFragment("bla1,bla2,bla3,bla4"); 1267 trace_buffer_.AddFragment("bla1,bla2,bla3,bla4");
1152 trace_buffer_.Finish(); 1268 trace_buffer_.Finish();
1153 EXPECT_STREQ(json_output_.json_output.c_str(), "[bla1,bla2,bla3,bla4]"); 1269 EXPECT_STREQ(json_output_.json_output.c_str(), "[bla1,bla2,bla3,bla4]");
1154 } 1270 }
1155 1271
1156 } // namespace debug 1272 } // namespace debug
1157 } // namespace base 1273 } // namespace base
OLDNEW
« no previous file with comments | « base/debug/trace_event.cc ('k') | base/debug/trace_event_win.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698