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..969fd18168812a0374c9ac8ca0a005f1d6900a22 100644 |
--- a/base/trace_event/trace_event_unittest.cc |
+++ b/base/trace_event/trace_event_unittest.cc |
@@ -522,6 +522,13 @@ void TraceWithAllMacroVariants(WaitableEvent* task_complete_event) { |
TRACE_BIND_IDS("all", "TRACE_BIND_IDS scoped call", |
TRACE_ID_WITH_SCOPE("scope 1", 0x1000), |
TRACE_ID_WITH_SCOPE("scope 2", 0x2000)); |
+ |
+ TRACE_EVENT_ASYNC_BEGIN0("all", "async default process scope", 0x1000); |
+ TRACE_EVENT_ASYNC_BEGIN0("all", "async local id", TRACE_ID_LOCAL(0x2000)); |
+ TRACE_EVENT_ASYNC_BEGIN0("all", "async global id", TRACE_ID_GLOBAL(0x3000)); |
+ TRACE_EVENT_ASYNC_BEGIN0("all", "async global id with scope string", |
+ TRACE_ID_WITH_SCOPE("scope string", |
+ TRACE_ID_GLOBAL(0x4000))); |
} // Scope close causes TRACE_EVENT0 etc to send their END events. |
if (task_complete_event) |
@@ -1001,6 +1008,63 @@ void ValidateAllTraceMacrosCreatedData(const ListValue& trace_parsed) { |
EXPECT_EQ("0x2000", id); |
} |
+ EXPECT_FIND_("async default process scope"); |
+ { |
+ std::string ph; |
+ EXPECT_TRUE((item && item->GetString("ph", &ph))); |
+ EXPECT_EQ("S", ph); |
+ |
+ std::string id; |
+ EXPECT_TRUE((item && item->GetString("id", &id))); |
+ EXPECT_EQ("0x1000", id); |
+ bool id_is_global; |
+ EXPECT_FALSE((item && item->GetBoolean("id_is_global", &id_is_global))); |
+ } |
+ |
+ EXPECT_FIND_("async local id"); |
+ { |
+ std::string ph; |
+ EXPECT_TRUE((item && item->GetString("ph", &ph))); |
+ EXPECT_EQ("S", ph); |
+ |
+ std::string id; |
+ EXPECT_TRUE((item && item->GetString("id", &id))); |
+ EXPECT_EQ("0x2000", id); |
+ bool id_is_global = true; |
+ EXPECT_TRUE((item && item->GetBoolean("id_is_global", &id_is_global))); |
+ EXPECT_FALSE(id_is_global); |
+ } |
+ |
+ EXPECT_FIND_("async global id"); |
+ { |
+ std::string ph; |
+ EXPECT_TRUE((item && item->GetString("ph", &ph))); |
+ EXPECT_EQ("S", ph); |
+ |
+ std::string id; |
+ EXPECT_TRUE((item && item->GetString("id", &id))); |
+ EXPECT_EQ("0x3000", id); |
+ bool id_is_global = false; |
+ EXPECT_TRUE((item && item->GetBoolean("id_is_global", &id_is_global))); |
+ EXPECT_TRUE(id_is_global); |
+ } |
+ |
+ EXPECT_FIND_("async global id with scope string"); |
+ { |
+ std::string ph; |
+ EXPECT_TRUE((item && item->GetString("ph", &ph))); |
+ EXPECT_EQ("S", ph); |
+ |
+ std::string id; |
+ EXPECT_TRUE((item && item->GetString("id", &id))); |
+ EXPECT_EQ("0x4000", id); |
+ bool id_is_global = false; |
+ EXPECT_TRUE((item && item->GetBoolean("id_is_global", &id_is_global))); |
+ EXPECT_TRUE(id_is_global); |
+ std::string scope; |
+ EXPECT_TRUE((item && item->GetString("scope", &scope))); |
+ EXPECT_EQ("scope string", scope); |
+ } |
} |
void TraceManyInstantEvents(int thread_id, int num_events, |