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 384 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
395 if (IsStringInDict(string_to_match, dict)) | 395 if (IsStringInDict(string_to_match, dict)) |
396 hits.push_back(dict); | 396 hits.push_back(dict); |
397 } | 397 } |
398 return hits; | 398 return hits; |
399 } | 399 } |
400 | 400 |
401 const char kControlCharacters[] = "\001\002\003\n\r"; | 401 const char kControlCharacters[] = "\001\002\003\n\r"; |
402 | 402 |
403 void TraceWithAllMacroVariants(WaitableEvent* task_complete_event) { | 403 void TraceWithAllMacroVariants(WaitableEvent* task_complete_event) { |
404 { | 404 { |
405 TRACE_EVENT_BEGIN_ETW("TRACE_EVENT_BEGIN_ETW call", 0x1122, "extrastring1"); | |
406 TRACE_EVENT_END_ETW("TRACE_EVENT_END_ETW call", 0x3344, "extrastring2"); | |
407 TRACE_EVENT_INSTANT_ETW("TRACE_EVENT_INSTANT_ETW call", | |
408 0x5566, "extrastring3"); | |
409 | |
410 TRACE_EVENT0("all", "TRACE_EVENT0 call"); | 405 TRACE_EVENT0("all", "TRACE_EVENT0 call"); |
411 TRACE_EVENT1("all", "TRACE_EVENT1 call", "name1", "value1"); | 406 TRACE_EVENT1("all", "TRACE_EVENT1 call", "name1", "value1"); |
412 TRACE_EVENT2("all", "TRACE_EVENT2 call", | 407 TRACE_EVENT2("all", "TRACE_EVENT2 call", |
413 "name1", "\"value1\"", | 408 "name1", "\"value1\"", |
414 "name2", "value\\2"); | 409 "name2", "value\\2"); |
415 | 410 |
416 TRACE_EVENT_INSTANT0("all", "TRACE_EVENT_INSTANT0 call", | 411 TRACE_EVENT_INSTANT0("all", "TRACE_EVENT_INSTANT0 call", |
417 TRACE_EVENT_SCOPE_GLOBAL); | 412 TRACE_EVENT_SCOPE_GLOBAL); |
418 TRACE_EVENT_INSTANT1("all", "TRACE_EVENT_INSTANT1 call", | 413 TRACE_EVENT_INSTANT1("all", "TRACE_EVENT_INSTANT1 call", |
419 TRACE_EVENT_SCOPE_PROCESS, "name1", "value1"); | 414 TRACE_EVENT_SCOPE_PROCESS, "name1", "value1"); |
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
452 TRACE_EVENT_ASYNC_END2("all", "TRACE_EVENT_ASYNC_END2 call", kAsyncId, | 447 TRACE_EVENT_ASYNC_END2("all", "TRACE_EVENT_ASYNC_END2 call", kAsyncId, |
453 "name1", "value1", | 448 "name1", "value1", |
454 "name2", "value2"); | 449 "name2", "value2"); |
455 | 450 |
456 TRACE_EVENT_FLOW_BEGIN0("all", "TRACE_EVENT_FLOW_BEGIN0 call", kFlowId); | 451 TRACE_EVENT_FLOW_BEGIN0("all", "TRACE_EVENT_FLOW_BEGIN0 call", kFlowId); |
457 TRACE_EVENT_FLOW_STEP0("all", "TRACE_EVENT_FLOW_STEP0 call", | 452 TRACE_EVENT_FLOW_STEP0("all", "TRACE_EVENT_FLOW_STEP0 call", |
458 kFlowId, "step1"); | 453 kFlowId, "step1"); |
459 TRACE_EVENT_FLOW_END_BIND_TO_ENCLOSING0("all", | 454 TRACE_EVENT_FLOW_END_BIND_TO_ENCLOSING0("all", |
460 "TRACE_EVENT_FLOW_END_BIND_TO_ENCLOSING0 call", kFlowId); | 455 "TRACE_EVENT_FLOW_END_BIND_TO_ENCLOSING0 call", kFlowId); |
461 | 456 |
462 TRACE_EVENT_BEGIN_ETW("TRACE_EVENT_BEGIN_ETW0 call", kAsyncId, NULL); | |
463 TRACE_EVENT_BEGIN_ETW("TRACE_EVENT_BEGIN_ETW1 call", kAsyncId, "value"); | |
464 TRACE_EVENT_END_ETW("TRACE_EVENT_END_ETW0 call", kAsyncId, NULL); | |
465 TRACE_EVENT_END_ETW("TRACE_EVENT_END_ETW1 call", kAsyncId, "value"); | |
466 TRACE_EVENT_INSTANT_ETW("TRACE_EVENT_INSTANT_ETW0 call", kAsyncId, NULL); | |
467 TRACE_EVENT_INSTANT_ETW("TRACE_EVENT_INSTANT_ETW1 call", kAsyncId, "value"); | |
468 | |
469 TRACE_COUNTER1("all", "TRACE_COUNTER1 call", 31415); | 457 TRACE_COUNTER1("all", "TRACE_COUNTER1 call", 31415); |
470 TRACE_COUNTER2("all", "TRACE_COUNTER2 call", | 458 TRACE_COUNTER2("all", "TRACE_COUNTER2 call", |
471 "a", 30000, | 459 "a", 30000, |
472 "b", 1415); | 460 "b", 1415); |
473 | 461 |
474 TRACE_COUNTER_ID1("all", "TRACE_COUNTER_ID1 call", 0x319009, 31415); | 462 TRACE_COUNTER_ID1("all", "TRACE_COUNTER_ID1 call", 0x319009, 31415); |
475 TRACE_COUNTER_ID2("all", "TRACE_COUNTER_ID2 call", 0x319009, | 463 TRACE_COUNTER_ID2("all", "TRACE_COUNTER_ID2 call", 0x319009, |
476 "a", 30000, "b", 1415); | 464 "a", 30000, "b", 1415); |
477 | 465 |
478 TRACE_EVENT_COPY_BEGIN_WITH_ID_TID_AND_TIMESTAMP0("all", | 466 TRACE_EVENT_COPY_BEGIN_WITH_ID_TID_AND_TIMESTAMP0("all", |
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
517 #define EXPECT_FIND_(string) \ | 505 #define EXPECT_FIND_(string) \ |
518 item = FindTraceEntry(trace_parsed, string); \ | 506 item = FindTraceEntry(trace_parsed, string); \ |
519 EXPECT_TRUE(item); | 507 EXPECT_TRUE(item); |
520 #define EXPECT_NOT_FIND_(string) \ | 508 #define EXPECT_NOT_FIND_(string) \ |
521 item = FindTraceEntry(trace_parsed, string); \ | 509 item = FindTraceEntry(trace_parsed, string); \ |
522 EXPECT_FALSE(item); | 510 EXPECT_FALSE(item); |
523 #define EXPECT_SUB_FIND_(string) \ | 511 #define EXPECT_SUB_FIND_(string) \ |
524 if (item) \ | 512 if (item) \ |
525 EXPECT_TRUE(IsStringInDict(string, item)); | 513 EXPECT_TRUE(IsStringInDict(string, item)); |
526 | 514 |
527 EXPECT_FIND_("ETW Trace Event"); | |
528 EXPECT_FIND_("all"); | |
529 EXPECT_FIND_("TRACE_EVENT_BEGIN_ETW call"); | |
530 { | |
531 std::string str_val; | |
532 EXPECT_TRUE(item && item->GetString("args.id", &str_val)); | |
533 EXPECT_STREQ("0x1122", str_val.c_str()); | |
534 } | |
535 EXPECT_SUB_FIND_("extrastring1"); | |
536 EXPECT_FIND_("TRACE_EVENT_END_ETW call"); | |
537 EXPECT_FIND_("TRACE_EVENT_INSTANT_ETW call"); | |
538 EXPECT_FIND_("TRACE_EVENT0 call"); | 515 EXPECT_FIND_("TRACE_EVENT0 call"); |
539 { | 516 { |
540 std::string ph; | 517 std::string ph; |
541 std::string ph_end; | 518 std::string ph_end; |
542 EXPECT_TRUE((item = FindTraceEntry(trace_parsed, "TRACE_EVENT0 call"))); | 519 EXPECT_TRUE((item = FindTraceEntry(trace_parsed, "TRACE_EVENT0 call"))); |
543 EXPECT_TRUE((item && item->GetString("ph", &ph))); | 520 EXPECT_TRUE((item && item->GetString("ph", &ph))); |
544 EXPECT_EQ("X", ph); | 521 EXPECT_EQ("X", ph); |
545 item = FindTraceEntry(trace_parsed, "TRACE_EVENT0 call", item); | 522 item = FindTraceEntry(trace_parsed, "TRACE_EVENT0 call", item); |
546 EXPECT_FALSE(item); | 523 EXPECT_FALSE(item); |
547 } | 524 } |
(...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
646 EXPECT_SUB_FIND_("id"); | 623 EXPECT_SUB_FIND_("id"); |
647 EXPECT_SUB_FIND_(kFlowIdStr); | 624 EXPECT_SUB_FIND_(kFlowIdStr); |
648 EXPECT_FIND_("TRACE_EVENT_FLOW_STEP0 call"); | 625 EXPECT_FIND_("TRACE_EVENT_FLOW_STEP0 call"); |
649 EXPECT_SUB_FIND_("id"); | 626 EXPECT_SUB_FIND_("id"); |
650 EXPECT_SUB_FIND_(kFlowIdStr); | 627 EXPECT_SUB_FIND_(kFlowIdStr); |
651 EXPECT_SUB_FIND_("step1"); | 628 EXPECT_SUB_FIND_("step1"); |
652 EXPECT_FIND_("TRACE_EVENT_FLOW_END_BIND_TO_ENCLOSING0 call"); | 629 EXPECT_FIND_("TRACE_EVENT_FLOW_END_BIND_TO_ENCLOSING0 call"); |
653 EXPECT_SUB_FIND_("id"); | 630 EXPECT_SUB_FIND_("id"); |
654 EXPECT_SUB_FIND_(kFlowIdStr); | 631 EXPECT_SUB_FIND_(kFlowIdStr); |
655 | 632 |
656 EXPECT_FIND_("TRACE_EVENT_BEGIN_ETW0 call"); | |
657 EXPECT_SUB_FIND_("id"); | |
658 EXPECT_SUB_FIND_(kAsyncIdStr); | |
659 EXPECT_SUB_FIND_("extra"); | |
660 EXPECT_SUB_FIND_("NULL"); | |
661 EXPECT_FIND_("TRACE_EVENT_BEGIN_ETW1 call"); | |
662 EXPECT_SUB_FIND_("id"); | |
663 EXPECT_SUB_FIND_(kAsyncIdStr); | |
664 EXPECT_SUB_FIND_("extra"); | |
665 EXPECT_SUB_FIND_("value"); | |
666 EXPECT_FIND_("TRACE_EVENT_END_ETW0 call"); | |
667 EXPECT_SUB_FIND_("id"); | |
668 EXPECT_SUB_FIND_(kAsyncIdStr); | |
669 EXPECT_SUB_FIND_("extra"); | |
670 EXPECT_SUB_FIND_("NULL"); | |
671 EXPECT_FIND_("TRACE_EVENT_END_ETW1 call"); | |
672 EXPECT_SUB_FIND_("id"); | |
673 EXPECT_SUB_FIND_(kAsyncIdStr); | |
674 EXPECT_SUB_FIND_("extra"); | |
675 EXPECT_SUB_FIND_("value"); | |
676 EXPECT_FIND_("TRACE_EVENT_INSTANT_ETW0 call"); | |
677 EXPECT_SUB_FIND_("id"); | |
678 EXPECT_SUB_FIND_(kAsyncIdStr); | |
679 EXPECT_SUB_FIND_("extra"); | |
680 EXPECT_SUB_FIND_("NULL"); | |
681 EXPECT_FIND_("TRACE_EVENT_INSTANT_ETW1 call"); | |
682 EXPECT_SUB_FIND_("id"); | |
683 EXPECT_SUB_FIND_(kAsyncIdStr); | |
684 EXPECT_SUB_FIND_("extra"); | |
685 EXPECT_SUB_FIND_("value"); | |
686 | |
687 EXPECT_FIND_("TRACE_COUNTER1 call"); | 633 EXPECT_FIND_("TRACE_COUNTER1 call"); |
688 { | 634 { |
689 std::string ph; | 635 std::string ph; |
690 EXPECT_TRUE((item && item->GetString("ph", &ph))); | 636 EXPECT_TRUE((item && item->GetString("ph", &ph))); |
691 EXPECT_EQ("C", ph); | 637 EXPECT_EQ("C", ph); |
692 | 638 |
693 int value; | 639 int value; |
694 EXPECT_TRUE((item && item->GetInteger("args.value", &value))); | 640 EXPECT_TRUE((item && item->GetInteger("args.value", &value))); |
695 EXPECT_EQ(31415, value); | 641 EXPECT_EQ(31415, value); |
696 } | 642 } |
(...skipping 2266 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2963 } | 2909 } |
2964 | 2910 |
2965 TEST_F(TraceEventTestFixture, SyntheticDelayConfigurationToString) { | 2911 TEST_F(TraceEventTestFixture, SyntheticDelayConfigurationToString) { |
2966 const char filter[] = "DELAY(test.Delay;16;oneshot)"; | 2912 const char filter[] = "DELAY(test.Delay;16;oneshot)"; |
2967 TraceConfig config(filter, ""); | 2913 TraceConfig config(filter, ""); |
2968 EXPECT_EQ(filter, config.ToCategoryFilterString()); | 2914 EXPECT_EQ(filter, config.ToCategoryFilterString()); |
2969 } | 2915 } |
2970 | 2916 |
2971 } // namespace trace_event | 2917 } // namespace trace_event |
2972 } // namespace base | 2918 } // namespace base |
OLD | NEW |