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/trace_event/trace_event.h" | 5 #include "base/trace_event/trace_event.h" |
6 | 6 |
7 #include <math.h> | 7 #include <math.h> |
8 #include <stddef.h> | 8 #include <stddef.h> |
9 #include <stdint.h> | 9 #include <stdint.h> |
10 | 10 |
(...skipping 500 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
511 TRACE_EVENT_ENTER_CONTEXT("all", "TRACE_EVENT_ENTER_CONTEXT call", | 511 TRACE_EVENT_ENTER_CONTEXT("all", "TRACE_EVENT_ENTER_CONTEXT call", |
512 TRACE_ID_WITH_SCOPE("scope", context_id)); | 512 TRACE_ID_WITH_SCOPE("scope", context_id)); |
513 TRACE_EVENT_LEAVE_CONTEXT("all", "TRACE_EVENT_LEAVE_CONTEXT call", | 513 TRACE_EVENT_LEAVE_CONTEXT("all", "TRACE_EVENT_LEAVE_CONTEXT call", |
514 TRACE_ID_WITH_SCOPE("scope", context_id)); | 514 TRACE_ID_WITH_SCOPE("scope", context_id)); |
515 TRACE_EVENT_SCOPED_CONTEXT("disabled-by-default-cat", | 515 TRACE_EVENT_SCOPED_CONTEXT("disabled-by-default-cat", |
516 "TRACE_EVENT_SCOPED_CONTEXT disabled call", | 516 "TRACE_EVENT_SCOPED_CONTEXT disabled call", |
517 context_id); | 517 context_id); |
518 TRACE_EVENT_SCOPED_CONTEXT("all", "TRACE_EVENT_SCOPED_CONTEXT call", | 518 TRACE_EVENT_SCOPED_CONTEXT("all", "TRACE_EVENT_SCOPED_CONTEXT call", |
519 context_id); | 519 context_id); |
520 | 520 |
521 TRACE_BIND_IDS("all", "TRACE_BIND_IDS simple call", 0x1000, 0x2000); | 521 TRACE_LINK_IDS("all", "simple linking", 0x1000, 0x2000); |
522 TRACE_BIND_IDS("all", "TRACE_BIND_IDS scoped call", | 522 TRACE_LINK_IDS("all", "link scoped ids", |
523 TRACE_ID_WITH_SCOPE("scope 1", 0x1000), | 523 TRACE_ID_WITH_SCOPE("scope 1", 0x1000), |
524 TRACE_ID_WITH_SCOPE("scope 2", 0x2000)); | 524 TRACE_ID_WITH_SCOPE("scope 2", 0x2000)); |
| 525 TRACE_LINK_IDS("all", "link to a global id", 0x1000, |
| 526 GLOBAL_TRACE_ID_WITH_SCOPE("scope", 0x2000)); |
| 527 TRACE_LINK_IDS("all", "link from a global id", |
| 528 GLOBAL_TRACE_ID(0x1000), 0x2000); |
| 529 TRACE_LINK_IDS("all", "link to a composite id", 0x1000, |
| 530 GLOBAL_TRACE_ID_WITH_SCOPE("scope", 0x2000, 0x3000)); |
525 } // Scope close causes TRACE_EVENT0 etc to send their END events. | 531 } // Scope close causes TRACE_EVENT0 etc to send their END events. |
526 | 532 |
527 if (task_complete_event) | 533 if (task_complete_event) |
528 task_complete_event->Signal(); | 534 task_complete_event->Signal(); |
529 } | 535 } |
530 | 536 |
531 void ValidateAllTraceMacrosCreatedData(const ListValue& trace_parsed) { | 537 void ValidateAllTraceMacrosCreatedData(const ListValue& trace_parsed) { |
532 const DictionaryValue* item = NULL; | 538 const DictionaryValue* item = NULL; |
533 | 539 |
534 #define EXPECT_FIND_(string) \ | 540 #define EXPECT_FIND_(string) \ |
(...skipping 421 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
956 std::string ph; | 962 std::string ph; |
957 EXPECT_TRUE((item && item->GetString("ph", &ph))); | 963 EXPECT_TRUE((item && item->GetString("ph", &ph))); |
958 EXPECT_EQ(")", ph); | 964 EXPECT_EQ(")", ph); |
959 | 965 |
960 std::string id; | 966 std::string id; |
961 EXPECT_FALSE((item && item->HasKey("scope"))); | 967 EXPECT_FALSE((item && item->HasKey("scope"))); |
962 EXPECT_TRUE((item && item->GetString("id", &id))); | 968 EXPECT_TRUE((item && item->GetString("id", &id))); |
963 EXPECT_EQ("0x20151021", id); | 969 EXPECT_EQ("0x20151021", id); |
964 } | 970 } |
965 | 971 |
966 EXPECT_FIND_("TRACE_BIND_IDS simple call"); | 972 EXPECT_FIND_("simple linking"); |
967 { | 973 { |
968 std::string ph; | 974 std::string ph; |
969 EXPECT_TRUE((item && item->GetString("ph", &ph))); | 975 EXPECT_TRUE((item && item->GetString("ph", &ph))); |
970 EXPECT_EQ("=", ph); | 976 EXPECT_EQ("=", ph); |
971 | 977 |
972 EXPECT_FALSE((item && item->HasKey("scope"))); | 978 EXPECT_FALSE((item && item->HasKey("scope"))); |
973 std::string id; | 979 EXPECT_FALSE((item && item->HasKey("id_is_global"))); |
974 EXPECT_TRUE((item && item->GetString("id", &id))); | 980 std::string id1; |
975 EXPECT_EQ("0x1000", id); | 981 EXPECT_TRUE((item && item->GetString("id", &id1))); |
| 982 EXPECT_EQ("0x1000", id1); |
976 | 983 |
977 EXPECT_FALSE((item && item->HasKey("args.bind_scope"))); | 984 EXPECT_FALSE((item && item->HasKey("args.linked_id.scope"))); |
978 std::string bind_id; | 985 EXPECT_FALSE((item && item->HasKey("args.linked_id.id_is_global"))); |
979 EXPECT_TRUE((item && item->GetString("bind_id", &id))); | 986 std::string id2; |
980 EXPECT_EQ("0x2000", id); | 987 EXPECT_TRUE((item && item->GetString("args.linked_id.id", &id2))); |
| 988 EXPECT_EQ("0x2000", id2); |
981 } | 989 } |
982 | 990 |
983 EXPECT_FIND_("TRACE_BIND_IDS scoped call"); | 991 EXPECT_FIND_("link scoped ids"); |
984 { | 992 { |
985 std::string ph; | 993 std::string ph; |
986 EXPECT_TRUE((item && item->GetString("ph", &ph))); | 994 EXPECT_TRUE((item && item->GetString("ph", &ph))); |
987 EXPECT_EQ("=", ph); | 995 EXPECT_EQ("=", ph); |
988 | 996 |
989 std::string id_scope; | 997 std::string scope1; |
990 EXPECT_TRUE((item && item->GetString("scope", &id_scope))); | 998 EXPECT_TRUE((item && item->GetString("scope", &scope1))); |
991 EXPECT_EQ("scope 1", id_scope); | 999 EXPECT_EQ("scope 1", scope1); |
992 std::string id; | 1000 std::string id1; |
993 EXPECT_TRUE((item && item->GetString("id", &id))); | 1001 EXPECT_TRUE((item && item->GetString("id", &id1))); |
994 EXPECT_EQ("0x1000", id); | 1002 EXPECT_EQ("0x1000", id1); |
995 | 1003 |
996 std::string bind_scope; | 1004 std::string scope2; |
997 EXPECT_TRUE((item && item->GetString("args.bind_scope", &bind_scope))); | 1005 EXPECT_TRUE((item && item->GetString("args.linked_id.scope", &scope2))); |
998 EXPECT_EQ("scope 2", bind_scope); | 1006 EXPECT_EQ("scope 2", scope2); |
999 std::string bind_id; | 1007 std::string id2; |
1000 EXPECT_TRUE((item && item->GetString("bind_id", &id))); | 1008 EXPECT_TRUE((item && item->GetString("args.linked_id.id", &id2))); |
1001 EXPECT_EQ("0x2000", id); | 1009 EXPECT_EQ("0x2000", id2); |
1002 } | 1010 } |
1003 | 1011 |
| 1012 EXPECT_FIND_("link to a global id"); |
| 1013 { |
| 1014 std::string ph; |
| 1015 EXPECT_TRUE((item && item->GetString("ph", &ph))); |
| 1016 EXPECT_EQ("=", ph); |
| 1017 |
| 1018 EXPECT_FALSE((item && item->HasKey("scope"))); |
| 1019 std::string id1; |
| 1020 EXPECT_TRUE((item && item->GetString("id", &id1))); |
| 1021 EXPECT_EQ("0x1000", id1); |
| 1022 |
| 1023 std::string scope2; |
| 1024 EXPECT_TRUE((item && item->GetString("args.linked_id.scope", &scope2))); |
| 1025 EXPECT_EQ("scope", scope2); |
| 1026 std::string id2; |
| 1027 EXPECT_TRUE((item && item->GetString("args.linked_id.id", &id2))); |
| 1028 EXPECT_EQ("0x2000", id2); |
| 1029 bool id2_is_global; |
| 1030 EXPECT_TRUE((item && item->GetBoolean("args.linked_id.id_is_global", |
| 1031 &id2_is_global))); |
| 1032 EXPECT_TRUE(id2_is_global); |
| 1033 } |
| 1034 |
| 1035 EXPECT_FIND_("link from a global id"); |
| 1036 { |
| 1037 std::string ph; |
| 1038 EXPECT_TRUE((item && item->GetString("ph", &ph))); |
| 1039 EXPECT_EQ("=", ph); |
| 1040 |
| 1041 EXPECT_FALSE((item && item->HasKey("scope"))); |
| 1042 std::string id1; |
| 1043 EXPECT_TRUE((item && item->GetString("id", &id1))); |
| 1044 EXPECT_EQ("0x1000", id1); |
| 1045 bool id1_is_global; |
| 1046 EXPECT_TRUE((item && item->GetBoolean("id_is_global", &id1_is_global))); |
| 1047 EXPECT_TRUE(id1_is_global); |
| 1048 |
| 1049 EXPECT_FALSE((item && item->HasKey("args.linked_id.scope"))); |
| 1050 EXPECT_FALSE((item && item->HasKey("args.linked_id.id_is_global"))); |
| 1051 std::string id2; |
| 1052 EXPECT_TRUE((item && item->GetString("args.linked_id.id", &id2))); |
| 1053 EXPECT_EQ("0x2000", id2); |
| 1054 } |
| 1055 |
| 1056 EXPECT_FIND_("link to a composite id"); |
| 1057 { |
| 1058 std::string ph; |
| 1059 EXPECT_TRUE((item && item->GetString("ph", &ph))); |
| 1060 EXPECT_EQ("=", ph); |
| 1061 |
| 1062 EXPECT_FALSE((item && item->HasKey("scope"))); |
| 1063 std::string id1; |
| 1064 EXPECT_TRUE((item && item->GetString("id", &id1))); |
| 1065 EXPECT_EQ("0x1000", id1); |
| 1066 |
| 1067 std::string scope2; |
| 1068 EXPECT_TRUE((item && item->GetString("args.linked_id.scope", &scope2))); |
| 1069 EXPECT_EQ("scope", scope2); |
| 1070 const ListValue* id2 = NULL; |
| 1071 EXPECT_TRUE((item && item->GetList("args.linked_id.id", &id2))); |
| 1072 EXPECT_EQ(2u, id2->GetSize()); |
| 1073 std::string part1, part2; |
| 1074 EXPECT_TRUE(id2->GetString(0, &part1)); |
| 1075 EXPECT_EQ("0x2000", part1); |
| 1076 EXPECT_TRUE(id2->GetString(1, &part2)); |
| 1077 EXPECT_EQ("0x3000", part2); |
| 1078 bool id2_is_global; |
| 1079 EXPECT_TRUE((item && item->GetBoolean("args.linked_id.id_is_global", |
| 1080 &id2_is_global))); |
| 1081 EXPECT_TRUE(id2_is_global); |
| 1082 } |
1004 } | 1083 } |
1005 | 1084 |
1006 void TraceManyInstantEvents(int thread_id, int num_events, | 1085 void TraceManyInstantEvents(int thread_id, int num_events, |
1007 WaitableEvent* task_complete_event) { | 1086 WaitableEvent* task_complete_event) { |
1008 for (int i = 0; i < num_events; i++) { | 1087 for (int i = 0; i < num_events; i++) { |
1009 TRACE_EVENT_INSTANT2("all", "multi thread event", | 1088 TRACE_EVENT_INSTANT2("all", "multi thread event", |
1010 TRACE_EVENT_SCOPE_THREAD, | 1089 TRACE_EVENT_SCOPE_THREAD, |
1011 "thread", thread_id, | 1090 "thread", thread_id, |
1012 "event", i); | 1091 "event", i); |
1013 } | 1092 } |
(...skipping 2205 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3219 | 3298 |
3220 TEST_F(TraceEventTestFixture, ClockSyncEventsAreAlwaysAddedToTrace) { | 3299 TEST_F(TraceEventTestFixture, ClockSyncEventsAreAlwaysAddedToTrace) { |
3221 BeginSpecificTrace("-*"); | 3300 BeginSpecificTrace("-*"); |
3222 TRACE_EVENT_CLOCK_SYNC_RECEIVER(1); | 3301 TRACE_EVENT_CLOCK_SYNC_RECEIVER(1); |
3223 EndTraceAndFlush(); | 3302 EndTraceAndFlush(); |
3224 EXPECT_TRUE(FindNamePhase("clock_sync", "c")); | 3303 EXPECT_TRUE(FindNamePhase("clock_sync", "c")); |
3225 } | 3304 } |
3226 | 3305 |
3227 } // namespace trace_event | 3306 } // namespace trace_event |
3228 } // namespace base | 3307 } // namespace base |
OLD | NEW |