| 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 <set> | 5 #include <set> |
| 6 #include <string> | 6 #include <string> |
| 7 | 7 |
| 8 #include "base/time/time.h" | 8 #include "base/time/time.h" |
| 9 #include "base/trace_event/trace_event_argument.h" | 9 #include "base/trace_event/trace_event_argument.h" |
| 10 #include "base/values.h" | 10 #include "base/values.h" |
| 11 #include "cc/debug/frame_timing_tracker.h" | 11 #include "cc/debug/frame_timing_tracker.h" |
| 12 #include "cc/test/fake_impl_proxy.h" | 12 #include "cc/test/fake_impl_task_runner_provider.h" |
| 13 #include "cc/test/fake_layer_tree_host_impl.h" | 13 #include "cc/test/fake_layer_tree_host_impl.h" |
| 14 #include "cc/test/test_shared_bitmap_manager.h" | 14 #include "cc/test/test_shared_bitmap_manager.h" |
| 15 #include "cc/test/test_task_graph_runner.h" | 15 #include "cc/test/test_task_graph_runner.h" |
| 16 #include "testing/gtest/include/gtest/gtest.h" | 16 #include "testing/gtest/include/gtest/gtest.h" |
| 17 | 17 |
| 18 namespace cc { | 18 namespace cc { |
| 19 namespace { | 19 namespace { |
| 20 | 20 |
| 21 std::string CompositeToString( | 21 std::string CompositeToString( |
| 22 scoped_ptr<FrameTimingTracker::CompositeTimingSet> timingset) { | 22 scoped_ptr<FrameTimingTracker::CompositeTimingSet> timingset) { |
| (...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 67 value->EndDictionary(); | 67 value->EndDictionary(); |
| 68 } | 68 } |
| 69 value->EndArray(); | 69 value->EndArray(); |
| 70 value->EndDictionary(); | 70 value->EndDictionary(); |
| 71 } | 71 } |
| 72 value->EndArray(); | 72 value->EndArray(); |
| 73 return value->ToString(); | 73 return value->ToString(); |
| 74 } | 74 } |
| 75 | 75 |
| 76 TEST(FrameTimingTrackerTest, DefaultTrackerIsEmpty) { | 76 TEST(FrameTimingTrackerTest, DefaultTrackerIsEmpty) { |
| 77 FakeImplProxy proxy; | 77 FakeImplTaskRunnerProvider task_runner_provider; |
| 78 TestSharedBitmapManager shared_bitmap_manager; | 78 TestSharedBitmapManager shared_bitmap_manager; |
| 79 TestTaskGraphRunner task_graph_runner; | 79 TestTaskGraphRunner task_graph_runner; |
| 80 FakeLayerTreeHostImpl host_impl(&proxy, &shared_bitmap_manager, | 80 FakeLayerTreeHostImpl host_impl(&task_runner_provider, &shared_bitmap_manager, |
| 81 &task_graph_runner); | 81 &task_graph_runner); |
| 82 | 82 |
| 83 scoped_ptr<FrameTimingTracker> tracker( | 83 scoped_ptr<FrameTimingTracker> tracker( |
| 84 FrameTimingTracker::Create(&host_impl)); | 84 FrameTimingTracker::Create(&host_impl)); |
| 85 EXPECT_EQ("{\"values\":[]}", | 85 EXPECT_EQ("{\"values\":[]}", |
| 86 CompositeToString(tracker->GroupCompositeCountsByRectId())); | 86 CompositeToString(tracker->GroupCompositeCountsByRectId())); |
| 87 EXPECT_EQ("{\"values\":[]}", | 87 EXPECT_EQ("{\"values\":[]}", |
| 88 MainFrameToString(tracker->GroupMainFrameCountsByRectId())); | 88 MainFrameToString(tracker->GroupMainFrameCountsByRectId())); |
| 89 } | 89 } |
| 90 | 90 |
| 91 TEST(FrameTimingTrackerTest, NoFrameIdsIsEmpty) { | 91 TEST(FrameTimingTrackerTest, NoFrameIdsIsEmpty) { |
| 92 FakeImplProxy proxy; | 92 FakeImplTaskRunnerProvider task_runner_provider; |
| 93 TestSharedBitmapManager shared_bitmap_manager; | 93 TestSharedBitmapManager shared_bitmap_manager; |
| 94 TestTaskGraphRunner task_graph_runner; | 94 TestTaskGraphRunner task_graph_runner; |
| 95 FakeLayerTreeHostImpl host_impl(&proxy, &shared_bitmap_manager, | 95 FakeLayerTreeHostImpl host_impl(&task_runner_provider, &shared_bitmap_manager, |
| 96 &task_graph_runner); | 96 &task_graph_runner); |
| 97 | 97 |
| 98 scoped_ptr<FrameTimingTracker> tracker( | 98 scoped_ptr<FrameTimingTracker> tracker( |
| 99 FrameTimingTracker::Create(&host_impl)); | 99 FrameTimingTracker::Create(&host_impl)); |
| 100 std::vector<std::pair<int, int64_t>> ids; | 100 std::vector<std::pair<int, int64_t>> ids; |
| 101 tracker->SaveTimeStamps(base::TimeTicks::FromInternalValue(100), ids); | 101 tracker->SaveTimeStamps(base::TimeTicks::FromInternalValue(100), ids); |
| 102 EXPECT_EQ("{\"values\":[]}", | 102 EXPECT_EQ("{\"values\":[]}", |
| 103 CompositeToString(tracker->GroupCompositeCountsByRectId())); | 103 CompositeToString(tracker->GroupCompositeCountsByRectId())); |
| 104 } | 104 } |
| 105 | 105 |
| 106 TEST(FrameTimingTrackerTest, NoRectIdsYieldsNoMainFrameEvents) { | 106 TEST(FrameTimingTrackerTest, NoRectIdsYieldsNoMainFrameEvents) { |
| 107 FakeImplProxy proxy; | 107 FakeImplTaskRunnerProvider task_runner_provider; |
| 108 TestSharedBitmapManager shared_bitmap_manager; | 108 TestSharedBitmapManager shared_bitmap_manager; |
| 109 TestTaskGraphRunner task_graph_runner; | 109 TestTaskGraphRunner task_graph_runner; |
| 110 FakeLayerTreeHostImpl host_impl(&proxy, &shared_bitmap_manager, | 110 FakeLayerTreeHostImpl host_impl(&task_runner_provider, &shared_bitmap_manager, |
| 111 &task_graph_runner); | 111 &task_graph_runner); |
| 112 | 112 |
| 113 scoped_ptr<FrameTimingTracker> tracker( | 113 scoped_ptr<FrameTimingTracker> tracker( |
| 114 FrameTimingTracker::Create(&host_impl)); | 114 FrameTimingTracker::Create(&host_impl)); |
| 115 tracker->SaveMainFrameTimeStamps(std::vector<int64_t>(), | 115 tracker->SaveMainFrameTimeStamps(std::vector<int64_t>(), |
| 116 base::TimeTicks::FromInternalValue(100), | 116 base::TimeTicks::FromInternalValue(100), |
| 117 base::TimeTicks::FromInternalValue(110), 1); | 117 base::TimeTicks::FromInternalValue(110), 1); |
| 118 EXPECT_EQ("{\"values\":[]}", | 118 EXPECT_EQ("{\"values\":[]}", |
| 119 MainFrameToString(tracker->GroupMainFrameCountsByRectId())); | 119 MainFrameToString(tracker->GroupMainFrameCountsByRectId())); |
| 120 } | 120 } |
| 121 | 121 |
| 122 TEST(FrameTimingTrackerTest, OneFrameId) { | 122 TEST(FrameTimingTrackerTest, OneFrameId) { |
| 123 FakeImplProxy proxy; | 123 FakeImplTaskRunnerProvider task_runner_provider; |
| 124 TestSharedBitmapManager shared_bitmap_manager; | 124 TestSharedBitmapManager shared_bitmap_manager; |
| 125 TestTaskGraphRunner task_graph_runner; | 125 TestTaskGraphRunner task_graph_runner; |
| 126 FakeLayerTreeHostImpl host_impl(&proxy, &shared_bitmap_manager, | 126 FakeLayerTreeHostImpl host_impl(&task_runner_provider, &shared_bitmap_manager, |
| 127 &task_graph_runner); | 127 &task_graph_runner); |
| 128 | 128 |
| 129 scoped_ptr<FrameTimingTracker> tracker( | 129 scoped_ptr<FrameTimingTracker> tracker( |
| 130 FrameTimingTracker::Create(&host_impl)); | 130 FrameTimingTracker::Create(&host_impl)); |
| 131 std::vector<std::pair<int, int64_t>> ids; | 131 std::vector<std::pair<int, int64_t>> ids; |
| 132 ids.push_back(std::make_pair(1, 2)); | 132 ids.push_back(std::make_pair(1, 2)); |
| 133 tracker->SaveTimeStamps(base::TimeTicks::FromInternalValue(100), ids); | 133 tracker->SaveTimeStamps(base::TimeTicks::FromInternalValue(100), ids); |
| 134 EXPECT_EQ( | 134 EXPECT_EQ( |
| 135 "{\"values\":[{\"events\":[" | 135 "{\"values\":[{\"events\":[" |
| 136 "{\"frame_id\":1,\"timestamp\":100}],\"rect_id\":2}]}", | 136 "{\"frame_id\":1,\"timestamp\":100}],\"rect_id\":2}]}", |
| 137 CompositeToString(tracker->GroupCompositeCountsByRectId())); | 137 CompositeToString(tracker->GroupCompositeCountsByRectId())); |
| 138 } | 138 } |
| 139 | 139 |
| 140 TEST(FrameTimingTrackerTest, OneMainFrameRect) { | 140 TEST(FrameTimingTrackerTest, OneMainFrameRect) { |
| 141 FakeImplProxy proxy; | 141 FakeImplTaskRunnerProvider task_runner_provider; |
| 142 TestSharedBitmapManager shared_bitmap_manager; | 142 TestSharedBitmapManager shared_bitmap_manager; |
| 143 TestTaskGraphRunner task_graph_runner; | 143 TestTaskGraphRunner task_graph_runner; |
| 144 FakeLayerTreeHostImpl host_impl(&proxy, &shared_bitmap_manager, | 144 FakeLayerTreeHostImpl host_impl(&task_runner_provider, &shared_bitmap_manager, |
| 145 &task_graph_runner); | 145 &task_graph_runner); |
| 146 | 146 |
| 147 scoped_ptr<FrameTimingTracker> tracker( | 147 scoped_ptr<FrameTimingTracker> tracker( |
| 148 FrameTimingTracker::Create(&host_impl)); | 148 FrameTimingTracker::Create(&host_impl)); |
| 149 std::vector<int64_t> rect_ids; | 149 std::vector<int64_t> rect_ids; |
| 150 rect_ids.push_back(1); | 150 rect_ids.push_back(1); |
| 151 tracker->SaveMainFrameTimeStamps(rect_ids, | 151 tracker->SaveMainFrameTimeStamps(rect_ids, |
| 152 base::TimeTicks::FromInternalValue(100), | 152 base::TimeTicks::FromInternalValue(100), |
| 153 base::TimeTicks::FromInternalValue(110), 2); | 153 base::TimeTicks::FromInternalValue(110), 2); |
| 154 EXPECT_EQ( | 154 EXPECT_EQ( |
| 155 "{\"values\":[{\"events\":[" | 155 "{\"values\":[{\"events\":[" |
| 156 "{\"end_time\":110,\"frame_id\":2,\"timestamp\":100}],\"rect_id\":1}]}", | 156 "{\"end_time\":110,\"frame_id\":2,\"timestamp\":100}],\"rect_id\":1}]}", |
| 157 MainFrameToString(tracker->GroupMainFrameCountsByRectId())); | 157 MainFrameToString(tracker->GroupMainFrameCountsByRectId())); |
| 158 } | 158 } |
| 159 | 159 |
| 160 TEST(FrameTimingTrackerTest, UnsortedTimestampsIds) { | 160 TEST(FrameTimingTrackerTest, UnsortedTimestampsIds) { |
| 161 FakeImplProxy proxy; | 161 FakeImplTaskRunnerProvider task_runner_provider; |
| 162 TestSharedBitmapManager shared_bitmap_manager; | 162 TestSharedBitmapManager shared_bitmap_manager; |
| 163 TestTaskGraphRunner task_graph_runner; | 163 TestTaskGraphRunner task_graph_runner; |
| 164 FakeLayerTreeHostImpl host_impl(&proxy, &shared_bitmap_manager, | 164 FakeLayerTreeHostImpl host_impl(&task_runner_provider, &shared_bitmap_manager, |
| 165 &task_graph_runner); | 165 &task_graph_runner); |
| 166 | 166 |
| 167 scoped_ptr<FrameTimingTracker> tracker( | 167 scoped_ptr<FrameTimingTracker> tracker( |
| 168 FrameTimingTracker::Create(&host_impl)); | 168 FrameTimingTracker::Create(&host_impl)); |
| 169 std::vector<std::pair<int, int64_t>> ids; | 169 std::vector<std::pair<int, int64_t>> ids; |
| 170 ids.push_back(std::make_pair(1, 2)); | 170 ids.push_back(std::make_pair(1, 2)); |
| 171 tracker->SaveTimeStamps(base::TimeTicks::FromInternalValue(200), ids); | 171 tracker->SaveTimeStamps(base::TimeTicks::FromInternalValue(200), ids); |
| 172 tracker->SaveTimeStamps(base::TimeTicks::FromInternalValue(400), ids); | 172 tracker->SaveTimeStamps(base::TimeTicks::FromInternalValue(400), ids); |
| 173 tracker->SaveTimeStamps(base::TimeTicks::FromInternalValue(100), ids); | 173 tracker->SaveTimeStamps(base::TimeTicks::FromInternalValue(100), ids); |
| 174 EXPECT_EQ( | 174 EXPECT_EQ( |
| 175 "{\"values\":[{\"events\":[" | 175 "{\"values\":[{\"events\":[" |
| 176 "{\"frame_id\":1,\"timestamp\":100}," | 176 "{\"frame_id\":1,\"timestamp\":100}," |
| 177 "{\"frame_id\":1,\"timestamp\":200}," | 177 "{\"frame_id\":1,\"timestamp\":200}," |
| 178 "{\"frame_id\":1,\"timestamp\":400}],\"rect_id\":2}]}", | 178 "{\"frame_id\":1,\"timestamp\":400}],\"rect_id\":2}]}", |
| 179 CompositeToString(tracker->GroupCompositeCountsByRectId())); | 179 CompositeToString(tracker->GroupCompositeCountsByRectId())); |
| 180 } | 180 } |
| 181 | 181 |
| 182 TEST(FrameTimingTrackerTest, MainFrameUnsortedTimestamps) { | 182 TEST(FrameTimingTrackerTest, MainFrameUnsortedTimestamps) { |
| 183 FakeImplProxy proxy; | 183 FakeImplTaskRunnerProvider task_runner_provider; |
| 184 TestSharedBitmapManager shared_bitmap_manager; | 184 TestSharedBitmapManager shared_bitmap_manager; |
| 185 TestTaskGraphRunner task_graph_runner; | 185 TestTaskGraphRunner task_graph_runner; |
| 186 FakeLayerTreeHostImpl host_impl(&proxy, &shared_bitmap_manager, | 186 FakeLayerTreeHostImpl host_impl(&task_runner_provider, &shared_bitmap_manager, |
| 187 &task_graph_runner); | 187 &task_graph_runner); |
| 188 | 188 |
| 189 scoped_ptr<FrameTimingTracker> tracker( | 189 scoped_ptr<FrameTimingTracker> tracker( |
| 190 FrameTimingTracker::Create(&host_impl)); | 190 FrameTimingTracker::Create(&host_impl)); |
| 191 std::vector<int64_t> rect_ids; | 191 std::vector<int64_t> rect_ids; |
| 192 rect_ids.push_back(2); | 192 rect_ids.push_back(2); |
| 193 tracker->SaveMainFrameTimeStamps(rect_ids, | 193 tracker->SaveMainFrameTimeStamps(rect_ids, |
| 194 base::TimeTicks::FromInternalValue(200), | 194 base::TimeTicks::FromInternalValue(200), |
| 195 base::TimeTicks::FromInternalValue(280), 1); | 195 base::TimeTicks::FromInternalValue(280), 1); |
| 196 tracker->SaveMainFrameTimeStamps(rect_ids, | 196 tracker->SaveMainFrameTimeStamps(rect_ids, |
| 197 base::TimeTicks::FromInternalValue(400), | 197 base::TimeTicks::FromInternalValue(400), |
| 198 base::TimeTicks::FromInternalValue(470), 1); | 198 base::TimeTicks::FromInternalValue(470), 1); |
| 199 tracker->SaveMainFrameTimeStamps(rect_ids, | 199 tracker->SaveMainFrameTimeStamps(rect_ids, |
| 200 base::TimeTicks::FromInternalValue(100), | 200 base::TimeTicks::FromInternalValue(100), |
| 201 base::TimeTicks::FromInternalValue(160), 1); | 201 base::TimeTicks::FromInternalValue(160), 1); |
| 202 EXPECT_EQ( | 202 EXPECT_EQ( |
| 203 "{\"values\":[{\"events\":[" | 203 "{\"values\":[{\"events\":[" |
| 204 "{\"end_time\":160,\"frame_id\":1,\"timestamp\":100}," | 204 "{\"end_time\":160,\"frame_id\":1,\"timestamp\":100}," |
| 205 "{\"end_time\":280,\"frame_id\":1,\"timestamp\":200}," | 205 "{\"end_time\":280,\"frame_id\":1,\"timestamp\":200}," |
| 206 "{\"end_time\":470,\"frame_id\":1,\"timestamp\":400}],\"rect_id\":2}]}", | 206 "{\"end_time\":470,\"frame_id\":1,\"timestamp\":400}],\"rect_id\":2}]}", |
| 207 MainFrameToString(tracker->GroupMainFrameCountsByRectId())); | 207 MainFrameToString(tracker->GroupMainFrameCountsByRectId())); |
| 208 } | 208 } |
| 209 | 209 |
| 210 TEST(FrameTimingTrackerTest, MultipleFrameIds) { | 210 TEST(FrameTimingTrackerTest, MultipleFrameIds) { |
| 211 FakeImplProxy proxy; | 211 FakeImplTaskRunnerProvider task_runner_provider; |
| 212 TestSharedBitmapManager shared_bitmap_manager; | 212 TestSharedBitmapManager shared_bitmap_manager; |
| 213 TestTaskGraphRunner task_graph_runner; | 213 TestTaskGraphRunner task_graph_runner; |
| 214 FakeLayerTreeHostImpl host_impl(&proxy, &shared_bitmap_manager, | 214 FakeLayerTreeHostImpl host_impl(&task_runner_provider, &shared_bitmap_manager, |
| 215 &task_graph_runner); | 215 &task_graph_runner); |
| 216 | 216 |
| 217 scoped_ptr<FrameTimingTracker> tracker( | 217 scoped_ptr<FrameTimingTracker> tracker( |
| 218 FrameTimingTracker::Create(&host_impl)); | 218 FrameTimingTracker::Create(&host_impl)); |
| 219 | 219 |
| 220 std::vector<std::pair<int, int64_t>> ids200; | 220 std::vector<std::pair<int, int64_t>> ids200; |
| 221 ids200.push_back(std::make_pair(1, 2)); | 221 ids200.push_back(std::make_pair(1, 2)); |
| 222 ids200.push_back(std::make_pair(1, 3)); | 222 ids200.push_back(std::make_pair(1, 3)); |
| 223 tracker->SaveTimeStamps(base::TimeTicks::FromInternalValue(200), ids200); | 223 tracker->SaveTimeStamps(base::TimeTicks::FromInternalValue(200), ids200); |
| 224 | 224 |
| (...skipping 15 matching lines...) Expand all Loading... |
| 240 "{\"events\":[" | 240 "{\"events\":[" |
| 241 "{\"frame_id\":2,\"timestamp\":100}," | 241 "{\"frame_id\":2,\"timestamp\":100}," |
| 242 "{\"frame_id\":1,\"timestamp\":200}],\"rect_id\":3}," | 242 "{\"frame_id\":1,\"timestamp\":200}],\"rect_id\":3}," |
| 243 "{\"events\":[" | 243 "{\"events\":[" |
| 244 "{\"frame_id\":3,\"timestamp\":100}],\"rect_id\":4}" | 244 "{\"frame_id\":3,\"timestamp\":100}],\"rect_id\":4}" |
| 245 "]}", | 245 "]}", |
| 246 CompositeToString(tracker->GroupCompositeCountsByRectId())); | 246 CompositeToString(tracker->GroupCompositeCountsByRectId())); |
| 247 } | 247 } |
| 248 | 248 |
| 249 TEST(FrameTimingTrackerTest, MultipleMainFrameEvents) { | 249 TEST(FrameTimingTrackerTest, MultipleMainFrameEvents) { |
| 250 FakeImplProxy proxy; | 250 FakeImplTaskRunnerProvider task_runner_provider; |
| 251 TestSharedBitmapManager shared_bitmap_manager; | 251 TestSharedBitmapManager shared_bitmap_manager; |
| 252 TestTaskGraphRunner task_graph_runner; | 252 TestTaskGraphRunner task_graph_runner; |
| 253 FakeLayerTreeHostImpl host_impl(&proxy, &shared_bitmap_manager, | 253 FakeLayerTreeHostImpl host_impl(&task_runner_provider, &shared_bitmap_manager, |
| 254 &task_graph_runner); | 254 &task_graph_runner); |
| 255 | 255 |
| 256 scoped_ptr<FrameTimingTracker> tracker( | 256 scoped_ptr<FrameTimingTracker> tracker( |
| 257 FrameTimingTracker::Create(&host_impl)); | 257 FrameTimingTracker::Create(&host_impl)); |
| 258 | 258 |
| 259 std::vector<int64_t> rect_ids200; | 259 std::vector<int64_t> rect_ids200; |
| 260 rect_ids200.push_back(2); | 260 rect_ids200.push_back(2); |
| 261 rect_ids200.push_back(3); | 261 rect_ids200.push_back(3); |
| 262 tracker->SaveMainFrameTimeStamps(rect_ids200, | 262 tracker->SaveMainFrameTimeStamps(rect_ids200, |
| 263 base::TimeTicks::FromInternalValue(200), | 263 base::TimeTicks::FromInternalValue(200), |
| (...skipping 22 matching lines...) Expand all Loading... |
| 286 "{\"end_time\":110,\"frame_id\":3,\"timestamp\":100}," | 286 "{\"end_time\":110,\"frame_id\":3,\"timestamp\":100}," |
| 287 "{\"end_time\":220,\"frame_id\":1,\"timestamp\":200}],\"rect_id\":3}," | 287 "{\"end_time\":220,\"frame_id\":1,\"timestamp\":200}],\"rect_id\":3}," |
| 288 "{\"events\":[" | 288 "{\"events\":[" |
| 289 "{\"end_time\":110,\"frame_id\":3,\"timestamp\":100}],\"rect_id\":4}" | 289 "{\"end_time\":110,\"frame_id\":3,\"timestamp\":100}],\"rect_id\":4}" |
| 290 "]}", | 290 "]}", |
| 291 MainFrameToString(tracker->GroupMainFrameCountsByRectId())); | 291 MainFrameToString(tracker->GroupMainFrameCountsByRectId())); |
| 292 } | 292 } |
| 293 | 293 |
| 294 } // namespace | 294 } // namespace |
| 295 } // namespace cc | 295 } // namespace cc |
| OLD | NEW |