| 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 |