Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(52)

Side by Side Diff: build/android/pylib/perf/surface_stats_collector_unittest.py

Issue 71353006: Telemetry: Filter invalid frame lengths from SurfaceFlinger data. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Move filter to _GetNormalizedDeltas; add unit tests. Created 7 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « build/android/pylib/perf/surface_stats_collector.py ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
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
5 """Unittests for SurfaceStatsCollector."""
6
7 import unittest
8
9 from surface_stats_collector import SurfaceStatsCollector
10
11 class TestSurfaceStatsCollector(unittest.TestCase):
12 @staticmethod
13 def _CreateUniformTimestamps(base, num, delta):
14 return [base + i * delta for i in range(1, num + 1)]
15
16 @staticmethod
17 def _CreateDictionaryFromResults(results):
18 dictionary = {}
19 for result in results:
20 dictionary[result.name] = result
21 return dictionary
22
23 def setUp(self):
24 self.refresh_period = 0.1
25
26 def testOneFrameDelta(self):
27 timestamps = self._CreateUniformTimestamps(0, 10, self.refresh_period)
28 results = self._CreateDictionaryFromResults(
29 SurfaceStatsCollector._CalculateResults(
30 self.refresh_period, timestamps, ''))
31
32 self.assertEquals(results['avg_surface_fps'].value,
33 int(round(1 / self.refresh_period)))
34 self.assertEquals(results['jank_count'].value, 0)
35 self.assertEquals(results['max_frame_delay'].value, 1)
36 self.assertEquals(len(results['frame_lengths'].value), len(timestamps) - 1)
37
38 def testAllFramesTooShort(self):
39 timestamps = self._CreateUniformTimestamps(0, 10, self.refresh_period / 100)
40 exception_caught = False
41 try:
42 results = self._CreateDictionaryFromResults(
bulach 2013/11/15 12:11:19 nit: self.assertRaises(Exception, self._CreateDict
43 SurfaceStatsCollector._CalculateResults(
44 self.refresh_period, timestamps, ''))
45 except:
46 exception_caught = True
47
48 self.assertTrue(exception_caught)
49
50 def testSomeFramesTooShort(self):
51 timestamps = self._CreateUniformTimestamps(0, 5, self.refresh_period)
52 # The following timestamps should be skipped.
53 timestamps += self._CreateUniformTimestamps(timestamps[4],
54 5,
55 self.refresh_period / 100)
56 timestamps += self._CreateUniformTimestamps(timestamps[4],
57 5,
58 self.refresh_period)
59 print timestamps
bulach 2013/11/15 12:11:19 nit: remove?
60
61 results = self._CreateDictionaryFromResults(
62 SurfaceStatsCollector._CalculateResults(
63 self.refresh_period, timestamps, ''))
64
65 self.assertEquals(len(results['frame_lengths'].value), 9)
66
67
68 if __name__ == '__main__':
69 unittest.main()
OLDNEW
« no previous file with comments | « build/android/pylib/perf/surface_stats_collector.py ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698