[email protected] | 86a2774 | 2013-07-31 14:48:03 | [diff] [blame] | 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 |
| 3 | # found in the LICENSE file. |
| 4 | import unittest |
| 5 | |
[email protected] | 4d5f13bb | 2013-08-02 00:45:44 | [diff] [blame^] | 6 | from metrics import smoothness |
[email protected] | 86a2774 | 2013-07-31 14:48:03 | [diff] [blame] | 7 | from telemetry.page import page |
| 8 | from telemetry.page.page_measurement_results import PageMeasurementResults |
| 9 | |
| 10 | class SmoothnessMetricsUnitTest(unittest.TestCase): |
| 11 | |
| 12 | def testCalcResultsFromRAFRenderStats(self): |
| 13 | rendering_stats = {'droppedFrameCount': 5, |
| 14 | 'totalTimeInSeconds': 1, |
| 15 | 'numAnimationFrames': 10, |
| 16 | 'numFramesSentToScreen': 10} |
| 17 | res = PageMeasurementResults() |
| 18 | res.WillMeasurePage(page.Page('http://foo.com/', None)) |
[email protected] | 4d5f13bb | 2013-08-02 00:45:44 | [diff] [blame^] | 19 | smoothness.CalcScrollResults(rendering_stats, res) |
[email protected] | 86a2774 | 2013-07-31 14:48:03 | [diff] [blame] | 20 | res.DidMeasurePage() |
| 21 | self.assertEquals(50, res.page_results[0]['dropped_percent'].value) |
| 22 | self.assertAlmostEquals( |
| 23 | 100, |
| 24 | res.page_results[0]['mean_frame_time'].value, 2) |
| 25 | |
| 26 | def testCalcResultsRealRenderStats(self): |
| 27 | rendering_stats = {'numFramesSentToScreen': 60, |
| 28 | 'globalTotalTextureUploadTimeInSeconds': 0, |
| 29 | 'totalProcessingCommandsTimeInSeconds': 0, |
| 30 | 'globalTextureUploadCount': 0, |
| 31 | 'droppedFrameCount': 0, |
| 32 | 'textureUploadCount': 0, |
| 33 | 'numAnimationFrames': 10, |
| 34 | 'totalPaintTimeInSeconds': 0.35374299999999986, |
| 35 | 'globalTotalProcessingCommandsTimeInSeconds': 0, |
| 36 | 'totalTextureUploadTimeInSeconds': 0, |
| 37 | 'totalRasterizeTimeInSeconds': 0, |
| 38 | 'totalTimeInSeconds': 1.0} |
| 39 | res = PageMeasurementResults() |
| 40 | res.WillMeasurePage(page.Page('http://foo.com/', None)) |
[email protected] | 4d5f13bb | 2013-08-02 00:45:44 | [diff] [blame^] | 41 | smoothness.CalcScrollResults(rendering_stats, res) |
[email protected] | 86a2774 | 2013-07-31 14:48:03 | [diff] [blame] | 42 | res.DidMeasurePage() |
| 43 | self.assertEquals(0, res.page_results[0]['dropped_percent'].value) |
| 44 | self.assertAlmostEquals( |
| 45 | 1000 / 60., |
| 46 | res.page_results[0]['mean_frame_time'].value, 2) |