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 13 matching lines...) Expand all Loading... |
24 #include "base/process/process_handle.h" | 24 #include "base/process/process_handle.h" |
25 #include "base/single_thread_task_runner.h" | 25 #include "base/single_thread_task_runner.h" |
26 #include "base/stl_util.h" | 26 #include "base/stl_util.h" |
27 #include "base/strings/pattern.h" | 27 #include "base/strings/pattern.h" |
28 #include "base/strings/stringprintf.h" | 28 #include "base/strings/stringprintf.h" |
29 #include "base/synchronization/waitable_event.h" | 29 #include "base/synchronization/waitable_event.h" |
30 #include "base/threading/platform_thread.h" | 30 #include "base/threading/platform_thread.h" |
31 #include "base/threading/thread.h" | 31 #include "base/threading/thread.h" |
32 #include "base/time/time.h" | 32 #include "base/time/time.h" |
33 #include "base/trace_event/trace_buffer.h" | 33 #include "base/trace_event/trace_buffer.h" |
| 34 #include "base/trace_event/trace_event.h" |
34 #include "base/trace_event/trace_event_synthetic_delay.h" | 35 #include "base/trace_event/trace_event_synthetic_delay.h" |
35 #include "base/values.h" | 36 #include "base/values.h" |
36 #include "testing/gmock/include/gmock/gmock.h" | 37 #include "testing/gmock/include/gmock/gmock.h" |
37 #include "testing/gtest/include/gtest/gtest.h" | 38 #include "testing/gtest/include/gtest/gtest.h" |
38 | 39 |
39 namespace base { | 40 namespace base { |
40 namespace trace_event { | 41 namespace trace_event { |
41 | 42 |
42 namespace { | 43 namespace { |
43 | 44 |
(...skipping 469 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
513 TRACE_EVENT_ENTER_CONTEXT("all", "TRACE_EVENT_ENTER_CONTEXT call", | 514 TRACE_EVENT_ENTER_CONTEXT("all", "TRACE_EVENT_ENTER_CONTEXT call", |
514 TRACE_ID_WITH_SCOPE("scope", context_id)); | 515 TRACE_ID_WITH_SCOPE("scope", context_id)); |
515 TRACE_EVENT_LEAVE_CONTEXT("all", "TRACE_EVENT_LEAVE_CONTEXT call", | 516 TRACE_EVENT_LEAVE_CONTEXT("all", "TRACE_EVENT_LEAVE_CONTEXT call", |
516 TRACE_ID_WITH_SCOPE("scope", context_id)); | 517 TRACE_ID_WITH_SCOPE("scope", context_id)); |
517 TRACE_EVENT_SCOPED_CONTEXT("disabled-by-default-cat", | 518 TRACE_EVENT_SCOPED_CONTEXT("disabled-by-default-cat", |
518 "TRACE_EVENT_SCOPED_CONTEXT disabled call", | 519 "TRACE_EVENT_SCOPED_CONTEXT disabled call", |
519 context_id); | 520 context_id); |
520 TRACE_EVENT_SCOPED_CONTEXT("all", "TRACE_EVENT_SCOPED_CONTEXT call", | 521 TRACE_EVENT_SCOPED_CONTEXT("all", "TRACE_EVENT_SCOPED_CONTEXT call", |
521 context_id); | 522 context_id); |
522 | 523 |
523 TRACE_BIND_IDS("all", "TRACE_BIND_IDS simple call", 0x1000, 0x2000); | 524 TRACE_LINK_IDS("all", "TRACE_LINK_IDS simple call", 0x1000, 0x2000); |
524 TRACE_BIND_IDS("all", "TRACE_BIND_IDS scoped call", | 525 TRACE_LINK_IDS("all", "TRACE_LINK_IDS scoped call", |
525 TRACE_ID_WITH_SCOPE("scope 1", 0x1000), | 526 TRACE_ID_WITH_SCOPE("scope 1", 0x1000), |
526 TRACE_ID_WITH_SCOPE("scope 2", 0x2000)); | 527 TRACE_ID_WITH_SCOPE("scope 2", 0x2000)); |
| 528 TRACE_LINK_IDS("all", "TRACE_LINK_IDS to a local ID", 0x1000, |
| 529 TRACE_ID_LOCAL(0x2000)); |
| 530 TRACE_LINK_IDS("all", "TRACE_LINK_IDS to a global ID", 0x1000, |
| 531 TRACE_ID_GLOBAL(0x2000)); |
527 | 532 |
528 TRACE_EVENT_ASYNC_BEGIN0("all", "async default process scope", 0x1000); | 533 TRACE_EVENT_ASYNC_BEGIN0("all", "async default process scope", 0x1000); |
529 TRACE_EVENT_ASYNC_BEGIN0("all", "async local id", TRACE_ID_LOCAL(0x2000)); | 534 TRACE_EVENT_ASYNC_BEGIN0("all", "async local id", TRACE_ID_LOCAL(0x2000)); |
530 TRACE_EVENT_ASYNC_BEGIN0("all", "async global id", TRACE_ID_GLOBAL(0x3000)); | 535 TRACE_EVENT_ASYNC_BEGIN0("all", "async global id", TRACE_ID_GLOBAL(0x3000)); |
531 TRACE_EVENT_ASYNC_BEGIN0("all", "async global id with scope string", | 536 TRACE_EVENT_ASYNC_BEGIN0("all", "async global id with scope string", |
532 TRACE_ID_WITH_SCOPE("scope string", | 537 TRACE_ID_WITH_SCOPE("scope string", |
533 TRACE_ID_GLOBAL(0x4000))); | 538 TRACE_ID_GLOBAL(0x4000))); |
534 } // Scope close causes TRACE_EVENT0 etc to send their END events. | 539 } // Scope close causes TRACE_EVENT0 etc to send their END events. |
535 | 540 |
536 if (task_complete_event) | 541 if (task_complete_event) |
(...skipping 428 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
965 std::string ph; | 970 std::string ph; |
966 EXPECT_TRUE((item && item->GetString("ph", &ph))); | 971 EXPECT_TRUE((item && item->GetString("ph", &ph))); |
967 EXPECT_EQ(")", ph); | 972 EXPECT_EQ(")", ph); |
968 | 973 |
969 std::string id; | 974 std::string id; |
970 EXPECT_FALSE((item && item->HasKey("scope"))); | 975 EXPECT_FALSE((item && item->HasKey("scope"))); |
971 EXPECT_TRUE((item && item->GetString("id", &id))); | 976 EXPECT_TRUE((item && item->GetString("id", &id))); |
972 EXPECT_EQ("0x20151021", id); | 977 EXPECT_EQ("0x20151021", id); |
973 } | 978 } |
974 | 979 |
975 EXPECT_FIND_("TRACE_BIND_IDS simple call"); | 980 EXPECT_FIND_("TRACE_LINK_IDS simple call"); |
976 { | 981 { |
977 std::string ph; | 982 std::string ph; |
978 EXPECT_TRUE((item && item->GetString("ph", &ph))); | 983 EXPECT_TRUE((item && item->GetString("ph", &ph))); |
979 EXPECT_EQ("=", ph); | 984 EXPECT_EQ("=", ph); |
980 | 985 |
981 EXPECT_FALSE((item && item->HasKey("scope"))); | 986 EXPECT_FALSE((item && item->HasKey("scope"))); |
982 std::string id; | 987 std::string id1; |
983 EXPECT_TRUE((item && item->GetString("id", &id))); | 988 EXPECT_TRUE((item && item->GetString("id", &id1))); |
984 EXPECT_EQ("0x1000", id); | 989 EXPECT_EQ("0x1000", id1); |
985 | 990 |
986 EXPECT_FALSE((item && item->HasKey("args.bind_scope"))); | 991 EXPECT_FALSE((item && item->HasKey("args.linked_id.scope"))); |
987 std::string bind_id; | 992 std::string id2; |
988 EXPECT_TRUE((item && item->GetString("bind_id", &id))); | 993 EXPECT_TRUE((item && item->GetString("args.linked_id.id", &id2))); |
989 EXPECT_EQ("0x2000", id); | 994 EXPECT_EQ("0x2000", id2); |
990 } | 995 } |
991 | 996 |
992 EXPECT_FIND_("TRACE_BIND_IDS scoped call"); | 997 EXPECT_FIND_("TRACE_LINK_IDS scoped call"); |
993 { | 998 { |
994 std::string ph; | 999 std::string ph; |
995 EXPECT_TRUE((item && item->GetString("ph", &ph))); | 1000 EXPECT_TRUE((item && item->GetString("ph", &ph))); |
996 EXPECT_EQ("=", ph); | 1001 EXPECT_EQ("=", ph); |
997 | 1002 |
998 std::string id_scope; | 1003 std::string scope1; |
999 EXPECT_TRUE((item && item->GetString("scope", &id_scope))); | 1004 EXPECT_TRUE((item && item->GetString("scope", &scope1))); |
1000 EXPECT_EQ("scope 1", id_scope); | 1005 EXPECT_EQ("scope 1", scope1); |
1001 std::string id; | 1006 std::string id1; |
1002 EXPECT_TRUE((item && item->GetString("id", &id))); | 1007 EXPECT_TRUE((item && item->GetString("id", &id1))); |
1003 EXPECT_EQ("0x1000", id); | 1008 EXPECT_EQ("0x1000", id1); |
1004 | 1009 |
1005 std::string bind_scope; | 1010 std::string scope2; |
1006 EXPECT_TRUE((item && item->GetString("args.bind_scope", &bind_scope))); | 1011 EXPECT_TRUE((item && item->GetString("args.linked_id.scope", &scope2))); |
1007 EXPECT_EQ("scope 2", bind_scope); | 1012 EXPECT_EQ("scope 2", scope2); |
1008 std::string bind_id; | 1013 std::string id2; |
1009 EXPECT_TRUE((item && item->GetString("bind_id", &id))); | 1014 EXPECT_TRUE((item && item->GetString("args.linked_id.id", &id2))); |
1010 EXPECT_EQ("0x2000", id); | 1015 EXPECT_EQ("0x2000", id2); |
| 1016 } |
| 1017 |
| 1018 EXPECT_FIND_("TRACE_LINK_IDS to a local ID"); |
| 1019 { |
| 1020 std::string ph; |
| 1021 EXPECT_TRUE((item && item->GetString("ph", &ph))); |
| 1022 EXPECT_EQ("=", ph); |
| 1023 |
| 1024 EXPECT_FALSE((item && item->HasKey("scope"))); |
| 1025 std::string id1; |
| 1026 EXPECT_TRUE((item && item->GetString("id", &id1))); |
| 1027 EXPECT_EQ("0x1000", id1); |
| 1028 |
| 1029 EXPECT_FALSE((item && item->HasKey("args.linked_id.scope"))); |
| 1030 std::string id2; |
| 1031 EXPECT_TRUE((item && item->GetString("args.linked_id.id2.local", &id2))); |
| 1032 EXPECT_EQ("0x2000", id2); |
| 1033 } |
| 1034 |
| 1035 EXPECT_FIND_("TRACE_LINK_IDS to 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 |
| 1046 EXPECT_FALSE((item && item->HasKey("args.linked_id.scope"))); |
| 1047 std::string id2; |
| 1048 EXPECT_TRUE((item && item->GetString("args.linked_id.id2.global", &id2))); |
| 1049 EXPECT_EQ("0x2000", id2); |
1011 } | 1050 } |
1012 | 1051 |
1013 EXPECT_FIND_("async default process scope"); | 1052 EXPECT_FIND_("async default process scope"); |
1014 { | 1053 { |
1015 std::string ph; | 1054 std::string ph; |
1016 EXPECT_TRUE((item && item->GetString("ph", &ph))); | 1055 EXPECT_TRUE((item && item->GetString("ph", &ph))); |
1017 EXPECT_EQ("S", ph); | 1056 EXPECT_EQ("S", ph); |
1018 | 1057 |
1019 std::string id; | 1058 std::string id; |
1020 EXPECT_TRUE((item && item->GetString("id", &id))); | 1059 EXPECT_TRUE((item && item->GetString("id", &id))); |
(...skipping 2381 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3402 | 3441 |
3403 TEST_F(TraceEventTestFixture, ClockSyncEventsAreAlwaysAddedToTrace) { | 3442 TEST_F(TraceEventTestFixture, ClockSyncEventsAreAlwaysAddedToTrace) { |
3404 BeginSpecificTrace("-*"); | 3443 BeginSpecificTrace("-*"); |
3405 TRACE_EVENT_CLOCK_SYNC_RECEIVER(1); | 3444 TRACE_EVENT_CLOCK_SYNC_RECEIVER(1); |
3406 EndTraceAndFlush(); | 3445 EndTraceAndFlush(); |
3407 EXPECT_TRUE(FindNamePhase("clock_sync", "c")); | 3446 EXPECT_TRUE(FindNamePhase("clock_sync", "c")); |
3408 } | 3447 } |
3409 | 3448 |
3410 } // namespace trace_event | 3449 } // namespace trace_event |
3411 } // namespace base | 3450 } // namespace base |
OLD | NEW |