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

Side by Side Diff: base/test/trace_event_analyzer_unittest.cc

Issue 8438058: Clean up some API in trace_event_analyzer.h and add some getters. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: added test for new APIs 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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/bind.h" 5 #include "base/bind.h"
6 #include "base/test/trace_event_analyzer.h" 6 #include "base/test/trace_event_analyzer.h"
7 #include "testing/gmock/include/gmock/gmock.h" 7 #include "testing/gmock/include/gmock/gmock.h"
8 #include "testing/gtest/include/gtest/gtest.h" 8 #include "testing/gtest/include/gtest/gtest.h"
9 9
10 namespace trace_analyzer { 10 namespace trace_analyzer {
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
63 scoped_ptr<TraceAnalyzer> 63 scoped_ptr<TraceAnalyzer>
64 analyzer(TraceAnalyzer::Create(output_.json_output)); 64 analyzer(TraceAnalyzer::Create(output_.json_output));
65 ASSERT_TRUE(analyzer.get()); 65 ASSERT_TRUE(analyzer.get());
66 66
67 // Search for all events and verify that nothing is returned. 67 // Search for all events and verify that nothing is returned.
68 TraceAnalyzer::TraceEventVector found; 68 TraceAnalyzer::TraceEventVector found;
69 analyzer->FindEvents(Query::Bool(true), &found); 69 analyzer->FindEvents(Query::Bool(true), &found);
70 EXPECT_EQ(0u, found.size()); 70 EXPECT_EQ(0u, found.size());
71 } 71 }
72 72
73 TEST_F(TraceEventAnalyzerTest, TraceEvent) {
74 using namespace trace_analyzer;
75 ManualSetUp();
76
77 int int_num = 2;
78 double double_num = 3.5;
79 const char* str = "the string";
80
81 TraceEvent event;
82 event.arg_numbers["false"] = 0.0;
83 event.arg_numbers["true"] = 1.0;
84 event.arg_numbers["int"] = static_cast<double>(int_num);
85 event.arg_numbers["double"] = double_num;
86 event.arg_strings["string"] = str;
87
88 ASSERT_TRUE(event.HasNumberArg("false"));
89 ASSERT_TRUE(event.HasNumberArg("true"));
90 ASSERT_TRUE(event.HasNumberArg("int"));
91 ASSERT_TRUE(event.HasNumberArg("double"));
92 ASSERT_TRUE(event.HasStringArg("string"));
93 ASSERT_FALSE(event.HasNumberArg("notfound"));
94 ASSERT_FALSE(event.HasStringArg("notfound"));
95
96 EXPECT_FALSE(event.GetKnownArgAsBool("false"));
97 EXPECT_TRUE(event.GetKnownArgAsBool("true"));
98 EXPECT_EQ(int_num, event.GetKnownArgAsInt("int"));
99 EXPECT_EQ(double_num, event.GetKnownArgAsDouble("double"));
100 EXPECT_STREQ(str, event.GetKnownArgAsString("string").c_str());
101 }
102
73 TEST_F(TraceEventAnalyzerTest, QueryEventMember) { 103 TEST_F(TraceEventAnalyzerTest, QueryEventMember) {
74 using namespace trace_analyzer; 104 using namespace trace_analyzer;
75 ManualSetUp(); 105 ManualSetUp();
76 106
77 TraceEvent event; 107 TraceEvent event;
78 event.thread.process_id = 3; 108 event.thread.process_id = 3;
79 event.thread.thread_id = 4; 109 event.thread.thread_id = 4;
80 event.timestamp = 1.5; 110 event.timestamp = 1.5;
81 event.phase = base::debug::TRACE_EVENT_PHASE_BEGIN; 111 event.phase = base::debug::TRACE_EVENT_PHASE_BEGIN;
82 event.category = "category"; 112 event.category = "category";
83 event.name = "name"; 113 event.name = "name";
84 event.arg_numbers["num"] = 7.0; 114 event.arg_numbers["num"] = 7.0;
85 event.arg_strings["str"] = "the string"; 115 event.arg_strings["str"] = "the string";
86 116
87 // Other event with all different members: 117 // Other event with all different members:
88 TraceEvent other; 118 TraceEvent other;
89 other.thread.process_id = 5; 119 other.thread.process_id = 5;
90 other.thread.thread_id = 6; 120 other.thread.thread_id = 6;
91 other.timestamp = 2.5; 121 other.timestamp = 2.5;
92 other.phase = base::debug::TRACE_EVENT_PHASE_END; 122 other.phase = base::debug::TRACE_EVENT_PHASE_END;
93 other.category = "category2"; 123 other.category = "category2";
94 other.name = "name2"; 124 other.name = "name2";
95 other.arg_numbers["num2"] = 8.0; 125 other.arg_numbers["num2"] = 8.0;
96 other.arg_strings["str2"] = "the string 2"; 126 other.arg_strings["str2"] = "the string 2";
97 127
98 event.other_event = &other; 128 event.other_event = &other;
99 double duration; 129 ASSERT_TRUE(event.has_other_event());
100 ASSERT_TRUE(event.GetAbsTimeToOtherEvent(&duration)); 130 double duration = event.GetAbsTimeToOtherEvent();
101 131
102 Query event_pid = (Query(EVENT_PID) == Query::Int(event.thread.process_id)); 132 Query event_pid = (Query(EVENT_PID) == Query::Int(event.thread.process_id));
103 Query event_tid = (Query(EVENT_TID) == Query::Int(event.thread.thread_id)); 133 Query event_tid = (Query(EVENT_TID) == Query::Int(event.thread.thread_id));
104 Query event_time = (Query(EVENT_TIME) == Query::Double(event.timestamp)); 134 Query event_time = (Query(EVENT_TIME) == Query::Double(event.timestamp));
105 Query event_duration = (Query(EVENT_DURATION) == Query::Double(duration)); 135 Query event_duration = (Query(EVENT_DURATION) == Query::Double(duration));
106 Query event_phase = (Query(EVENT_PHASE) == Query::Phase(event.phase)); 136 Query event_phase = (Query(EVENT_PHASE) == Query::Phase(event.phase));
107 Query event_category = 137 Query event_category =
108 (Query(EVENT_CATEGORY) == Query::String(event.category)); 138 (Query(EVENT_CATEGORY) == Query::String(event.category));
109 Query event_name = (Query(EVENT_NAME) == Query::String(event.name)); 139 Query event_name = (Query(EVENT_NAME) == Query::String(event.name));
110 Query event_has_arg1 = Query(EVENT_HAS_ARG, "num"); 140 Query event_has_arg1 = Query(EVENT_HAS_NUMBER_ARG, "num");
111 Query event_has_arg2 = Query(EVENT_HAS_ARG, "str"); 141 Query event_has_arg2 = Query(EVENT_HAS_STRING_ARG, "str");
112 Query event_arg1 = 142 Query event_arg1 =
113 (Query(EVENT_ARG, "num") == Query::Double(event.arg_numbers["num"])); 143 (Query(EVENT_ARG, "num") == Query::Double(event.arg_numbers["num"]));
114 Query event_arg2 = 144 Query event_arg2 =
115 (Query(EVENT_ARG, "str") == Query::String(event.arg_strings["str"])); 145 (Query(EVENT_ARG, "str") == Query::String(event.arg_strings["str"]));
116 Query event_has_other = Query(EVENT_HAS_OTHER); 146 Query event_has_other = Query(EVENT_HAS_OTHER);
117 Query other_pid = (Query(OTHER_PID) == Query::Int(other.thread.process_id)); 147 Query other_pid = (Query(OTHER_PID) == Query::Int(other.thread.process_id));
118 Query other_tid = (Query(OTHER_TID) == Query::Int(other.thread.thread_id)); 148 Query other_tid = (Query(OTHER_TID) == Query::Int(other.thread.thread_id));
119 Query other_time = (Query(OTHER_TIME) == Query::Double(other.timestamp)); 149 Query other_time = (Query(OTHER_TIME) == Query::Double(other.timestamp));
120 Query other_phase = (Query(OTHER_PHASE) == Query::Phase(other.phase)); 150 Query other_phase = (Query(OTHER_PHASE) == Query::Phase(other.phase));
121 Query other_category = 151 Query other_category =
122 (Query(OTHER_CATEGORY) == Query::String(other.category)); 152 (Query(OTHER_CATEGORY) == Query::String(other.category));
123 Query other_name = (Query(OTHER_NAME) == Query::String(other.name)); 153 Query other_name = (Query(OTHER_NAME) == Query::String(other.name));
124 Query other_has_arg1 = Query(OTHER_HAS_ARG, "num2"); 154 Query other_has_arg1 = Query(OTHER_HAS_NUMBER_ARG, "num2");
125 Query other_has_arg2 = Query(OTHER_HAS_ARG, "str2"); 155 Query other_has_arg2 = Query(OTHER_HAS_STRING_ARG, "str2");
126 Query other_arg1 = 156 Query other_arg1 =
127 (Query(OTHER_ARG, "num2") == Query::Double(other.arg_numbers["num2"])); 157 (Query(OTHER_ARG, "num2") == Query::Double(other.arg_numbers["num2"]));
128 Query other_arg2 = 158 Query other_arg2 =
129 (Query(OTHER_ARG, "str2") == Query::String(other.arg_strings["str2"])); 159 (Query(OTHER_ARG, "str2") == Query::String(other.arg_strings["str2"]));
130 160
131 EXPECT_TRUE(event_pid.Evaluate(event)); 161 EXPECT_TRUE(event_pid.Evaluate(event));
132 EXPECT_TRUE(event_tid.Evaluate(event)); 162 EXPECT_TRUE(event_tid.Evaluate(event));
133 EXPECT_TRUE(event_time.Evaluate(event)); 163 EXPECT_TRUE(event_time.Evaluate(event));
134 EXPECT_TRUE(event_duration.Evaluate(event)); 164 EXPECT_TRUE(event_duration.Evaluate(event));
135 EXPECT_TRUE(event_phase.Evaluate(event)); 165 EXPECT_TRUE(event_phase.Evaluate(event));
(...skipping 357 matching lines...) Expand 10 before | Expand all | Expand 10 after
493 EXPECT_TRUE((Query::Double(1.0) == Query::Double(1.0f)).Evaluate(dummy)); 523 EXPECT_TRUE((Query::Double(1.0) == Query::Double(1.0f)).Evaluate(dummy));
494 EXPECT_TRUE((Query::Bool(true) == Query::Int(1)).Evaluate(dummy)); 524 EXPECT_TRUE((Query::Bool(true) == Query::Int(1)).Evaluate(dummy));
495 EXPECT_TRUE((Query::Bool(false) == Query::Int(0)).Evaluate(dummy)); 525 EXPECT_TRUE((Query::Bool(false) == Query::Int(0)).Evaluate(dummy));
496 EXPECT_TRUE((Query::Bool(true) == Query::Double(1.0f)).Evaluate(dummy)); 526 EXPECT_TRUE((Query::Bool(true) == Query::Double(1.0f)).Evaluate(dummy));
497 EXPECT_TRUE((Query::Bool(false) == Query::Double(0.0f)).Evaluate(dummy)); 527 EXPECT_TRUE((Query::Bool(false) == Query::Double(0.0f)).Evaluate(dummy));
498 } 528 }
499 529
500 530
501 } // namespace trace_analyzer 531 } // namespace trace_analyzer
502 532
OLDNEW
« base/test/trace_event_analyzer.h ('K') | « base/test/trace_event_analyzer.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698