Index: tools/telemetry/telemetry/web_perf/metrics/rendering_frame_unittest.py |
diff --git a/tools/telemetry/telemetry/web_perf/metrics/rendering_frame_unittest.py b/tools/telemetry/telemetry/web_perf/metrics/rendering_frame_unittest.py |
deleted file mode 100644 |
index 95f6d93bdcec588f027006afadc67a851b2c8e4f..0000000000000000000000000000000000000000 |
--- a/tools/telemetry/telemetry/web_perf/metrics/rendering_frame_unittest.py |
+++ /dev/null |
@@ -1,163 +0,0 @@ |
-# Copyright 2014 The Chromium Authors. All rights reserved. |
-# Use of this source code is governed by a BSD-style license that can be |
-# found in the LICENSE file. |
- |
-import unittest |
- |
-import telemetry.timeline.bounds as timeline_bounds |
-from telemetry.timeline import model |
-import telemetry.timeline.slice as tracing_slice |
-from telemetry.web_perf.metrics. \ |
- rendering_frame import GetFrameEventsInsideRange |
-from telemetry.web_perf.metrics.rendering_frame import MissingData |
-from telemetry.web_perf.metrics.rendering_frame import RenderingFrame |
- |
- |
-class RenderingFrameTestData(object): |
- |
- def __init__(self): |
- self._begin_frame_id = 0 |
- self._events = [] |
- self._renderer_process = model.TimelineModel().GetOrCreateProcess(pid=1) |
- self._main_thread = self._renderer_process.GetOrCreateThread(tid=11) |
- self._compositor_thread = self._renderer_process.GetOrCreateThread(tid=12) |
- |
- @property |
- def events(self): |
- return self._events |
- |
- @property |
- def renderer_process(self): |
- return self._renderer_process |
- |
- def AddSendEvent(self, ts=0, duration=1): |
- self._begin_frame_id += 1 |
- event = self._CreateEvent( |
- RenderingFrame.send_begin_frame_event, ts, duration) |
- self._compositor_thread.PushSlice(event) |
- |
- def AddBeginMainFrameEvent(self, ts=0, duration=1): |
- event = self._CreateEvent( |
- RenderingFrame.begin_main_frame_event, ts, duration) |
- self._main_thread.PushSlice(event) |
- |
- def FinalizeImport(self): |
- self._renderer_process.FinalizeImport() |
- |
- def _CreateEvent(self, event_name, ts, duration): |
- event = tracing_slice.Slice(None, 'cc,benchmark', event_name, ts, |
- duration=duration, args={'begin_frame_id': self._begin_frame_id}) |
- self._events.append(event) |
- return event |
- |
- |
-def GenerateTimelineRange(start=0, end=100): |
- timeline_range = timeline_bounds.Bounds() |
- timeline_range.AddValue(start) |
- timeline_range.AddValue(end) |
- return timeline_range |
- |
- |
-class RenderingFrameUnitTest(unittest.TestCase): |
- |
- def testRenderingFrame(self): |
- d = RenderingFrameTestData() |
- d.AddSendEvent(ts=10) |
- d.AddBeginMainFrameEvent(ts=20) |
- d.FinalizeImport() |
- |
- frame = RenderingFrame(d.events) |
- self.assertEquals(10, frame.queueing_duration) |
- |
- def testRenderingFrameMissingSendBeginFrameEvents(self): |
- d = RenderingFrameTestData() |
- d.AddBeginMainFrameEvent(ts=10) |
- d.FinalizeImport() |
- |
- self.assertRaises(MissingData, RenderingFrame, d.events) |
- |
- def testRenderingFrameDuplicateSendBeginFrameEvents(self): |
- d = RenderingFrameTestData() |
- d.AddSendEvent(ts=10) |
- d.AddBeginMainFrameEvent(ts=20) |
- d.AddSendEvent(ts=30) |
- d.FinalizeImport() |
- |
- self.assertRaises(MissingData, RenderingFrame, d.events) |
- |
- def testRenderingFrameMissingBeginMainFrameEvents(self): |
- d = RenderingFrameTestData() |
- d.AddSendEvent(ts=10) |
- d.FinalizeImport() |
- |
- self.assertRaises(MissingData, RenderingFrame, d.events) |
- |
- def testRenderingFrameDuplicateBeginMainFrameEvents(self): |
- d = RenderingFrameTestData() |
- d.AddSendEvent(ts=10) |
- d.AddBeginMainFrameEvent(ts=20) |
- d.AddBeginMainFrameEvent(ts=30) |
- d.AddBeginMainFrameEvent(ts=40) |
- d.FinalizeImport() |
- |
- frame = RenderingFrame(d.events) |
- self.assertEquals(30, frame.queueing_duration) |
- |
- def testFrameEventMissingBeginFrameId(self): |
- timeline = model.TimelineModel() |
- process = timeline.GetOrCreateProcess(pid=1) |
- main_thread = process.GetOrCreateThread(tid=11) |
- timeline_range = timeline_bounds.Bounds() |
- |
- # Create an event without the begin_frame_id argument |
- event = tracing_slice.Slice( |
- None, 'cc,benchmark', RenderingFrame.begin_main_frame_event, 0) |
- main_thread.PushSlice(event) |
- process.FinalizeImport() |
- self.assertRaises(Exception, GetFrameEventsInsideRange, process, |
- timeline_range) |
- |
- def testGetFrameEventsInsideRange(self): |
- """Test a basic sequenece, with expected frame queueing delays A and B. |
- |
- |----A----| |--B--| |
- Main: [1] [1] [2] |
- |
- Compositor: [1] [2] |
- """ |
- d = RenderingFrameTestData() |
- d.AddSendEvent(ts=10) |
- d.AddBeginMainFrameEvent(ts=20) |
- d.AddBeginMainFrameEvent(ts=30) |
- d.AddSendEvent(ts=40) |
- d.AddBeginMainFrameEvent(ts=50) |
- d.FinalizeImport() |
- |
- timeline_range = GenerateTimelineRange() |
- frame_events = GetFrameEventsInsideRange(d.renderer_process, timeline_range) |
- |
- self.assertEquals(2, len(frame_events)) |
- self.assertEquals(20, frame_events[0].queueing_duration) |
- self.assertEquals(10, frame_events[1].queueing_duration) |
- |
- def testFrameEventsMissingDataNotIncluded(self): |
- """Test a sequenece missing an initial SendBeginFrame. |
- |
- Only one frame should be returned, with expected frame queueing delay A. |
- |--A--| |
- Main: [0] [0] [2] |
- |
- Compositor: [2] |
- """ |
- d = RenderingFrameTestData() |
- d.AddBeginMainFrameEvent(ts=20) |
- d.AddBeginMainFrameEvent(ts=30) |
- d.AddSendEvent(ts=40) |
- d.AddBeginMainFrameEvent(ts=50) |
- d.FinalizeImport() |
- |
- timeline_range = GenerateTimelineRange() |
- frame_events = GetFrameEventsInsideRange(d.renderer_process, timeline_range) |
- |
- self.assertEquals(1, len(frame_events)) |
- self.assertEquals(10, frame_events[0].queueing_duration) |