| Index: base/debug/trace_event_unittest.cc
|
| diff --git a/base/debug/trace_event_unittest.cc b/base/debug/trace_event_unittest.cc
|
| index fc248e11c3526c32d04d3219b8ebba6fea65a456..028e95b37fb1742410bba1958e601f127e021ec7 100644
|
| --- a/base/debug/trace_event_unittest.cc
|
| +++ b/base/debug/trace_event_unittest.cc
|
| @@ -45,6 +45,10 @@ class TraceEventTestFixture : public testing::Test {
|
| scoped_refptr<TraceLog::RefCountedString> events_str);
|
| bool FindMatchingTraceEntry(const JsonKeyValue* key_values);
|
| bool FindNamePhase(const char* name, const char* phase);
|
| + bool FindNamePhaseKeyValue(const char* name,
|
| + const char* phase,
|
| + const char* key,
|
| + const char* value);
|
| bool FindMatchingValue(const char* key,
|
| const char* value);
|
| bool FindNonMatchingValue(const char* key,
|
| @@ -176,6 +180,19 @@ bool TraceEventTestFixture::FindNamePhase(const char* name, const char* phase) {
|
| return FindMatchingTraceEntry(key_values);
|
| }
|
|
|
| +bool TraceEventTestFixture::FindNamePhaseKeyValue(const char* name,
|
| + const char* phase,
|
| + const char* key,
|
| + const char* value) {
|
| + JsonKeyValue key_values[] = {
|
| + {"name", name, IS_EQUAL},
|
| + {"ph", phase, IS_EQUAL},
|
| + {key, value, IS_EQUAL},
|
| + {0, 0, IS_EQUAL}
|
| + };
|
| + return FindMatchingTraceEntry(key_values);
|
| +}
|
| +
|
| bool TraceEventTestFixture::FindMatchingValue(const char* key,
|
| const char* value) {
|
| JsonKeyValue key_values[] = {
|
| @@ -262,10 +279,10 @@ std::vector<DictionaryValue*> FindTraceEntries(
|
|
|
| void TraceWithAllMacroVariants(WaitableEvent* task_complete_event) {
|
| {
|
| - TRACE_EVENT_BEGIN_ETW("TRACE_EVENT_BEGIN_ETW call", 1122, "extrastring1");
|
| - TRACE_EVENT_END_ETW("TRACE_EVENT_END_ETW call", 3344, "extrastring2");
|
| + TRACE_EVENT_BEGIN_ETW("TRACE_EVENT_BEGIN_ETW call", 0x1122, "extrastring1");
|
| + TRACE_EVENT_END_ETW("TRACE_EVENT_END_ETW call", 0x3344, "extrastring2");
|
| TRACE_EVENT_INSTANT_ETW("TRACE_EVENT_INSTANT_ETW call",
|
| - 5566, "extrastring3");
|
| + 0x5566, "extrastring3");
|
|
|
| TRACE_EVENT0("all", "TRACE_EVENT0 call");
|
| TRACE_EVENT1("all", "TRACE_EVENT1 call", "name1", "value1");
|
| @@ -310,9 +327,9 @@ void ValidateAllTraceMacrosCreatedData(const ListValue& trace_parsed) {
|
| EXPECT_FIND_("all");
|
| EXPECT_FIND_("TRACE_EVENT_BEGIN_ETW call");
|
| {
|
| - int int_val = 0;
|
| - EXPECT_TRUE(item && item->GetInteger("args.id", &int_val));
|
| - EXPECT_EQ(1122, int_val);
|
| + std::string str_val;
|
| + EXPECT_TRUE(item && item->GetString("args.id", &str_val));
|
| + EXPECT_STREQ("1122", str_val.c_str());
|
| }
|
| EXPECT_SUB_FIND_("extrastring1");
|
| EXPECT_FIND_("TRACE_EVENT_END_ETW call");
|
| @@ -633,6 +650,33 @@ TEST_F(TraceEventTestFixture, DataCapturedThreshold) {
|
| EXPECT_NOT_FIND_BE_("4thresholdlong2");
|
| }
|
|
|
| +// Test Start/Finish events
|
| +TEST_F(TraceEventTestFixture, StartFinishEvents) {
|
| + ManualTestSetUp();
|
| + TraceLog::GetInstance()->SetEnabled(true);
|
| +
|
| + unsigned long long id = 0xfeedbeeffeedbeefull;
|
| + TRACE_EVENT_START0( "cat", "name1", id);
|
| + TRACE_EVENT_FINISH0("cat", "name1", id);
|
| + TRACE_EVENT_BEGIN0( "cat", "name2");
|
| + TRACE_EVENT_START0( "cat", "name3", 0);
|
| +
|
| + TraceLog::GetInstance()->SetEnabled(false);
|
| +
|
| + EXPECT_TRUE(FindNamePhase("name1", "S"));
|
| + EXPECT_TRUE(FindNamePhase("name1", "F"));
|
| +
|
| + std::string id_str;
|
| + StringAppendF(&id_str, "%llx", id);
|
| +
|
| + EXPECT_TRUE(FindNamePhaseKeyValue("name1", "S", "ext", id_str.c_str()));
|
| + EXPECT_TRUE(FindNamePhaseKeyValue("name1", "F", "ext", id_str.c_str()));
|
| +
|
| + // ext parameter should not be present when zero:
|
| + EXPECT_FALSE(FindNamePhaseKeyValue("name2", "B", "ext", "0"));
|
| + EXPECT_FALSE(FindNamePhaseKeyValue("name3", "S", "ext", "0"));
|
| +}
|
| +
|
| // Test that static strings are not copied.
|
| TEST_F(TraceEventTestFixture, StaticStringVsString) {
|
| ManualTestSetUp();
|
|
|