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

Side by Side Diff: tools/perf/metrics/rendering_stats_unittest.py

Issue 220113008: Make sure advancing non-zero time delta for mock timer in testScrollLatencyFromTimeline (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: rebased Created 6 years, 8 months 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
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 # Copyright 2013 The Chromium Authors. All rights reserved. 1 # Copyright 2013 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 import random 5 import random
6 import unittest 6 import unittest
7 7
8 from metrics.rendering_stats import UI_COMP_NAME, BEGIN_COMP_NAME, END_COMP_NAME 8 from metrics.rendering_stats import UI_COMP_NAME, BEGIN_COMP_NAME, END_COMP_NAME
9 from metrics.rendering_stats import GetScrollInputLatencyEvents 9 from metrics.rendering_stats import GetScrollInputLatencyEvents
10 from metrics.rendering_stats import ComputeMouseWheelScrollLatency 10 from metrics.rendering_stats import ComputeMouseWheelScrollLatency
(...skipping 135 matching lines...) Expand 10 before | Expand all | Expand 10 after
146 def AddInputLatencyStats(mock_timer, input_type, start_thread, end_thread, 146 def AddInputLatencyStats(mock_timer, input_type, start_thread, end_thread,
147 ref_latency_stats = None): 147 ref_latency_stats = None):
148 """ Adds a random input latency stats event. 148 """ Adds a random input latency stats event.
149 149
150 input_type: The input type for which the latency slice is generated. 150 input_type: The input type for which the latency slice is generated.
151 start_thread: The start thread on which the async slice is added. 151 start_thread: The start thread on which the async slice is added.
152 end_thread: The end thread on which the async slice is ended. 152 end_thread: The end thread on which the async slice is ended.
153 ref_latency_stats: A ReferenceInputLatencyStats object for expected values. 153 ref_latency_stats: A ReferenceInputLatencyStats object for expected values.
154 """ 154 """
155 155
156 mock_timer.Advance() 156 mock_timer.Advance(2, 4)
157 ui_comp_time = mock_timer.Get() * 1000.0 157 ui_comp_time = mock_timer.Get() * 1000.0
158 mock_timer.Advance() 158 mock_timer.Advance(2, 4)
159 begin_comp_time = mock_timer.Get() * 1000.0 159 begin_comp_time = mock_timer.Get() * 1000.0
160 mock_timer.Advance(10, 20) 160 mock_timer.Advance(10, 20)
161 end_comp_time = mock_timer.Get() * 1000.0 161 end_comp_time = mock_timer.Get() * 1000.0
162 162
163 data = { UI_COMP_NAME: {'time': ui_comp_time}, 163 data = { UI_COMP_NAME: {'time': ui_comp_time},
164 BEGIN_COMP_NAME: {'time': begin_comp_time}, 164 BEGIN_COMP_NAME: {'time': begin_comp_time},
165 END_COMP_NAME: {'time': end_comp_time} } 165 END_COMP_NAME: {'time': end_comp_time} }
166 166
167 timestamp = mock_timer.Get() 167 timestamp = mock_timer.Get()
168 168
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after
233 browser_main = browser.GetOrCreateThread(tid = 11) 233 browser_main = browser.GetOrCreateThread(tid = 11)
234 browser_compositor = browser.GetOrCreateThread(tid = 12) 234 browser_compositor = browser.GetOrCreateThread(tid = 12)
235 renderer = timeline.GetOrCreateProcess(pid = 2) 235 renderer = timeline.GetOrCreateProcess(pid = 2)
236 renderer_main = renderer.GetOrCreateThread(tid = 21) 236 renderer_main = renderer.GetOrCreateThread(tid = 21)
237 renderer_compositor = renderer.GetOrCreateThread(tid = 22) 237 renderer_compositor = renderer.GetOrCreateThread(tid = 22)
238 238
239 timer = MockTimer() 239 timer = MockTimer()
240 ref_stats = ReferenceRenderingStats() 240 ref_stats = ReferenceRenderingStats()
241 241
242 # Create 10 main and impl rendering stats events for Action A. 242 # Create 10 main and impl rendering stats events for Action A.
243 timer.Advance() 243 timer.Advance(2, 4)
244 renderer_main.BeginSlice('webkit.console', 'ActionA', timer.Get(), '') 244 renderer_main.BeginSlice('webkit.console', 'ActionA', timer.Get(), '')
245 ref_stats.AppendNewRange() 245 ref_stats.AppendNewRange()
246 for i in xrange(0, 10): 246 for i in xrange(0, 10):
247 first = (i == 0) 247 first = (i == 0)
248 AddMainThreadRenderingStats(timer, renderer_main, first, None) 248 AddMainThreadRenderingStats(timer, renderer_main, first, None)
249 AddImplThreadRenderingStats(timer, renderer_compositor, first, None) 249 AddImplThreadRenderingStats(timer, renderer_compositor, first, None)
250 AddMainThreadRenderingStats(timer, browser_main, first, ref_stats) 250 AddMainThreadRenderingStats(timer, browser_main, first, ref_stats)
251 AddImplThreadRenderingStats(timer, browser_compositor, first, ref_stats) 251 AddImplThreadRenderingStats(timer, browser_compositor, first, ref_stats)
252 timer.Advance() 252 timer.Advance(2, 4)
253 renderer_main.EndSlice(timer.Get()) 253 renderer_main.EndSlice(timer.Get())
254 254
255 # Create 5 main and impl rendering stats events not within any action. 255 # Create 5 main and impl rendering stats events not within any action.
256 for i in xrange(0, 5): 256 for i in xrange(0, 5):
257 first = (i == 0) 257 first = (i == 0)
258 AddMainThreadRenderingStats(timer, renderer_main, first, None) 258 AddMainThreadRenderingStats(timer, renderer_main, first, None)
259 AddImplThreadRenderingStats(timer, renderer_compositor, first, None) 259 AddImplThreadRenderingStats(timer, renderer_compositor, first, None)
260 AddMainThreadRenderingStats(timer, browser_main, first, None) 260 AddMainThreadRenderingStats(timer, browser_main, first, None)
261 AddImplThreadRenderingStats(timer, browser_compositor, first, None) 261 AddImplThreadRenderingStats(timer, browser_compositor, first, None)
262 262
263 # Create 10 main and impl rendering stats events for Action B. 263 # Create 10 main and impl rendering stats events for Action B.
264 timer.Advance() 264 timer.Advance(2, 4)
265 renderer_main.BeginSlice('webkit.console', 'ActionB', timer.Get(), '') 265 renderer_main.BeginSlice('webkit.console', 'ActionB', timer.Get(), '')
266 ref_stats.AppendNewRange() 266 ref_stats.AppendNewRange()
267 for i in xrange(0, 10): 267 for i in xrange(0, 10):
268 first = (i == 0) 268 first = (i == 0)
269 AddMainThreadRenderingStats(timer, renderer_main, first, None) 269 AddMainThreadRenderingStats(timer, renderer_main, first, None)
270 AddImplThreadRenderingStats(timer, renderer_compositor, first, None) 270 AddImplThreadRenderingStats(timer, renderer_compositor, first, None)
271 AddMainThreadRenderingStats(timer, browser_main, first, ref_stats) 271 AddMainThreadRenderingStats(timer, browser_main, first, ref_stats)
272 AddImplThreadRenderingStats(timer, browser_compositor, first, ref_stats) 272 AddImplThreadRenderingStats(timer, browser_compositor, first, ref_stats)
273 timer.Advance() 273 timer.Advance(2, 4)
274 renderer_main.EndSlice(timer.Get()) 274 renderer_main.EndSlice(timer.Get())
275 275
276 # Create 10 main and impl rendering stats events for Action A. 276 # Create 10 main and impl rendering stats events for Action A.
277 timer.Advance() 277 timer.Advance(2, 4)
278 renderer_main.BeginSlice('webkit.console', 'ActionA', timer.Get(), '') 278 renderer_main.BeginSlice('webkit.console', 'ActionA', timer.Get(), '')
279 ref_stats.AppendNewRange() 279 ref_stats.AppendNewRange()
280 for i in xrange(0, 10): 280 for i in xrange(0, 10):
281 first = (i == 0) 281 first = (i == 0)
282 AddMainThreadRenderingStats(timer, renderer_main, first, None) 282 AddMainThreadRenderingStats(timer, renderer_main, first, None)
283 AddImplThreadRenderingStats(timer, renderer_compositor, first, None) 283 AddImplThreadRenderingStats(timer, renderer_compositor, first, None)
284 AddMainThreadRenderingStats(timer, browser_main, first, ref_stats) 284 AddMainThreadRenderingStats(timer, browser_main, first, ref_stats)
285 AddImplThreadRenderingStats(timer, browser_compositor, first, ref_stats) 285 AddImplThreadRenderingStats(timer, browser_compositor, first, ref_stats)
286 timer.Advance() 286 timer.Advance(2, 4)
287 renderer_main.EndSlice(timer.Get()) 287 renderer_main.EndSlice(timer.Get())
288 288
289 browser.FinalizeImport() 289 browser.FinalizeImport()
290 renderer.FinalizeImport() 290 renderer.FinalizeImport()
291 291
292 timeline_markers = timeline.FindTimelineMarkers( 292 timeline_markers = timeline.FindTimelineMarkers(
293 ['ActionA', 'ActionB', 'ActionA']) 293 ['ActionA', 'ActionB', 'ActionA'])
294 timeline_ranges = [ timeline_bounds.Bounds.CreateFromEvent(marker) 294 timeline_ranges = [ timeline_bounds.Bounds.CreateFromEvent(marker)
295 for marker in timeline_markers ] 295 for marker in timeline_markers ]
296 stats = RenderingStats(renderer, browser, timeline_ranges) 296 stats = RenderingStats(renderer, browser, timeline_ranges)
(...skipping 20 matching lines...) Expand all
317 # Create a browser process and a renderer process. 317 # Create a browser process and a renderer process.
318 browser = timeline.GetOrCreateProcess(pid = 1) 318 browser = timeline.GetOrCreateProcess(pid = 1)
319 browser_main = browser.GetOrCreateThread(tid = 11) 319 browser_main = browser.GetOrCreateThread(tid = 11)
320 renderer = timeline.GetOrCreateProcess(pid = 2) 320 renderer = timeline.GetOrCreateProcess(pid = 2)
321 renderer_main = renderer.GetOrCreateThread(tid = 21) 321 renderer_main = renderer.GetOrCreateThread(tid = 21)
322 322
323 timer = MockTimer() 323 timer = MockTimer()
324 ref_latency_stats = ReferenceInputLatencyStats() 324 ref_latency_stats = ReferenceInputLatencyStats()
325 325
326 # Create 10 input latency stats events for Action A. 326 # Create 10 input latency stats events for Action A.
327 timer.Advance() 327 timer.Advance(2, 4)
328 renderer_main.BeginSlice('webkit.console', 'ActionA', timer.Get(), '') 328 renderer_main.BeginSlice('webkit.console', 'ActionA', timer.Get(), '')
329 for _ in xrange(0, 10): 329 for _ in xrange(0, 10):
330 AddInputLatencyStats(timer, 'MouseWheel', browser_main, 330 AddInputLatencyStats(timer, 'MouseWheel', browser_main,
331 renderer_main, ref_latency_stats) 331 renderer_main, ref_latency_stats)
332 AddInputLatencyStats(timer, 'GestureScrollUpdate', browser_main, 332 AddInputLatencyStats(timer, 'GestureScrollUpdate', browser_main,
333 renderer_main, ref_latency_stats) 333 renderer_main, ref_latency_stats)
334 AddInputLatencyStats(timer, 'TouchMove', browser_main, 334 AddInputLatencyStats(timer, 'TouchMove', browser_main,
335 renderer_main, ref_latency_stats) 335 renderer_main, ref_latency_stats)
336 timer.Advance() 336 timer.Advance(2, 4)
337 renderer_main.EndSlice(timer.Get()) 337 renderer_main.EndSlice(timer.Get())
338 338
339 # Create 5 input latency stats events not within any action. 339 # Create 5 input latency stats events not within any action.
340 timer.Advance(2, 4)
340 for _ in xrange(0, 5): 341 for _ in xrange(0, 5):
341 AddInputLatencyStats(timer, 'MouseWheel', browser_main, 342 AddInputLatencyStats(timer, 'MouseWheel', browser_main,
342 renderer_main, None) 343 renderer_main, None)
343 AddInputLatencyStats(timer, 'GestureScrollUpdate', browser_main, 344 AddInputLatencyStats(timer, 'GestureScrollUpdate', browser_main,
344 renderer_main, None) 345 renderer_main, None)
345 AddInputLatencyStats(timer, 'TouchMove', browser_main, 346 AddInputLatencyStats(timer, 'TouchMove', browser_main,
346 renderer_main, None) 347 renderer_main, None)
347 348
348 # Create 10 input latency stats events for Action B. 349 # Create 10 input latency stats events for Action B.
349 timer.Advance() 350 timer.Advance(2, 4)
350 renderer_main.BeginSlice('webkit.console', 'ActionB', timer.Get(), '') 351 renderer_main.BeginSlice('webkit.console', 'ActionB', timer.Get(), '')
351 for _ in xrange(0, 10): 352 for _ in xrange(0, 10):
352 AddInputLatencyStats(timer, 'MouseWheel', browser_main, 353 AddInputLatencyStats(timer, 'MouseWheel', browser_main,
353 renderer_main, ref_latency_stats) 354 renderer_main, ref_latency_stats)
354 AddInputLatencyStats(timer, 'GestureScrollUpdate', browser_main, 355 AddInputLatencyStats(timer, 'GestureScrollUpdate', browser_main,
355 renderer_main, ref_latency_stats) 356 renderer_main, ref_latency_stats)
356 AddInputLatencyStats(timer, 'TouchMove', browser_main, 357 AddInputLatencyStats(timer, 'TouchMove', browser_main,
357 renderer_main, ref_latency_stats) 358 renderer_main, ref_latency_stats)
358 timer.Advance() 359 timer.Advance(2, 4)
359 renderer_main.EndSlice(timer.Get()) 360 renderer_main.EndSlice(timer.Get())
360 361
361 # Create 10 input latency stats events for Action A. 362 # Create 10 input latency stats events for Action A.
362 timer.Advance() 363 timer.Advance(2, 4)
363 renderer_main.BeginSlice('webkit.console', 'ActionA', timer.Get(), '') 364 renderer_main.BeginSlice('webkit.console', 'ActionA', timer.Get(), '')
364 for _ in xrange(0, 10): 365 for _ in xrange(0, 10):
365 AddInputLatencyStats(timer, 'MouseWheel', browser_main, 366 AddInputLatencyStats(timer, 'MouseWheel', browser_main,
366 renderer_main, ref_latency_stats) 367 renderer_main, ref_latency_stats)
367 AddInputLatencyStats(timer, 'GestureScrollUpdate', browser_main, 368 AddInputLatencyStats(timer, 'GestureScrollUpdate', browser_main,
368 renderer_main, ref_latency_stats) 369 renderer_main, ref_latency_stats)
369 AddInputLatencyStats(timer, 'TouchMove', browser_main, 370 AddInputLatencyStats(timer, 'TouchMove', browser_main,
370 renderer_main, ref_latency_stats) 371 renderer_main, ref_latency_stats)
371 timer.Advance() 372 timer.Advance(2, 4)
372 renderer_main.EndSlice(timer.Get()) 373 renderer_main.EndSlice(timer.Get())
373 374
374 browser.FinalizeImport() 375 browser.FinalizeImport()
375 renderer.FinalizeImport() 376 renderer.FinalizeImport()
376 377
377 mouse_wheel_scroll_events = [] 378 mouse_wheel_scroll_events = []
378 touch_scroll_events = [] 379 touch_scroll_events = []
379 js_touch_scroll_events = [] 380 js_touch_scroll_events = []
380 381
381 timeline_markers = timeline.FindTimelineMarkers( 382 timeline_markers = timeline.FindTimelineMarkers(
(...skipping 17 matching lines...) Expand all
399 self.assertEquals(touch_scroll_events, 400 self.assertEquals(touch_scroll_events,
400 ref_latency_stats.touch_scroll_events) 401 ref_latency_stats.touch_scroll_events)
401 self.assertEquals(js_touch_scroll_events, 402 self.assertEquals(js_touch_scroll_events,
402 ref_latency_stats.js_touch_scroll_events) 403 ref_latency_stats.js_touch_scroll_events)
403 self.assertEquals(ComputeMouseWheelScrollLatency(mouse_wheel_scroll_events), 404 self.assertEquals(ComputeMouseWheelScrollLatency(mouse_wheel_scroll_events),
404 ref_latency_stats.mouse_wheel_scroll_latency) 405 ref_latency_stats.mouse_wheel_scroll_latency)
405 self.assertEquals(ComputeTouchScrollLatency(touch_scroll_events), 406 self.assertEquals(ComputeTouchScrollLatency(touch_scroll_events),
406 ref_latency_stats.touch_scroll_latency) 407 ref_latency_stats.touch_scroll_latency)
407 self.assertEquals(ComputeTouchScrollLatency(js_touch_scroll_events), 408 self.assertEquals(ComputeTouchScrollLatency(js_touch_scroll_events),
408 ref_latency_stats.js_touch_scroll_latency) 409 ref_latency_stats.js_touch_scroll_latency)
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698