blob: e7b8778e94b8102efe98d4975b6a92f72718cc9e [file] [log] [blame]
[email protected]86a27742013-07-31 14:48:031# 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.
4import unittest
5
[email protected]4d5f13bb2013-08-02 00:45:446from metrics import smoothness
[email protected]86a27742013-07-31 14:48:037from telemetry.page import page
8from telemetry.page.page_measurement_results import PageMeasurementResults
9
10class 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]4d5f13bb2013-08-02 00:45:4419 smoothness.CalcScrollResults(rendering_stats, res)
[email protected]86a27742013-07-31 14:48:0320 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]4d5f13bb2013-08-02 00:45:4441 smoothness.CalcScrollResults(rendering_stats, res)
[email protected]86a27742013-07-31 14:48:0342 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)