| OLD | NEW |
| 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 import unittest | 4 import unittest |
| 5 import random | 5 import random |
| 6 | 6 |
| 7 from metrics import discrepancy |
| 7 from metrics import smoothness | 8 from metrics import smoothness |
| 8 from metrics.gpu_rendering_stats import GpuRenderingStats | 9 from metrics.gpu_rendering_stats import GpuRenderingStats |
| 9 from telemetry.page import page | 10 from telemetry.page import page |
| 10 from telemetry.page.page_measurement_results import PageMeasurementResults | 11 from telemetry.page.page_measurement_results import PageMeasurementResults |
| 11 from telemetry.core.backends.chrome.tracing_backend import RawTraceResultImpl | 12 from telemetry.core.backends.chrome.tracing_backend import RawTraceResultImpl |
| 12 from telemetry.core.backends.chrome.trace_result import TraceResult | 13 from telemetry.core.backends.chrome.trace_result import TraceResult |
| 13 | 14 |
| 14 class MockTimer(object): | 15 class MockTimer(object): |
| 15 """ An instance of this class is used as a global timer to generate | 16 """ An instance of this class is used as a global timer to generate |
| 16 random durations for stats and consistent timestamps for all mock trace | 17 random durations for stats and consistent timestamps for all mock trace |
| (...skipping 214 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 231 smoothness.CalcResults(stats, res) | 232 smoothness.CalcResults(stats, res) |
| 232 res.DidMeasurePage() | 233 res.DidMeasurePage() |
| 233 | 234 |
| 234 rs = rendering_stats | 235 rs = rendering_stats |
| 235 | 236 |
| 236 # Scroll Results | 237 # Scroll Results |
| 237 self.assertAlmostEquals( | 238 self.assertAlmostEquals( |
| 238 round(rs['totalTimeInSeconds'] / rs['numFramesSentToScreen'] * 1000.0, | 239 round(rs['totalTimeInSeconds'] / rs['numFramesSentToScreen'] * 1000.0, |
| 239 3), | 240 3), |
| 240 res.page_results[0]['mean_frame_time'].value, 2) | 241 res.page_results[0]['mean_frame_time'].value, 2) |
| 242 # We don't verify the correctness of the discrepancy computation |
| 243 # itself, because we have a separate unit test for that purpose. |
| 244 self.assertEquals( |
| 245 round(discrepancy.FrameDiscrepancy(stats.screen_frame_timestamps, |
| 246 True), 4), |
| 247 res.page_results[0]['absolute_frame_discrepancy'].value) |
| 248 self.assertEquals( |
| 249 round(discrepancy.FrameDiscrepancy(stats.screen_frame_timestamps, |
| 250 False), 4), |
| 251 res.page_results[0]['relative_frame_discrepancy'].value) |
| 241 self.assertAlmostEquals( | 252 self.assertAlmostEquals( |
| 242 round(rs['droppedFrameCount'] / rs['numFramesSentToScreen'] * 100.0, 1), | 253 round(rs['droppedFrameCount'] / rs['numFramesSentToScreen'] * 100.0, 1), |
| 243 res.page_results[0]['dropped_percent'].value) | 254 res.page_results[0]['dropped_percent'].value) |
| 244 self.assertAlmostEquals( | 255 self.assertAlmostEquals( |
| 245 round(rs['numImplThreadScrolls'] / (rs['numImplThreadScrolls'] + | 256 round(rs['numImplThreadScrolls'] / (rs['numImplThreadScrolls'] + |
| 246 rs['numMainThreadScrolls']) * 100.0, | 257 rs['numMainThreadScrolls']) * 100.0, |
| 247 1), | 258 1), |
| 248 res.page_results[0]['percent_impl_scrolled'].value) | 259 res.page_results[0]['percent_impl_scrolled'].value) |
| 249 self.assertAlmostEquals( | 260 self.assertAlmostEquals( |
| 250 round(rs['numLayersDrawn'] / rs['numFramesSentToScreen'], 1), | 261 round(rs['numLayersDrawn'] / rs['numFramesSentToScreen'], 1), |
| (...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 299 self.assertAlmostEquals( | 310 self.assertAlmostEquals( |
| 300 round(rs['totalTouchUILatency'] / rs['touchUICount'] * 1000.0, 3), | 311 round(rs['totalTouchUILatency'] / rs['touchUICount'] * 1000.0, 3), |
| 301 res.page_results[0]['average_touch_ui_latency'].value) | 312 res.page_results[0]['average_touch_ui_latency'].value) |
| 302 self.assertAlmostEquals( | 313 self.assertAlmostEquals( |
| 303 round(rs['totalTouchAckedLatency'] / rs['touchAckedCount'] * 1000.0, 3), | 314 round(rs['totalTouchAckedLatency'] / rs['touchAckedCount'] * 1000.0, 3), |
| 304 res.page_results[0]['average_touch_acked_latency'].value) | 315 res.page_results[0]['average_touch_acked_latency'].value) |
| 305 self.assertAlmostEquals( | 316 self.assertAlmostEquals( |
| 306 round(rs['totalScrollUpdateLatency'] / rs['scrollUpdateCount'] * 1000.0, | 317 round(rs['totalScrollUpdateLatency'] / rs['scrollUpdateCount'] * 1000.0, |
| 307 3), | 318 3), |
| 308 res.page_results[0]['average_scroll_update_latency'].value) | 319 res.page_results[0]['average_scroll_update_latency'].value) |
| OLD | NEW |