mirror of
https://github.com/flutter/flutter.git
synced 2025-06-03 00:51:18 +00:00
65 lines
2.3 KiB
Python
65 lines
2.3 KiB
Python
# Copyright 2013 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.
|
|
|
|
"""Unittests for SurfaceStatsCollector."""
|
|
# pylint: disable=W0212
|
|
|
|
import unittest
|
|
|
|
from pylib.perf.surface_stats_collector import SurfaceStatsCollector
|
|
|
|
|
|
class TestSurfaceStatsCollector(unittest.TestCase):
|
|
@staticmethod
|
|
def _CreateUniformTimestamps(base, num, delta):
|
|
return [base + i * delta for i in range(1, num + 1)]
|
|
|
|
@staticmethod
|
|
def _CreateDictionaryFromResults(results):
|
|
dictionary = {}
|
|
for result in results:
|
|
dictionary[result.name] = result
|
|
return dictionary
|
|
|
|
def setUp(self):
|
|
self.refresh_period = 0.1
|
|
|
|
def testOneFrameDelta(self):
|
|
timestamps = self._CreateUniformTimestamps(0, 10, self.refresh_period)
|
|
results = self._CreateDictionaryFromResults(
|
|
SurfaceStatsCollector._CalculateResults(
|
|
self.refresh_period, timestamps, ''))
|
|
|
|
self.assertEquals(results['avg_surface_fps'].value,
|
|
int(round(1 / self.refresh_period)))
|
|
self.assertEquals(results['jank_count'].value, 0)
|
|
self.assertEquals(results['max_frame_delay'].value, 1)
|
|
self.assertEquals(len(results['frame_lengths'].value), len(timestamps) - 1)
|
|
|
|
def testAllFramesTooShort(self):
|
|
timestamps = self._CreateUniformTimestamps(0, 10, self.refresh_period / 100)
|
|
self.assertRaises(Exception,
|
|
SurfaceStatsCollector._CalculateResults,
|
|
[self.refresh_period, timestamps, ''])
|
|
|
|
def testSomeFramesTooShort(self):
|
|
timestamps = self._CreateUniformTimestamps(0, 5, self.refresh_period)
|
|
# The following timestamps should be skipped.
|
|
timestamps += self._CreateUniformTimestamps(timestamps[4],
|
|
5,
|
|
self.refresh_period / 100)
|
|
timestamps += self._CreateUniformTimestamps(timestamps[4],
|
|
5,
|
|
self.refresh_period)
|
|
|
|
results = self._CreateDictionaryFromResults(
|
|
SurfaceStatsCollector._CalculateResults(
|
|
self.refresh_period, timestamps, ''))
|
|
|
|
self.assertEquals(len(results['frame_lengths'].value), 9)
|
|
|
|
|
|
if __name__ == '__main__':
|
|
unittest.main()
|