| OLD | NEW |
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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 "apps/benchmark/event.h" | 5 #include "apps/benchmark/event.h" |
| 6 | 6 |
| 7 #include <string> | 7 #include <string> |
| 8 #include <vector> | 8 #include <vector> |
| 9 | 9 |
| 10 #include "base/strings/string_util.h" | 10 #include "base/strings/string_util.h" |
| (...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 87 event_specs[1] = | 87 event_specs[1] = |
| 88 "{\"tid\":1,\"ts\":2,\"ph\":\"B\",\"cat\":\"cc\",\"name\":\"Inner " | 88 "{\"tid\":1,\"ts\":2,\"ph\":\"B\",\"cat\":\"cc\",\"name\":\"Inner " |
| 89 "event\"}"; | 89 "event\"}"; |
| 90 event_specs[2] = "{\"tid\":1,\"ts\":3,\"ph\":\"E\"}"; | 90 event_specs[2] = "{\"tid\":1,\"ts\":3,\"ph\":\"E\"}"; |
| 91 event_specs[3] = "{\"tid\":1,\"ts\":4,\"ph\":\"E\"}"; | 91 event_specs[3] = "{\"tid\":1,\"ts\":4,\"ph\":\"E\"}"; |
| 92 event_specs[4] = | 92 event_specs[4] = |
| 93 "{\"tid\":1,\"ts\":5,\"ph\":\"B\",\"cat\":\"cc\",\"name\":\"Next " | 93 "{\"tid\":1,\"ts\":5,\"ph\":\"B\",\"cat\":\"cc\",\"name\":\"Next " |
| 94 "event\"}"; | 94 "event\"}"; |
| 95 event_specs[5] = "{\"tid\":1,\"ts\":6,\"ph\":\"E\"}"; | 95 event_specs[5] = "{\"tid\":1,\"ts\":6,\"ph\":\"E\"}"; |
| 96 | 96 |
| 97 std::string trace_json = "[" + JoinString(event_specs, ',') + "]"; | 97 std::string trace_json = "[" + base::JoinString(event_specs, ",") + "]"; |
| 98 std::vector<Event> events; | 98 std::vector<Event> events; |
| 99 ASSERT_TRUE(GetEvents(trace_json, &events)); | 99 ASSERT_TRUE(GetEvents(trace_json, &events)); |
| 100 ASSERT_EQ(3u, events.size()); | 100 ASSERT_EQ(3u, events.size()); |
| 101 | 101 |
| 102 EXPECT_EQ(EventType::COMPLETE, events[0].type); | 102 EXPECT_EQ(EventType::COMPLETE, events[0].type); |
| 103 EXPECT_EQ("Outer event", events[0].name); | 103 EXPECT_EQ("Outer event", events[0].name); |
| 104 EXPECT_EQ("cc", events[0].categories); | 104 EXPECT_EQ("cc", events[0].categories); |
| 105 EXPECT_EQ(base::TimeTicks::FromInternalValue(1), events[0].timestamp); | 105 EXPECT_EQ(base::TimeTicks::FromInternalValue(1), events[0].timestamp); |
| 106 EXPECT_EQ(base::TimeDelta::FromInternalValue(3), events[0].duration); | 106 EXPECT_EQ(base::TimeDelta::FromInternalValue(3), events[0].duration); |
| 107 | 107 |
| (...skipping 12 matching lines...) Expand all Loading... |
| 120 | 120 |
| 121 TEST(GetEventsTest, DurationEventsTwoThreads) { | 121 TEST(GetEventsTest, DurationEventsTwoThreads) { |
| 122 std::vector<std::string> event_specs(4); | 122 std::vector<std::string> event_specs(4); |
| 123 event_specs[0] = | 123 event_specs[0] = |
| 124 "{\"tid\":1,\"ts\":1,\"ph\":\"B\",\"cat\":\"cc\",\"name\":\"t1 event\"}"; | 124 "{\"tid\":1,\"ts\":1,\"ph\":\"B\",\"cat\":\"cc\",\"name\":\"t1 event\"}"; |
| 125 event_specs[1] = | 125 event_specs[1] = |
| 126 "{\"tid\":2,\"ts\":2,\"ph\":\"B\",\"cat\":\"cc\",\"name\":\"t2 event\"}"; | 126 "{\"tid\":2,\"ts\":2,\"ph\":\"B\",\"cat\":\"cc\",\"name\":\"t2 event\"}"; |
| 127 event_specs[2] = "{\"tid\":1,\"ts\":3,\"ph\":\"E\"}"; | 127 event_specs[2] = "{\"tid\":1,\"ts\":3,\"ph\":\"E\"}"; |
| 128 event_specs[3] = "{\"tid\":2,\"ts\":4,\"ph\":\"E\"}"; | 128 event_specs[3] = "{\"tid\":2,\"ts\":4,\"ph\":\"E\"}"; |
| 129 | 129 |
| 130 std::string trace_json = "[" + JoinString(event_specs, ',') + "]"; | 130 std::string trace_json = "[" + base::JoinString(event_specs, ",") + "]"; |
| 131 std::vector<Event> events; | 131 std::vector<Event> events; |
| 132 ASSERT_TRUE(GetEvents(trace_json, &events)); | 132 ASSERT_TRUE(GetEvents(trace_json, &events)); |
| 133 ASSERT_EQ(2u, events.size()); | 133 ASSERT_EQ(2u, events.size()); |
| 134 | 134 |
| 135 EXPECT_EQ(EventType::COMPLETE, events[0].type); | 135 EXPECT_EQ(EventType::COMPLETE, events[0].type); |
| 136 EXPECT_EQ("t1 event", events[0].name); | 136 EXPECT_EQ("t1 event", events[0].name); |
| 137 EXPECT_EQ("cc", events[0].categories); | 137 EXPECT_EQ("cc", events[0].categories); |
| 138 EXPECT_EQ(base::TimeTicks::FromInternalValue(1), events[0].timestamp); | 138 EXPECT_EQ(base::TimeTicks::FromInternalValue(1), events[0].timestamp); |
| 139 EXPECT_EQ(base::TimeDelta::FromInternalValue(2), events[0].duration); | 139 EXPECT_EQ(base::TimeDelta::FromInternalValue(2), events[0].duration); |
| 140 | 140 |
| 141 EXPECT_EQ(EventType::COMPLETE, events[1].type); | 141 EXPECT_EQ(EventType::COMPLETE, events[1].type); |
| 142 EXPECT_EQ("t2 event", events[1].name); | 142 EXPECT_EQ("t2 event", events[1].name); |
| 143 EXPECT_EQ("cc", events[1].categories); | 143 EXPECT_EQ("cc", events[1].categories); |
| 144 EXPECT_EQ(base::TimeTicks::FromInternalValue(2), events[1].timestamp); | 144 EXPECT_EQ(base::TimeTicks::FromInternalValue(2), events[1].timestamp); |
| 145 EXPECT_EQ(base::TimeDelta::FromInternalValue(2), events[1].duration); | 145 EXPECT_EQ(base::TimeDelta::FromInternalValue(2), events[1].duration); |
| 146 } | 146 } |
| 147 | 147 |
| 148 TEST(GetEventsTest, DurationEventsTidIsString) { | 148 TEST(GetEventsTest, DurationEventsTidIsString) { |
| 149 std::vector<std::string> event_specs(2); | 149 std::vector<std::string> event_specs(2); |
| 150 event_specs[0] = | 150 event_specs[0] = |
| 151 "{\"tid\":\"1\",\"ts\":1,\"ph\":\"B\",\"cat\":\"cc\"," | 151 "{\"tid\":\"1\",\"ts\":1,\"ph\":\"B\",\"cat\":\"cc\"," |
| 152 "\"name\":\"t1 event\"}"; | 152 "\"name\":\"t1 event\"}"; |
| 153 event_specs[1] = "{\"tid\":\"1\",\"ts\":3,\"ph\":\"E\"}"; | 153 event_specs[1] = "{\"tid\":\"1\",\"ts\":3,\"ph\":\"E\"}"; |
| 154 | 154 |
| 155 std::string trace_json = "[" + JoinString(event_specs, ',') + "]"; | 155 std::string trace_json = "[" + base::JoinString(event_specs, ",") + "]"; |
| 156 std::vector<Event> events; | 156 std::vector<Event> events; |
| 157 ASSERT_TRUE(GetEvents(trace_json, &events)); | 157 ASSERT_TRUE(GetEvents(trace_json, &events)); |
| 158 ASSERT_EQ(1u, events.size()); | 158 ASSERT_EQ(1u, events.size()); |
| 159 | 159 |
| 160 EXPECT_EQ(EventType::COMPLETE, events[0].type); | 160 EXPECT_EQ(EventType::COMPLETE, events[0].type); |
| 161 EXPECT_EQ("t1 event", events[0].name); | 161 EXPECT_EQ("t1 event", events[0].name); |
| 162 EXPECT_EQ("cc", events[0].categories); | 162 EXPECT_EQ("cc", events[0].categories); |
| 163 EXPECT_EQ(base::TimeTicks::FromInternalValue(1), events[0].timestamp); | 163 EXPECT_EQ(base::TimeTicks::FromInternalValue(1), events[0].timestamp); |
| 164 EXPECT_EQ(base::TimeDelta::FromInternalValue(2), events[0].duration); | 164 EXPECT_EQ(base::TimeDelta::FromInternalValue(2), events[0].duration); |
| 165 } | 165 } |
| 166 | 166 |
| 167 TEST(GetEventsTest, AsyncEvents) { | 167 TEST(GetEventsTest, AsyncEvents) { |
| 168 std::vector<std::string> event_specs(4); | 168 std::vector<std::string> event_specs(4); |
| 169 event_specs[0] = | 169 event_specs[0] = |
| 170 "{\"tid\":1001,\"id\":1,\"ts\":1,\"ph\":\"S\",\"cat\":\"cc\",\"name\":" | 170 "{\"tid\":1001,\"id\":1,\"ts\":1,\"ph\":\"S\",\"cat\":\"cc\",\"name\":" |
| 171 "\"t1 event\"}"; | 171 "\"t1 event\"}"; |
| 172 event_specs[1] = | 172 event_specs[1] = |
| 173 "{\"tid\":1002,\"id\":2,\"ts\":2,\"ph\":\"S\",\"cat\":\"cc\",\"name\":" | 173 "{\"tid\":1002,\"id\":2,\"ts\":2,\"ph\":\"S\",\"cat\":\"cc\",\"name\":" |
| 174 "\"t2 event\"}"; | 174 "\"t2 event\"}"; |
| 175 event_specs[2] = | 175 event_specs[2] = |
| 176 "{\"tid\":1003,\"id\":1,\"ts\":3,\"ph\":\"F\",\"cat\":\"cc\",\"name\":" | 176 "{\"tid\":1003,\"id\":1,\"ts\":3,\"ph\":\"F\",\"cat\":\"cc\",\"name\":" |
| 177 "\"t1 event\"}"; | 177 "\"t1 event\"}"; |
| 178 event_specs[3] = | 178 event_specs[3] = |
| 179 "{\"tid\":1004,\"id\":2,\"ts\":4,\"ph\":\"F\",\"cat\":\"cc\",\"name\":" | 179 "{\"tid\":1004,\"id\":2,\"ts\":4,\"ph\":\"F\",\"cat\":\"cc\",\"name\":" |
| 180 "\"t2 event\"}"; | 180 "\"t2 event\"}"; |
| 181 | 181 |
| 182 std::string trace_json = "[" + JoinString(event_specs, ',') + "]"; | 182 std::string trace_json = "[" + base::JoinString(event_specs, ",") + "]"; |
| 183 std::vector<Event> events; | 183 std::vector<Event> events; |
| 184 ASSERT_TRUE(GetEvents(trace_json, &events)); | 184 ASSERT_TRUE(GetEvents(trace_json, &events)); |
| 185 ASSERT_EQ(2u, events.size()); | 185 ASSERT_EQ(2u, events.size()); |
| 186 | 186 |
| 187 EXPECT_EQ(EventType::COMPLETE, events[0].type); | 187 EXPECT_EQ(EventType::COMPLETE, events[0].type); |
| 188 EXPECT_EQ("t1 event", events[0].name); | 188 EXPECT_EQ("t1 event", events[0].name); |
| 189 EXPECT_EQ("cc", events[0].categories); | 189 EXPECT_EQ("cc", events[0].categories); |
| 190 EXPECT_EQ(base::TimeTicks::FromInternalValue(1), events[0].timestamp); | 190 EXPECT_EQ(base::TimeTicks::FromInternalValue(1), events[0].timestamp); |
| 191 EXPECT_EQ(base::TimeDelta::FromInternalValue(2), events[0].duration); | 191 EXPECT_EQ(base::TimeDelta::FromInternalValue(2), events[0].duration); |
| 192 | 192 |
| 193 EXPECT_EQ(EventType::COMPLETE, events[1].type); | 193 EXPECT_EQ(EventType::COMPLETE, events[1].type); |
| 194 EXPECT_EQ("t2 event", events[1].name); | 194 EXPECT_EQ("t2 event", events[1].name); |
| 195 EXPECT_EQ("cc", events[1].categories); | 195 EXPECT_EQ("cc", events[1].categories); |
| 196 EXPECT_EQ(base::TimeTicks::FromInternalValue(2), events[1].timestamp); | 196 EXPECT_EQ(base::TimeTicks::FromInternalValue(2), events[1].timestamp); |
| 197 EXPECT_EQ(base::TimeDelta::FromInternalValue(2), events[1].duration); | 197 EXPECT_EQ(base::TimeDelta::FromInternalValue(2), events[1].duration); |
| 198 } | 198 } |
| 199 | 199 |
| 200 TEST(GetEventsTest, AsyncEventIdIsString) { | 200 TEST(GetEventsTest, AsyncEventIdIsString) { |
| 201 std::vector<std::string> event_specs(2); | 201 std::vector<std::string> event_specs(2); |
| 202 event_specs[0] = | 202 event_specs[0] = |
| 203 "{\"tid\":1001,\"id\":\"a\",\"ts\":1,\"ph\":\"S\",\"cat\":\"cc\"," | 203 "{\"tid\":1001,\"id\":\"a\",\"ts\":1,\"ph\":\"S\",\"cat\":\"cc\"," |
| 204 "\"name\":\"t1 event\"}"; | 204 "\"name\":\"t1 event\"}"; |
| 205 event_specs[1] = | 205 event_specs[1] = |
| 206 "{\"tid\":1003,\"id\":\"a\",\"ts\":3,\"ph\":\"F\",\"cat\":\"cc\"," | 206 "{\"tid\":1003,\"id\":\"a\",\"ts\":3,\"ph\":\"F\",\"cat\":\"cc\"," |
| 207 "\"name\":\"t1 event\"}"; | 207 "\"name\":\"t1 event\"}"; |
| 208 | 208 |
| 209 std::string trace_json = "[" + JoinString(event_specs, ',') + "]"; | 209 std::string trace_json = "[" + base::JoinString(event_specs, ",") + "]"; |
| 210 std::vector<Event> events; | 210 std::vector<Event> events; |
| 211 ASSERT_TRUE(GetEvents(trace_json, &events)); | 211 ASSERT_TRUE(GetEvents(trace_json, &events)); |
| 212 ASSERT_EQ(1u, events.size()); | 212 ASSERT_EQ(1u, events.size()); |
| 213 | 213 |
| 214 EXPECT_EQ(EventType::COMPLETE, events[0].type); | 214 EXPECT_EQ(EventType::COMPLETE, events[0].type); |
| 215 EXPECT_EQ("t1 event", events[0].name); | 215 EXPECT_EQ("t1 event", events[0].name); |
| 216 EXPECT_EQ("cc", events[0].categories); | 216 EXPECT_EQ("cc", events[0].categories); |
| 217 EXPECT_EQ(base::TimeTicks::FromInternalValue(1), events[0].timestamp); | 217 EXPECT_EQ(base::TimeTicks::FromInternalValue(1), events[0].timestamp); |
| 218 EXPECT_EQ(base::TimeDelta::FromInternalValue(2), events[0].duration); | 218 EXPECT_EQ(base::TimeDelta::FromInternalValue(2), events[0].duration); |
| 219 } | 219 } |
| 220 | 220 |
| 221 } // namespace | 221 } // namespace |
| 222 | 222 |
| 223 } // namespace benchmark | 223 } // namespace benchmark |
| OLD | NEW |