Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(23)

Unified Diff: base/test/trace_event_analyzer_unittest.cc

Issue 8682027: Add TraceAnalyzer support for START/FINISH events and JSON error logging (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 9 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « base/test/trace_event_analyzer.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: base/test/trace_event_analyzer_unittest.cc
diff --git a/base/test/trace_event_analyzer_unittest.cc b/base/test/trace_event_analyzer_unittest.cc
index 583785083adf583759bc4e209de32e6b556de713..3a0e6bb9f6963c03a8b010dd356637c4f48b2c83 100644
--- a/base/test/trace_event_analyzer_unittest.cc
+++ b/base/test/trace_event_analyzer_unittest.cc
@@ -111,6 +111,7 @@ TEST_F(TraceEventAnalyzerTest, QueryEventMember) {
event.phase = TRACE_EVENT_PHASE_BEGIN;
event.category = "category";
event.name = "name";
+ event.id = "1";
event.arg_numbers["num"] = 7.0;
event.arg_strings["str"] = "the string";
@@ -122,6 +123,7 @@ TEST_F(TraceEventAnalyzerTest, QueryEventMember) {
other.phase = TRACE_EVENT_PHASE_END;
other.category = "category2";
other.name = "name2";
+ other.id = "2";
other.arg_numbers["num2"] = 8.0;
other.arg_strings["str2"] = "the string 2";
@@ -137,6 +139,7 @@ TEST_F(TraceEventAnalyzerTest, QueryEventMember) {
Query event_category =
(Query(EVENT_CATEGORY) == Query::String(event.category));
Query event_name = (Query(EVENT_NAME) == Query::String(event.name));
+ Query event_id = (Query(EVENT_ID) == Query::String(event.id));
Query event_has_arg1 = Query(EVENT_HAS_NUMBER_ARG, "num");
Query event_has_arg2 = Query(EVENT_HAS_STRING_ARG, "str");
Query event_arg1 =
@@ -151,6 +154,7 @@ TEST_F(TraceEventAnalyzerTest, QueryEventMember) {
Query other_category =
(Query(OTHER_CATEGORY) == Query::String(other.category));
Query other_name = (Query(OTHER_NAME) == Query::String(other.name));
+ Query other_id = (Query(OTHER_ID) == Query::String(other.id));
Query other_has_arg1 = Query(OTHER_HAS_NUMBER_ARG, "num2");
Query other_has_arg2 = Query(OTHER_HAS_STRING_ARG, "str2");
Query other_arg1 =
@@ -165,6 +169,7 @@ TEST_F(TraceEventAnalyzerTest, QueryEventMember) {
EXPECT_TRUE(event_phase.Evaluate(event));
EXPECT_TRUE(event_category.Evaluate(event));
EXPECT_TRUE(event_name.Evaluate(event));
+ EXPECT_TRUE(event_id.Evaluate(event));
EXPECT_TRUE(event_has_arg1.Evaluate(event));
EXPECT_TRUE(event_has_arg2.Evaluate(event));
EXPECT_TRUE(event_arg1.Evaluate(event));
@@ -176,6 +181,7 @@ TEST_F(TraceEventAnalyzerTest, QueryEventMember) {
EXPECT_TRUE(other_phase.Evaluate(event));
EXPECT_TRUE(other_category.Evaluate(event));
EXPECT_TRUE(other_name.Evaluate(event));
+ EXPECT_TRUE(other_id.Evaluate(event));
EXPECT_TRUE(other_has_arg1.Evaluate(event));
EXPECT_TRUE(other_has_arg2.Evaluate(event));
EXPECT_TRUE(other_arg1.Evaluate(event));
@@ -190,6 +196,7 @@ TEST_F(TraceEventAnalyzerTest, QueryEventMember) {
EXPECT_FALSE(event_phase.Evaluate(other));
EXPECT_FALSE(event_category.Evaluate(other));
EXPECT_FALSE(event_name.Evaluate(other));
+ EXPECT_FALSE(event_id.Evaluate(other));
EXPECT_FALSE(event_has_arg1.Evaluate(other));
EXPECT_FALSE(event_has_arg2.Evaluate(other));
EXPECT_FALSE(event_arg1.Evaluate(other));
@@ -414,7 +421,7 @@ TEST_F(TraceEventAnalyzerTest, Duration) {
EXPECT_STREQ("name3", found[1]->name.c_str());
}
-// Test that arithmetic operators work.
+// Test AssociateBeginEndEvents
TEST_F(TraceEventAnalyzerTest, BeginEndAssocations) {
using namespace trace_analyzer;
ManualSetUp();
@@ -439,6 +446,36 @@ TEST_F(TraceEventAnalyzerTest, BeginEndAssocations) {
EXPECT_STREQ("name2", found[0]->name.c_str());
}
+// Test AssociateStartFinishEvents
+TEST_F(TraceEventAnalyzerTest, StartFinishAssocations) {
+ using namespace trace_analyzer;
+ ManualSetUp();
+
+ BeginTracing();
+ {
+ TRACE_EVENT_FINISH0("cat1", "name1", 0xA); // does not match / out of order
+ TRACE_EVENT_START0("cat1", "name1", 0xB);
+ TRACE_EVENT_START0("cat1", "name1", 0xC);
+ TRACE_EVENT_INSTANT0("cat1", "name1"); // noise
+ TRACE_EVENT0("cat1", "name1"); // noise
+ TRACE_EVENT_FINISH0("cat1", "name1", 0xB);
+ TRACE_EVENT_FINISH0("cat1", "name1", 0xC);
+ TRACE_EVENT_START0("cat1", "name1", 0xA); // does not match / out of order
+ }
+ EndTracing();
+
+ scoped_ptr<TraceAnalyzer>
+ analyzer(TraceAnalyzer::Create(output_.json_output));
+ ASSERT_TRUE(analyzer.get());
+ analyzer->AssociateStartFinishEvents();
+
+ TraceAnalyzer::TraceEventVector found;
+ analyzer->FindEvents(Query::MatchStartWithFinish(), &found);
+ ASSERT_EQ(2u, found.size());
+ EXPECT_STRCASEEQ("B", found[0]->id.c_str());
+ EXPECT_STRCASEEQ("C", found[1]->id.c_str());
+}
+
// Test that the TraceAnalyzer custom associations work.
TEST_F(TraceEventAnalyzerTest, CustomAssociations) {
using namespace trace_analyzer;
« no previous file with comments | « base/test/trace_event_analyzer.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698