| Index: build/android/pylib/perf/surface_stats_collector_unittest.py
|
| diff --git a/build/android/pylib/perf/surface_stats_collector_unittest.py b/build/android/pylib/perf/surface_stats_collector_unittest.py
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..e905d7314e33383f6c7e6e1fe3d81aa5e6be7d23
|
| --- /dev/null
|
| +++ b/build/android/pylib/perf/surface_stats_collector_unittest.py
|
| @@ -0,0 +1,64 @@
|
| +# 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()
|
|
|