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 <cstdlib> |
| 8 |
7 #include "base/bind.h" | 9 #include "base/bind.h" |
8 #include "base/command_line.h" | 10 #include "base/command_line.h" |
9 #include "base/debug/trace_event.h" | 11 #include "base/debug/trace_event.h" |
10 #include "base/json/json_reader.h" | 12 #include "base/json/json_reader.h" |
11 #include "base/json/json_writer.h" | 13 #include "base/json/json_writer.h" |
12 #include "base/memory/ref_counted_memory.h" | 14 #include "base/memory/ref_counted_memory.h" |
13 #include "base/memory/scoped_ptr.h" | 15 #include "base/memory/scoped_ptr.h" |
14 #include "base/memory/singleton.h" | 16 #include "base/memory/singleton.h" |
15 #include "base/process_util.h" | 17 #include "base/process_util.h" |
16 #include "base/stringprintf.h" | 18 #include "base/stringprintf.h" |
(...skipping 15 matching lines...) Expand all Loading... |
32 IS_EQUAL, | 34 IS_EQUAL, |
33 IS_NOT_EQUAL, | 35 IS_NOT_EQUAL, |
34 }; | 36 }; |
35 | 37 |
36 struct JsonKeyValue { | 38 struct JsonKeyValue { |
37 const char* key; | 39 const char* key; |
38 const char* value; | 40 const char* value; |
39 CompareOp op; | 41 CompareOp op; |
40 }; | 42 }; |
41 | 43 |
| 44 static int kThreadId = 42; |
| 45 static int kAsyncId = 5; |
| 46 static const char kAsyncIdStr[] = "5"; |
| 47 |
42 class TraceEventTestFixture : public testing::Test { | 48 class TraceEventTestFixture : public testing::Test { |
43 public: | 49 public: |
44 // This fixture does not use SetUp() because the fixture must be manually set | 50 // This fixture does not use SetUp() because the fixture must be manually set |
45 // up multiple times when testing AtExit. Use ManualTestSetUp for this. | 51 // up multiple times when testing AtExit. Use ManualTestSetUp for this. |
46 void ManualTestSetUp(); | 52 void ManualTestSetUp(); |
47 void OnTraceDataCollected( | 53 void OnTraceDataCollected( |
48 const scoped_refptr<base::RefCountedString>& events_str); | 54 const scoped_refptr<base::RefCountedString>& events_str); |
49 void OnTraceNotification(int notification) { | 55 void OnTraceNotification(int notification) { |
50 if (notification & TraceLog::EVENT_WATCH_NOTIFICATION) | 56 if (notification & TraceLog::EVENT_WATCH_NOTIFICATION) |
51 ++event_watch_notification_; | 57 ++event_watch_notification_; |
(...skipping 278 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
330 TRACE_EVENT_BEGIN2("all", "TRACE_EVENT_BEGIN2 call", | 336 TRACE_EVENT_BEGIN2("all", "TRACE_EVENT_BEGIN2 call", |
331 "name1", "value1", | 337 "name1", "value1", |
332 "name2", "value2"); | 338 "name2", "value2"); |
333 | 339 |
334 TRACE_EVENT_END0("all", "TRACE_EVENT_END0 call"); | 340 TRACE_EVENT_END0("all", "TRACE_EVENT_END0 call"); |
335 TRACE_EVENT_END1("all", "TRACE_EVENT_END1 call", "name1", "value1"); | 341 TRACE_EVENT_END1("all", "TRACE_EVENT_END1 call", "name1", "value1"); |
336 TRACE_EVENT_END2("all", "TRACE_EVENT_END2 call", | 342 TRACE_EVENT_END2("all", "TRACE_EVENT_END2 call", |
337 "name1", "value1", | 343 "name1", "value1", |
338 "name2", "value2"); | 344 "name2", "value2"); |
339 | 345 |
340 TRACE_EVENT_ASYNC_BEGIN0("all", "TRACE_EVENT_ASYNC_BEGIN0 call", 5); | 346 TRACE_EVENT_ASYNC_BEGIN0("all", "TRACE_EVENT_ASYNC_BEGIN0 call", kAsyncId); |
341 TRACE_EVENT_ASYNC_BEGIN1("all", "TRACE_EVENT_ASYNC_BEGIN1 call", 5, | 347 TRACE_EVENT_ASYNC_BEGIN1("all", "TRACE_EVENT_ASYNC_BEGIN1 call", kAsyncId, |
342 "name1", "value1"); | 348 "name1", "value1"); |
343 TRACE_EVENT_ASYNC_BEGIN2("all", "TRACE_EVENT_ASYNC_BEGIN2 call", 5, | 349 TRACE_EVENT_ASYNC_BEGIN2("all", "TRACE_EVENT_ASYNC_BEGIN2 call", kAsyncId, |
344 "name1", "value1", | 350 "name1", "value1", |
345 "name2", "value2"); | 351 "name2", "value2"); |
346 | 352 |
347 TRACE_EVENT_ASYNC_STEP0("all", "TRACE_EVENT_ASYNC_STEP0 call", | 353 TRACE_EVENT_ASYNC_STEP0("all", "TRACE_EVENT_ASYNC_STEP0 call", |
348 5, "step1"); | 354 5, "step1"); |
349 TRACE_EVENT_ASYNC_STEP1("all", "TRACE_EVENT_ASYNC_STEP1 call", | 355 TRACE_EVENT_ASYNC_STEP1("all", "TRACE_EVENT_ASYNC_STEP1 call", |
350 5, "step2", "name1", "value1"); | 356 5, "step2", "name1", "value1"); |
351 | 357 |
352 TRACE_EVENT_ASYNC_END0("all", "TRACE_EVENT_ASYNC_END0 call", 5); | 358 TRACE_EVENT_ASYNC_END0("all", "TRACE_EVENT_ASYNC_END0 call", kAsyncId); |
353 TRACE_EVENT_ASYNC_END1("all", "TRACE_EVENT_ASYNC_END1 call", 5, | 359 TRACE_EVENT_ASYNC_END1("all", "TRACE_EVENT_ASYNC_END1 call", kAsyncId, |
354 "name1", "value1"); | 360 "name1", "value1"); |
355 TRACE_EVENT_ASYNC_END2("all", "TRACE_EVENT_ASYNC_END2 call", 5, | 361 TRACE_EVENT_ASYNC_END2("all", "TRACE_EVENT_ASYNC_END2 call", kAsyncId, |
356 "name1", "value1", | 362 "name1", "value1", |
357 "name2", "value2"); | 363 "name2", "value2"); |
358 | 364 |
359 TRACE_EVENT_BEGIN_ETW("TRACE_EVENT_BEGIN_ETW0 call", 5, NULL); | 365 TRACE_EVENT_BEGIN_ETW("TRACE_EVENT_BEGIN_ETW0 call", kAsyncId, NULL); |
360 TRACE_EVENT_BEGIN_ETW("TRACE_EVENT_BEGIN_ETW1 call", 5, "value"); | 366 TRACE_EVENT_BEGIN_ETW("TRACE_EVENT_BEGIN_ETW1 call", kAsyncId, "value"); |
361 TRACE_EVENT_END_ETW("TRACE_EVENT_END_ETW0 call", 5, NULL); | 367 TRACE_EVENT_END_ETW("TRACE_EVENT_END_ETW0 call", kAsyncId, NULL); |
362 TRACE_EVENT_END_ETW("TRACE_EVENT_END_ETW1 call", 5, "value"); | 368 TRACE_EVENT_END_ETW("TRACE_EVENT_END_ETW1 call", kAsyncId, "value"); |
363 TRACE_EVENT_INSTANT_ETW("TRACE_EVENT_INSTANT_ETW0 call", 5, NULL); | 369 TRACE_EVENT_INSTANT_ETW("TRACE_EVENT_INSTANT_ETW0 call", kAsyncId, NULL); |
364 TRACE_EVENT_INSTANT_ETW("TRACE_EVENT_INSTANT_ETW1 call", 5, "value"); | 370 TRACE_EVENT_INSTANT_ETW("TRACE_EVENT_INSTANT_ETW1 call", kAsyncId, "value"); |
365 | 371 |
366 TRACE_COUNTER1("all", "TRACE_COUNTER1 call", 31415); | 372 TRACE_COUNTER1("all", "TRACE_COUNTER1 call", 31415); |
367 TRACE_COUNTER2("all", "TRACE_COUNTER2 call", | 373 TRACE_COUNTER2("all", "TRACE_COUNTER2 call", |
368 "a", 30000, | 374 "a", 30000, |
369 "b", 1415); | 375 "b", 1415); |
370 | 376 |
371 TRACE_COUNTER_ID1("all", "TRACE_COUNTER_ID1 call", 0x319009, 31415); | 377 TRACE_COUNTER_ID1("all", "TRACE_COUNTER_ID1 call", 0x319009, 31415); |
372 TRACE_COUNTER_ID2("all", "TRACE_COUNTER_ID2 call", 0x319009, | 378 TRACE_COUNTER_ID2("all", "TRACE_COUNTER_ID2 call", 0x319009, |
373 "a", 30000, "b", 1415); | 379 "a", 30000, "b", 1415); |
| 380 |
| 381 TRACE_EVENT_COPY_BEGIN_WITH_ID_TID_AND_TIMESTAMP0("all", |
| 382 "TRACE_EVENT_COPY_BEGIN_WITH_ID_TID_AND_TIMESTAMP0 call", |
| 383 kAsyncId, kThreadId, 12345); |
| 384 TRACE_EVENT_COPY_END_WITH_ID_TID_AND_TIMESTAMP0("all", |
| 385 "TRACE_EVENT_COPY_END_WITH_ID_TID_AND_TIMESTAMP0 call", |
| 386 kAsyncId, kThreadId, 23456); |
| 387 |
| 388 TRACE_EVENT_BEGIN_WITH_ID_TID_AND_TIMESTAMP0("all", |
| 389 "TRACE_EVENT_BEGIN_WITH_ID_TID_AND_TIMESTAMP0 call", |
| 390 kAsyncId + 1, kThreadId, 34567); |
| 391 TRACE_EVENT_END_WITH_ID_TID_AND_TIMESTAMP0("all", |
| 392 "TRACE_EVENT_END_WITH_ID_TID_AND_TIMESTAMP0 call", |
| 393 kAsyncId + 1, kThreadId, 45678); |
| 394 |
374 } // Scope close causes TRACE_EVENT0 etc to send their END events. | 395 } // Scope close causes TRACE_EVENT0 etc to send their END events. |
375 | 396 |
376 if (task_complete_event) | 397 if (task_complete_event) |
377 task_complete_event->Signal(); | 398 task_complete_event->Signal(); |
378 } | 399 } |
379 | 400 |
380 void ValidateAllTraceMacrosCreatedData(const ListValue& trace_parsed) { | 401 void ValidateAllTraceMacrosCreatedData(const ListValue& trace_parsed) { |
381 const DictionaryValue* item = NULL; | 402 const DictionaryValue* item = NULL; |
382 | 403 |
383 #define EXPECT_FIND_(string) \ | 404 #define EXPECT_FIND_(string) \ |
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
444 EXPECT_SUB_FIND_("name1"); | 465 EXPECT_SUB_FIND_("name1"); |
445 EXPECT_SUB_FIND_("value1"); | 466 EXPECT_SUB_FIND_("value1"); |
446 EXPECT_FIND_("TRACE_EVENT_END2 call"); | 467 EXPECT_FIND_("TRACE_EVENT_END2 call"); |
447 EXPECT_SUB_FIND_("name1"); | 468 EXPECT_SUB_FIND_("name1"); |
448 EXPECT_SUB_FIND_("value1"); | 469 EXPECT_SUB_FIND_("value1"); |
449 EXPECT_SUB_FIND_("name2"); | 470 EXPECT_SUB_FIND_("name2"); |
450 EXPECT_SUB_FIND_("value2"); | 471 EXPECT_SUB_FIND_("value2"); |
451 | 472 |
452 EXPECT_FIND_("TRACE_EVENT_ASYNC_BEGIN0 call"); | 473 EXPECT_FIND_("TRACE_EVENT_ASYNC_BEGIN0 call"); |
453 EXPECT_SUB_FIND_("id"); | 474 EXPECT_SUB_FIND_("id"); |
454 EXPECT_SUB_FIND_("5"); | 475 EXPECT_SUB_FIND_(kAsyncIdStr); |
455 EXPECT_FIND_("TRACE_EVENT_ASYNC_BEGIN1 call"); | 476 EXPECT_FIND_("TRACE_EVENT_ASYNC_BEGIN1 call"); |
456 EXPECT_SUB_FIND_("id"); | 477 EXPECT_SUB_FIND_("id"); |
457 EXPECT_SUB_FIND_("5"); | 478 EXPECT_SUB_FIND_(kAsyncIdStr); |
458 EXPECT_SUB_FIND_("name1"); | 479 EXPECT_SUB_FIND_("name1"); |
459 EXPECT_SUB_FIND_("value1"); | 480 EXPECT_SUB_FIND_("value1"); |
460 EXPECT_FIND_("TRACE_EVENT_ASYNC_BEGIN2 call"); | 481 EXPECT_FIND_("TRACE_EVENT_ASYNC_BEGIN2 call"); |
461 EXPECT_SUB_FIND_("id"); | 482 EXPECT_SUB_FIND_("id"); |
462 EXPECT_SUB_FIND_("5"); | 483 EXPECT_SUB_FIND_(kAsyncIdStr); |
463 EXPECT_SUB_FIND_("name1"); | 484 EXPECT_SUB_FIND_("name1"); |
464 EXPECT_SUB_FIND_("value1"); | 485 EXPECT_SUB_FIND_("value1"); |
465 EXPECT_SUB_FIND_("name2"); | 486 EXPECT_SUB_FIND_("name2"); |
466 EXPECT_SUB_FIND_("value2"); | 487 EXPECT_SUB_FIND_("value2"); |
467 | 488 |
468 EXPECT_FIND_("TRACE_EVENT_ASYNC_STEP0 call"); | 489 EXPECT_FIND_("TRACE_EVENT_ASYNC_STEP0 call"); |
469 EXPECT_SUB_FIND_("id"); | 490 EXPECT_SUB_FIND_("id"); |
470 EXPECT_SUB_FIND_("5"); | 491 EXPECT_SUB_FIND_(kAsyncIdStr); |
471 EXPECT_SUB_FIND_("step1"); | 492 EXPECT_SUB_FIND_("step1"); |
472 EXPECT_FIND_("TRACE_EVENT_ASYNC_STEP1 call"); | 493 EXPECT_FIND_("TRACE_EVENT_ASYNC_STEP1 call"); |
473 EXPECT_SUB_FIND_("id"); | 494 EXPECT_SUB_FIND_("id"); |
474 EXPECT_SUB_FIND_("5"); | 495 EXPECT_SUB_FIND_(kAsyncIdStr); |
475 EXPECT_SUB_FIND_("step2"); | 496 EXPECT_SUB_FIND_("step2"); |
476 EXPECT_SUB_FIND_("name1"); | 497 EXPECT_SUB_FIND_("name1"); |
477 EXPECT_SUB_FIND_("value1"); | 498 EXPECT_SUB_FIND_("value1"); |
478 | 499 |
479 EXPECT_FIND_("TRACE_EVENT_ASYNC_END0 call"); | 500 EXPECT_FIND_("TRACE_EVENT_ASYNC_END0 call"); |
480 EXPECT_SUB_FIND_("id"); | 501 EXPECT_SUB_FIND_("id"); |
481 EXPECT_SUB_FIND_("5"); | 502 EXPECT_SUB_FIND_(kAsyncIdStr); |
482 EXPECT_FIND_("TRACE_EVENT_ASYNC_END1 call"); | 503 EXPECT_FIND_("TRACE_EVENT_ASYNC_END1 call"); |
483 EXPECT_SUB_FIND_("id"); | 504 EXPECT_SUB_FIND_("id"); |
484 EXPECT_SUB_FIND_("5"); | 505 EXPECT_SUB_FIND_(kAsyncIdStr); |
485 EXPECT_SUB_FIND_("name1"); | 506 EXPECT_SUB_FIND_("name1"); |
486 EXPECT_SUB_FIND_("value1"); | 507 EXPECT_SUB_FIND_("value1"); |
487 EXPECT_FIND_("TRACE_EVENT_ASYNC_END2 call"); | 508 EXPECT_FIND_("TRACE_EVENT_ASYNC_END2 call"); |
488 EXPECT_SUB_FIND_("id"); | 509 EXPECT_SUB_FIND_("id"); |
489 EXPECT_SUB_FIND_("5"); | 510 EXPECT_SUB_FIND_(kAsyncIdStr); |
490 EXPECT_SUB_FIND_("name1"); | 511 EXPECT_SUB_FIND_("name1"); |
491 EXPECT_SUB_FIND_("value1"); | 512 EXPECT_SUB_FIND_("value1"); |
492 EXPECT_SUB_FIND_("name2"); | 513 EXPECT_SUB_FIND_("name2"); |
493 EXPECT_SUB_FIND_("value2"); | 514 EXPECT_SUB_FIND_("value2"); |
494 | 515 |
495 EXPECT_FIND_("TRACE_EVENT_BEGIN_ETW0 call"); | 516 EXPECT_FIND_("TRACE_EVENT_BEGIN_ETW0 call"); |
496 EXPECT_SUB_FIND_("id"); | 517 EXPECT_SUB_FIND_("id"); |
497 EXPECT_SUB_FIND_("5"); | 518 EXPECT_SUB_FIND_(kAsyncIdStr); |
498 EXPECT_SUB_FIND_("extra"); | 519 EXPECT_SUB_FIND_("extra"); |
499 EXPECT_SUB_FIND_("NULL"); | 520 EXPECT_SUB_FIND_("NULL"); |
500 EXPECT_FIND_("TRACE_EVENT_BEGIN_ETW1 call"); | 521 EXPECT_FIND_("TRACE_EVENT_BEGIN_ETW1 call"); |
501 EXPECT_SUB_FIND_("id"); | 522 EXPECT_SUB_FIND_("id"); |
502 EXPECT_SUB_FIND_("5"); | 523 EXPECT_SUB_FIND_(kAsyncIdStr); |
503 EXPECT_SUB_FIND_("extra"); | 524 EXPECT_SUB_FIND_("extra"); |
504 EXPECT_SUB_FIND_("value"); | 525 EXPECT_SUB_FIND_("value"); |
505 EXPECT_FIND_("TRACE_EVENT_END_ETW0 call"); | 526 EXPECT_FIND_("TRACE_EVENT_END_ETW0 call"); |
506 EXPECT_SUB_FIND_("id"); | 527 EXPECT_SUB_FIND_("id"); |
507 EXPECT_SUB_FIND_("5"); | 528 EXPECT_SUB_FIND_(kAsyncIdStr); |
508 EXPECT_SUB_FIND_("extra"); | 529 EXPECT_SUB_FIND_("extra"); |
509 EXPECT_SUB_FIND_("NULL"); | 530 EXPECT_SUB_FIND_("NULL"); |
510 EXPECT_FIND_("TRACE_EVENT_END_ETW1 call"); | 531 EXPECT_FIND_("TRACE_EVENT_END_ETW1 call"); |
511 EXPECT_SUB_FIND_("id"); | 532 EXPECT_SUB_FIND_("id"); |
512 EXPECT_SUB_FIND_("5"); | 533 EXPECT_SUB_FIND_(kAsyncIdStr); |
513 EXPECT_SUB_FIND_("extra"); | 534 EXPECT_SUB_FIND_("extra"); |
514 EXPECT_SUB_FIND_("value"); | 535 EXPECT_SUB_FIND_("value"); |
515 EXPECT_FIND_("TRACE_EVENT_INSTANT_ETW0 call"); | 536 EXPECT_FIND_("TRACE_EVENT_INSTANT_ETW0 call"); |
516 EXPECT_SUB_FIND_("id"); | 537 EXPECT_SUB_FIND_("id"); |
517 EXPECT_SUB_FIND_("5"); | 538 EXPECT_SUB_FIND_(kAsyncIdStr); |
518 EXPECT_SUB_FIND_("extra"); | 539 EXPECT_SUB_FIND_("extra"); |
519 EXPECT_SUB_FIND_("NULL"); | 540 EXPECT_SUB_FIND_("NULL"); |
520 EXPECT_FIND_("TRACE_EVENT_INSTANT_ETW1 call"); | 541 EXPECT_FIND_("TRACE_EVENT_INSTANT_ETW1 call"); |
521 EXPECT_SUB_FIND_("id"); | 542 EXPECT_SUB_FIND_("id"); |
522 EXPECT_SUB_FIND_("5"); | 543 EXPECT_SUB_FIND_(kAsyncIdStr); |
523 EXPECT_SUB_FIND_("extra"); | 544 EXPECT_SUB_FIND_("extra"); |
524 EXPECT_SUB_FIND_("value"); | 545 EXPECT_SUB_FIND_("value"); |
525 | 546 |
526 EXPECT_FIND_("TRACE_COUNTER1 call"); | 547 EXPECT_FIND_("TRACE_COUNTER1 call"); |
527 { | 548 { |
528 std::string ph; | 549 std::string ph; |
529 EXPECT_TRUE((item && item->GetString("ph", &ph))); | 550 EXPECT_TRUE((item && item->GetString("ph", &ph))); |
530 EXPECT_EQ("C", ph); | 551 EXPECT_EQ("C", ph); |
531 | 552 |
532 int value; | 553 int value; |
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
573 EXPECT_TRUE((item && item->GetString("ph", &ph))); | 594 EXPECT_TRUE((item && item->GetString("ph", &ph))); |
574 EXPECT_EQ("C", ph); | 595 EXPECT_EQ("C", ph); |
575 | 596 |
576 int value; | 597 int value; |
577 EXPECT_TRUE((item && item->GetInteger("args.a", &value))); | 598 EXPECT_TRUE((item && item->GetInteger("args.a", &value))); |
578 EXPECT_EQ(30000, value); | 599 EXPECT_EQ(30000, value); |
579 | 600 |
580 EXPECT_TRUE((item && item->GetInteger("args.b", &value))); | 601 EXPECT_TRUE((item && item->GetInteger("args.b", &value))); |
581 EXPECT_EQ(1415, value); | 602 EXPECT_EQ(1415, value); |
582 } | 603 } |
| 604 |
| 605 EXPECT_FIND_("TRACE_EVENT_COPY_BEGIN_WITH_ID_TID_AND_TIMESTAMP0 call"); |
| 606 { |
| 607 int val; |
| 608 EXPECT_TRUE((item && item->GetInteger("ts", &val))); |
| 609 EXPECT_EQ(12345, val); |
| 610 EXPECT_TRUE((item && item->GetInteger("tid", &val))); |
| 611 EXPECT_EQ(kThreadId, val); |
| 612 std::string id; |
| 613 EXPECT_TRUE((item && item->GetString("id", &id))); |
| 614 EXPECT_EQ(kAsyncId, atoi(id.c_str())); |
| 615 } |
| 616 |
| 617 EXPECT_FIND_("TRACE_EVENT_COPY_END_WITH_ID_TID_AND_TIMESTAMP0 call"); |
| 618 { |
| 619 int val; |
| 620 EXPECT_TRUE((item && item->GetInteger("ts", &val))); |
| 621 EXPECT_EQ(23456, val); |
| 622 EXPECT_TRUE((item && item->GetInteger("tid", &val))); |
| 623 EXPECT_EQ(kThreadId, val); |
| 624 std::string id; |
| 625 EXPECT_TRUE((item && item->GetString("id", &id))); |
| 626 EXPECT_EQ(kAsyncId, atoi(id.c_str())); |
| 627 } |
| 628 |
| 629 EXPECT_FIND_("TRACE_EVENT_BEGIN_WITH_ID_TID_AND_TIMESTAMP0 call"); |
| 630 { |
| 631 int val; |
| 632 EXPECT_TRUE((item && item->GetInteger("ts", &val))); |
| 633 EXPECT_EQ(34567, val); |
| 634 EXPECT_TRUE((item && item->GetInteger("tid", &val))); |
| 635 EXPECT_EQ(kThreadId, val); |
| 636 std::string id; |
| 637 EXPECT_TRUE((item && item->GetString("id", &id))); |
| 638 EXPECT_EQ(kAsyncId + 1, atoi(id.c_str())); |
| 639 } |
| 640 |
| 641 EXPECT_FIND_("TRACE_EVENT_END_WITH_ID_TID_AND_TIMESTAMP0 call"); |
| 642 { |
| 643 int val; |
| 644 EXPECT_TRUE((item && item->GetInteger("ts", &val))); |
| 645 EXPECT_EQ(45678, val); |
| 646 EXPECT_TRUE((item && item->GetInteger("tid", &val))); |
| 647 EXPECT_EQ(kThreadId, val); |
| 648 std::string id; |
| 649 EXPECT_TRUE((item && item->GetString("id", &id))); |
| 650 EXPECT_EQ(kAsyncId + 1, atoi(id.c_str())); |
| 651 } |
583 } | 652 } |
584 | 653 |
585 void TraceManyInstantEvents(int thread_id, int num_events, | 654 void TraceManyInstantEvents(int thread_id, int num_events, |
586 WaitableEvent* task_complete_event) { | 655 WaitableEvent* task_complete_event) { |
587 for (int i = 0; i < num_events; i++) { | 656 for (int i = 0; i < num_events; i++) { |
588 TRACE_EVENT_INSTANT2("all", "multi thread event", | 657 TRACE_EVENT_INSTANT2("all", "multi thread event", |
589 "thread", thread_id, | 658 "thread", thread_id, |
590 "event", i); | 659 "event", i); |
591 } | 660 } |
592 | 661 |
(...skipping 811 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1404 trace_log->SetEnabled(std::string("moo")); | 1473 trace_log->SetEnabled(std::string("moo")); |
1405 EXPECT_TRUE(*trace_log->GetCategoryEnabled("baz")); | 1474 EXPECT_TRUE(*trace_log->GetCategoryEnabled("baz")); |
1406 EXPECT_TRUE(*trace_log->GetCategoryEnabled("moo")); | 1475 EXPECT_TRUE(*trace_log->GetCategoryEnabled("moo")); |
1407 EXPECT_TRUE(*trace_log->GetCategoryEnabled("foo")); | 1476 EXPECT_TRUE(*trace_log->GetCategoryEnabled("foo")); |
1408 trace_log->SetDisabled(); | 1477 trace_log->SetDisabled(); |
1409 trace_log->SetDisabled(); | 1478 trace_log->SetDisabled(); |
1410 } | 1479 } |
1411 | 1480 |
1412 } // namespace debug | 1481 } // namespace debug |
1413 } // namespace base | 1482 } // namespace base |
OLD | NEW |