Index: base/trace_event/trace_event_unittest.cc |
diff --git a/base/trace_event/trace_event_unittest.cc b/base/trace_event/trace_event_unittest.cc |
index ad3fe92baace2dd598443e495454e8782bfd3e16..d7024af6dd756c32b17174b6b489f5787b23b345 100644 |
--- a/base/trace_event/trace_event_unittest.cc |
+++ b/base/trace_event/trace_event_unittest.cc |
@@ -518,10 +518,16 @@ void TraceWithAllMacroVariants(WaitableEvent* task_complete_event) { |
TRACE_EVENT_SCOPED_CONTEXT("all", "TRACE_EVENT_SCOPED_CONTEXT call", |
context_id); |
- TRACE_BIND_IDS("all", "TRACE_BIND_IDS simple call", 0x1000, 0x2000); |
- TRACE_BIND_IDS("all", "TRACE_BIND_IDS scoped call", |
+ TRACE_LINK_IDS("all", "simple linking", 0x1000, 0x2000); |
+ TRACE_LINK_IDS("all", "link scoped ids", |
TRACE_ID_WITH_SCOPE("scope 1", 0x1000), |
TRACE_ID_WITH_SCOPE("scope 2", 0x2000)); |
+ TRACE_LINK_IDS("all", "link to a global id", 0x1000, |
+ GLOBAL_TRACE_ID_WITH_SCOPE("scope", 0x2000)); |
+ TRACE_LINK_IDS("all", "link from a global id", |
+ GLOBAL_TRACE_ID(0x1000), 0x2000); |
+ TRACE_LINK_IDS("all", "link to a composite id", 0x1000, |
+ GLOBAL_TRACE_ID_WITH_SCOPE("scope", 0x2000, 0x3000)); |
} // Scope close causes TRACE_EVENT0 etc to send their END events. |
if (task_complete_event) |
@@ -963,44 +969,117 @@ void ValidateAllTraceMacrosCreatedData(const ListValue& trace_parsed) { |
EXPECT_EQ("0x20151021", id); |
} |
- EXPECT_FIND_("TRACE_BIND_IDS simple call"); |
+ EXPECT_FIND_("simple linking"); |
{ |
std::string ph; |
EXPECT_TRUE((item && item->GetString("ph", &ph))); |
EXPECT_EQ("=", ph); |
EXPECT_FALSE((item && item->HasKey("scope"))); |
- std::string id; |
- EXPECT_TRUE((item && item->GetString("id", &id))); |
- EXPECT_EQ("0x1000", id); |
+ EXPECT_FALSE((item && item->HasKey("id_is_global"))); |
+ std::string id1; |
+ EXPECT_TRUE((item && item->GetString("id", &id1))); |
+ EXPECT_EQ("0x1000", id1); |
- EXPECT_FALSE((item && item->HasKey("args.bind_scope"))); |
- std::string bind_id; |
- EXPECT_TRUE((item && item->GetString("bind_id", &id))); |
- EXPECT_EQ("0x2000", id); |
+ EXPECT_FALSE((item && item->HasKey("args.linked_id.scope"))); |
+ EXPECT_FALSE((item && item->HasKey("args.linked_id.id_is_global"))); |
+ std::string id2; |
+ EXPECT_TRUE((item && item->GetString("args.linked_id.id", &id2))); |
+ EXPECT_EQ("0x2000", id2); |
} |
- EXPECT_FIND_("TRACE_BIND_IDS scoped call"); |
+ EXPECT_FIND_("link scoped ids"); |
{ |
std::string ph; |
EXPECT_TRUE((item && item->GetString("ph", &ph))); |
EXPECT_EQ("=", ph); |
- std::string id_scope; |
- EXPECT_TRUE((item && item->GetString("scope", &id_scope))); |
- EXPECT_EQ("scope 1", id_scope); |
- std::string id; |
- EXPECT_TRUE((item && item->GetString("id", &id))); |
- EXPECT_EQ("0x1000", id); |
+ std::string scope1; |
+ EXPECT_TRUE((item && item->GetString("scope", &scope1))); |
+ EXPECT_EQ("scope 1", scope1); |
+ std::string id1; |
+ EXPECT_TRUE((item && item->GetString("id", &id1))); |
+ EXPECT_EQ("0x1000", id1); |
+ |
+ std::string scope2; |
+ EXPECT_TRUE((item && item->GetString("args.linked_id.scope", &scope2))); |
+ EXPECT_EQ("scope 2", scope2); |
+ std::string id2; |
+ EXPECT_TRUE((item && item->GetString("args.linked_id.id", &id2))); |
+ EXPECT_EQ("0x2000", id2); |
+ } |
+ |
+ EXPECT_FIND_("link to a global id"); |
+ { |
+ std::string ph; |
+ EXPECT_TRUE((item && item->GetString("ph", &ph))); |
+ EXPECT_EQ("=", ph); |
+ |
+ EXPECT_FALSE((item && item->HasKey("scope"))); |
+ std::string id1; |
+ EXPECT_TRUE((item && item->GetString("id", &id1))); |
+ EXPECT_EQ("0x1000", id1); |
+ |
+ std::string scope2; |
+ EXPECT_TRUE((item && item->GetString("args.linked_id.scope", &scope2))); |
+ EXPECT_EQ("scope", scope2); |
+ std::string id2; |
+ EXPECT_TRUE((item && item->GetString("args.linked_id.id", &id2))); |
+ EXPECT_EQ("0x2000", id2); |
+ bool id2_is_global; |
+ EXPECT_TRUE((item && item->GetBoolean("args.linked_id.id_is_global", |
+ &id2_is_global))); |
+ EXPECT_TRUE(id2_is_global); |
+ } |
+ |
+ EXPECT_FIND_("link from a global id"); |
+ { |
+ std::string ph; |
+ EXPECT_TRUE((item && item->GetString("ph", &ph))); |
+ EXPECT_EQ("=", ph); |
- std::string bind_scope; |
- EXPECT_TRUE((item && item->GetString("args.bind_scope", &bind_scope))); |
- EXPECT_EQ("scope 2", bind_scope); |
- std::string bind_id; |
- EXPECT_TRUE((item && item->GetString("bind_id", &id))); |
- EXPECT_EQ("0x2000", id); |
+ EXPECT_FALSE((item && item->HasKey("scope"))); |
+ std::string id1; |
+ EXPECT_TRUE((item && item->GetString("id", &id1))); |
+ EXPECT_EQ("0x1000", id1); |
+ bool id1_is_global; |
+ EXPECT_TRUE((item && item->GetBoolean("id_is_global", &id1_is_global))); |
+ EXPECT_TRUE(id1_is_global); |
+ |
+ EXPECT_FALSE((item && item->HasKey("args.linked_id.scope"))); |
+ EXPECT_FALSE((item && item->HasKey("args.linked_id.id_is_global"))); |
+ std::string id2; |
+ EXPECT_TRUE((item && item->GetString("args.linked_id.id", &id2))); |
+ EXPECT_EQ("0x2000", id2); |
} |
+ EXPECT_FIND_("link to a composite id"); |
+ { |
+ std::string ph; |
+ EXPECT_TRUE((item && item->GetString("ph", &ph))); |
+ EXPECT_EQ("=", ph); |
+ |
+ EXPECT_FALSE((item && item->HasKey("scope"))); |
+ std::string id1; |
+ EXPECT_TRUE((item && item->GetString("id", &id1))); |
+ EXPECT_EQ("0x1000", id1); |
+ |
+ std::string scope2; |
+ EXPECT_TRUE((item && item->GetString("args.linked_id.scope", &scope2))); |
+ EXPECT_EQ("scope", scope2); |
+ const ListValue* id2 = NULL; |
+ EXPECT_TRUE((item && item->GetList("args.linked_id.id", &id2))); |
+ EXPECT_EQ(2u, id2->GetSize()); |
+ std::string part1, part2; |
+ EXPECT_TRUE(id2->GetString(0, &part1)); |
+ EXPECT_EQ("0x2000", part1); |
+ EXPECT_TRUE(id2->GetString(1, &part2)); |
+ EXPECT_EQ("0x3000", part2); |
+ bool id2_is_global; |
+ EXPECT_TRUE((item && item->GetBoolean("args.linked_id.id_is_global", |
+ &id2_is_global))); |
+ EXPECT_TRUE(id2_is_global); |
+ } |
} |
void TraceManyInstantEvents(int thread_id, int num_events, |