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

Side by Side Diff: tools/telemetry/telemetry/web_perf/metrics/rendering_stats_unittest.py

Issue 476363002: NotEnoughFramesError no longer raises an exception. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: address further comments Created 6 years, 3 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
OLDNEW
1 # Copyright 2014 The Chromium Authors. All rights reserved. 1 # Copyright 2014 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 import telemetry.timeline.async_slice as tracing_async_slice 8 import telemetry.timeline.async_slice as tracing_async_slice
9 import telemetry.timeline.bounds as timeline_bounds 9 import telemetry.timeline.bounds as timeline_bounds
10 from telemetry.perf_tests_helper import FlattenList 10 from telemetry.perf_tests_helper import FlattenList
11 from telemetry.timeline import model 11 from telemetry.timeline import model
12 from telemetry.util.statistics import DivideIfPossibleOrZero 12 from telemetry.util.statistics import DivideIfPossibleOrZero
13 from telemetry.web_perf.metrics.rendering_stats import ( 13 from telemetry.web_perf.metrics.rendering_stats import (
14 BEGIN_COMP_NAME, 14 BEGIN_COMP_NAME,
15 BEGIN_SCROLL_UPDATE_COMP_NAME, 15 BEGIN_SCROLL_UPDATE_COMP_NAME,
16 END_COMP_NAME, 16 END_COMP_NAME,
17 FORWARD_SCROLL_UPDATE_COMP_NAME, 17 FORWARD_SCROLL_UPDATE_COMP_NAME,
18 GESTURE_SCROLL_UPDATE_EVENT_NAME, 18 GESTURE_SCROLL_UPDATE_EVENT_NAME,
19 ORIGINAL_COMP_NAME, 19 ORIGINAL_COMP_NAME,
20 SCROLL_UPDATE_EVENT_NAME, 20 SCROLL_UPDATE_EVENT_NAME,
21 UI_COMP_NAME) 21 UI_COMP_NAME)
22 from telemetry.web_perf.metrics.rendering_stats import ( 22 from telemetry.web_perf.metrics.rendering_stats import (
23 ComputeInputEventLatencies) 23 ComputeInputEventLatencies)
24 from telemetry.web_perf.metrics.rendering_stats import GetInputLatencyEvents 24 from telemetry.web_perf.metrics.rendering_stats import GetInputLatencyEvents
25 from telemetry.web_perf.metrics.rendering_stats import HasRenderingStats 25 from telemetry.web_perf.metrics.rendering_stats import HasRenderingStats
26 from telemetry.web_perf.metrics.rendering_stats import NotEnoughFramesError
27 from telemetry.web_perf.metrics.rendering_stats import RenderingStats 26 from telemetry.web_perf.metrics.rendering_stats import RenderingStats
28 27
29 28
30 class MockTimer(object): 29 class MockTimer(object):
31 """A mock timer class which can generate random durations. 30 """A mock timer class which can generate random durations.
32 31
33 An instance of this class is used as a global timer to generate random 32 An instance of this class is used as a global timer to generate random
34 durations for stats and consistent timestamps for all mock trace events. 33 durations for stats and consistent timestamps for all mock trace events.
35 The unit of time is milliseconds. 34 The unit of time is milliseconds.
36 """ 35 """
(...skipping 258 matching lines...) Expand 10 before | Expand all | Expand 10 after
295 timer.Advance(2, 4) 294 timer.Advance(2, 4)
296 renderer_main.BeginSlice('webkit.console', 'ActionB', timer.Get(), '') 295 renderer_main.BeginSlice('webkit.console', 'ActionB', timer.Get(), '')
297 timer.Advance(2, 4) 296 timer.Advance(2, 4)
298 renderer_main.EndSlice(timer.Get()) 297 renderer_main.EndSlice(timer.Get())
299 298
300 renderer.FinalizeImport() 299 renderer.FinalizeImport()
301 300
302 timeline_markers = timeline.FindTimelineMarkers(['ActionA', 'ActionB']) 301 timeline_markers = timeline.FindTimelineMarkers(['ActionA', 'ActionB'])
303 timeline_ranges = [ timeline_bounds.Bounds.CreateFromEvent(marker) 302 timeline_ranges = [ timeline_bounds.Bounds.CreateFromEvent(marker)
304 for marker in timeline_markers ] 303 for marker in timeline_markers ]
305 self.assertRaises(NotEnoughFramesError, RenderingStats, 304
306 renderer, None, timeline_ranges) 305 stats = RenderingStats(renderer, None, timeline_ranges)
306 self.assertEquals(0, len(stats.frame_timestamps[1]))
307
307 308
308 def testFromTimeline(self): 309 def testFromTimeline(self):
309 timeline = model.TimelineModel() 310 timeline = model.TimelineModel()
310 311
311 # Create a browser process and a renderer process, and a main thread and 312 # Create a browser process and a renderer process, and a main thread and
312 # impl thread for each. 313 # impl thread for each.
313 browser = timeline.GetOrCreateProcess(pid = 1) 314 browser = timeline.GetOrCreateProcess(pid = 1)
314 browser_main = browser.GetOrCreateThread(tid = 11) 315 browser_main = browser.GetOrCreateThread(tid = 11)
315 browser_compositor = browser.GetOrCreateThread(tid = 12) 316 browser_compositor = browser.GetOrCreateThread(tid = 12)
316 renderer = timeline.GetOrCreateProcess(pid = 2) 317 renderer = timeline.GetOrCreateProcess(pid = 2)
(...skipping 154 matching lines...) Expand 10 before | Expand all | Expand 10 after
471 stats = RenderingStats(renderer, browser, timeline_ranges) 472 stats = RenderingStats(renderer, browser, timeline_ranges)
472 self.assertEquals(FlattenList(stats.input_event_latency), [ 473 self.assertEquals(FlattenList(stats.input_event_latency), [
473 latency for name, latency in ref_latency.input_event_latency 474 latency for name, latency in ref_latency.input_event_latency
474 if name != SCROLL_UPDATE_EVENT_NAME]) 475 if name != SCROLL_UPDATE_EVENT_NAME])
475 self.assertEquals(FlattenList(stats.scroll_update_latency), [ 476 self.assertEquals(FlattenList(stats.scroll_update_latency), [
476 latency for name, latency in ref_latency.input_event_latency 477 latency for name, latency in ref_latency.input_event_latency
477 if name == SCROLL_UPDATE_EVENT_NAME]) 478 if name == SCROLL_UPDATE_EVENT_NAME])
478 self.assertEquals(FlattenList(stats.gesture_scroll_update_latency), [ 479 self.assertEquals(FlattenList(stats.gesture_scroll_update_latency), [
479 latency for name, latency in ref_latency.input_event_latency 480 latency for name, latency in ref_latency.input_event_latency
480 if name == GESTURE_SCROLL_UPDATE_EVENT_NAME]) 481 if name == GESTURE_SCROLL_UPDATE_EVENT_NAME])
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698