Upstream version 10.39.225.0
[platform/framework/web/crosswalk.git] / src / tools / telemetry / telemetry / core / platform / power_monitor / sysfs_power_monitor_unittest.py
1 # Copyright 2014 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 import unittest
6
7 from telemetry.core.platform.power_monitor import sysfs_power_monitor
8
9
10 class SysfsPowerMonitorMonitorTest(unittest.TestCase):
11   initial_freq = {
12     'cpu0': '1700000 6227\n1600000 0\n1500000 0\n1400000 28\n1300000 22\n'
13             '1200000 14\n1100000 19\n1000000 22\n900000 14\n800000 20\n'
14             '700000 15\n600000 23\n500000 23\n400000 9\n300000 28\n200000 179',
15     'cpu1': '1700000 11491\n1600000 0\n1500000 0\n1400000 248\n1300000 1166\n'
16             '1200000 2082\n1100000 2943\n1000000 6560\n900000 12517\n'
17             '800000 8690\n700000 5105\n600000 3800\n500000 5131\n400000 5479\n'
18             '300000 7571\n200000 133618',
19     'cpu2': '1700000 1131',
20     'cpu3': '1700000 1131'
21   }
22   final_freq = {
23     'cpu0': '1700000 7159\n1600000 0\n1500000 0\n1400000 68\n1300000 134\n'
24             '1200000 194\n1100000 296\n1000000 716\n900000 1301\n800000 851\n'
25             '700000 554\n600000 343\n500000 612\n400000 691\n300000 855\n'
26             '200000 15525',
27     'cpu1': '1700000 12048\n1600000 0\n1500000 0\n1400000 280\n1300000 1267\n'
28             '1200000 2272\n1100000 3163\n1000000 7039\n900000 13800\n'
29             '800000 9599\n700000 5655\n600000 4144\n500000 5655\n400000 6005\n'
30             '300000 8288\n200000 149724',
31     'cpu2': None,
32     'cpu3': ''
33   }
34   expected_initial_freq = {
35     'cpu0': {
36       1700000000: 6227,
37       1600000000: 0,
38       1500000000: 0,
39       1400000000: 28,
40       1300000000: 22,
41       1200000000: 14,
42       1100000000: 19,
43       1000000000: 22,
44       900000000: 14,
45       800000000: 20,
46       700000000: 15,
47       600000000: 23,
48       500000000: 23,
49       400000000: 9,
50       300000000: 28,
51       200000000: 179
52     },
53     'cpu1': {
54       1700000000: 11491,
55       1600000000: 0,
56       1500000000: 0,
57       1400000000: 248,
58       1300000000: 1166,
59       1200000000: 2082,
60       1100000000: 2943,
61       1000000000: 6560,
62       900000000: 12517,
63       800000000: 8690,
64       700000000: 5105,
65       600000000: 3800,
66       500000000: 5131,
67       400000000: 5479,
68       300000000: 7571,
69       200000000: 133618
70     },
71     'cpu2': {
72       1700000000: 1131
73     },
74     'cpu3': {
75       1700000000: 1131
76     }
77   }
78   expected_final_freq = {
79     'cpu0': {
80       1700000000: 7159,
81       1600000000: 0,
82       1500000000: 0,
83       1400000000: 68,
84       1300000000: 134,
85       1200000000: 194,
86       1100000000: 296,
87       1000000000: 716,
88       900000000: 1301,
89       800000000: 851,
90       700000000: 554,
91       600000000: 343,
92       500000000: 612,
93       400000000: 691,
94       300000000: 855,
95       200000000: 15525
96     },
97     'cpu1': {
98       1700000000: 12048,
99       1600000000: 0,
100       1500000000: 0,
101       1400000000: 280,
102       1300000000: 1267,
103       1200000000: 2272,
104       1100000000: 3163,
105       1000000000: 7039,
106       900000000: 13800,
107       800000000: 9599,
108       700000000: 5655,
109       600000000: 4144,
110       500000000: 5655,
111       400000000: 6005,
112       300000000: 8288,
113       200000000: 149724
114     },
115     'cpu2': None,
116     'cpu3': {}
117   }
118   expected_freq_percents = {
119     'whole_package': {
120       1700000000: 3.29254111574526,
121       1600000000: 0.0,
122       1500000000: 0.0,
123       1400000000: 0.15926805099535601,
124       1300000000: 0.47124116307273645,
125       1200000000: 0.818756100807525,
126       1100000000: 1.099381692400982,
127       1000000000: 2.5942528544384302,
128       900000000: 5.68661122326737,
129       800000000: 3.850545467654628,
130       700000000: 2.409691872245393,
131       600000000: 1.4693702487650486,
132       500000000: 2.4623575553879373,
133       400000000: 2.672038150383057,
134       300000000: 3.415770495015825,
135       200000000: 69.59817400982045
136     },
137     'cpu0': {
138       1700000000: 4.113700564971752,
139       1600000000: 0.0,
140       1500000000: 0.0,
141       1400000000: 0.1765536723163842,
142       1300000000: 0.4943502824858757,
143       1200000000: 0.7944915254237288,
144       1100000000: 1.2226341807909604,
145       1000000000: 3.0632062146892656,
146       900000000: 5.680614406779661,
147       800000000: 3.6679025423728815,
148       700000000: 2.379060734463277,
149       600000000: 1.4124293785310735,
150       500000000: 2.599752824858757,
151       400000000: 3.0102401129943503,
152       300000000: 3.650247175141243,
153       200000000: 67.73481638418079
154     },
155     'cpu1': {
156       1700000000: 2.4713816665187682,
157       1600000000: 0.0,
158       1500000000: 0.0,
159       1400000000: 0.1419824296743278,
160       1300000000: 0.44813204365959713,
161       1200000000: 0.8430206761913214,
162       1100000000: 0.9761292040110037,
163       1000000000: 2.1252994941875945,
164       900000000: 5.69260803975508,
165       800000000: 4.033188392936374,
166       700000000: 2.4403230100275093,
167       600000000: 1.526311118999024,
168       500000000: 2.3249622859171177,
169       400000000: 2.3338361877717633,
170       300000000: 3.1812938148904073,
171       200000000: 71.46153163546012
172     },
173     'cpu2': {
174       1700000000: 0.0,
175     },
176     'cpu3': {
177       1700000000: 0.0,
178    }
179   }
180
181   def testParseCpuFreq(self):
182     initial = sysfs_power_monitor.SysfsPowerMonitor.ParseFreqSample(
183         self.initial_freq)
184     final = sysfs_power_monitor.SysfsPowerMonitor.ParseFreqSample(
185         self.final_freq)
186     self.assertDictEqual(initial, self.expected_initial_freq)
187     self.assertDictEqual(final, self.expected_final_freq)
188
189   def testComputeCpuStats(self):
190     results = sysfs_power_monitor.SysfsPowerMonitor.ComputeCpuStats(
191         self.expected_initial_freq, self.expected_final_freq)
192     for cpu in self.expected_freq_percents:
193       for freq in results[cpu]:
194         self.assertAlmostEqual(results[cpu][freq],
195                                self.expected_freq_percents[cpu][freq])