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

Side by Side Diff: tools/telemetry/telemetry/internal/platform/android_platform_backend_unittest.py

Issue 1647513002: Delete tools/telemetry. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 10 months 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
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 import unittest
6
7 from telemetry import decorators
8 from telemetry.internal.platform import android_device
9 from telemetry.internal.platform import android_platform_backend
10 from telemetry.testing import options_for_unittests
11 from telemetry.testing import system_stub
12 import mock
13
14 from devil.android import battery_utils
15 from devil.android import device_errors
16 from devil.android import device_utils
17
18 class AndroidPlatformBackendTest(unittest.TestCase):
19 def setUp(self):
20 self._options = options_for_unittests.GetCopy()
21 self._stubs = system_stub.Override(
22 android_platform_backend,
23 ['perf_control', 'thermal_throttle', 'certutils', 'adb_install_cert',
24 'platformsettings'])
25
26 # Skip _FixPossibleAdbInstability by setting psutil to None.
27 self._actual_ps_util = android_platform_backend.psutil
28 android_platform_backend.psutil = None
29 self.battery_patcher = mock.patch.object(battery_utils, 'BatteryUtils')
30 self.battery_patcher.start()
31
32 def get_prop(name, cache=None):
33 del cache # unused
34 return {'ro.product.cpu.abi': 'armeabi-v7a'}.get(name)
35
36 self.device_patcher = mock.patch.multiple(
37 device_utils.DeviceUtils,
38 HasRoot=mock.MagicMock(return_value=True),
39 GetProp=mock.MagicMock(side_effect=get_prop))
40 self.device_patcher.start()
41
42 def tearDown(self):
43 self._stubs.Restore()
44 android_platform_backend.psutil = self._actual_ps_util
45 self.battery_patcher.stop()
46 self.device_patcher.stop()
47
48 @decorators.Disabled('chromeos')
49 def testIsSvelte(self):
50 with mock.patch('devil.android.device_utils.DeviceUtils.RunShellCommand',
51 return_value=0):
52 backend = android_platform_backend.AndroidPlatformBackend(
53 android_device.AndroidDevice('12345'), self._options)
54 self.assertTrue(backend.IsSvelte())
55
56 @decorators.Disabled('chromeos')
57 def testIsNotSvelte(self):
58 with mock.patch('devil.android.device_utils.DeviceUtils.RunShellCommand',
59 side_effect=device_errors.AdbCommandFailedError('m', 'n')):
60 backend = android_platform_backend.AndroidPlatformBackend(
61 android_device.AndroidDevice('12345'), self._options)
62 self.assertFalse(backend.IsSvelte())
63
64 @decorators.Disabled('chromeos')
65 def testGetCpuStats(self):
66 proc_stat_content = (
67 '7702 (.android.chrome) S 167 167 0 0 -1 1077936448 '
68 '3247 0 0 0 4 1 0 0 20 0 9 0 5603962 337379328 5867 '
69 '4294967295 1074458624 1074463824 3197495984 3197494152 '
70 '1074767676 0 4612 0 38136 4294967295 0 0 17 0 0 0 0 0 0 '
71 '1074470376 1074470912 1102155776\n')
72 with mock.patch('devil.android.device_utils.DeviceUtils.ReadFile',
73 return_value=proc_stat_content):
74 backend = android_platform_backend.AndroidPlatformBackend(
75 android_device.AndroidDevice('12345'), self._options)
76 cpu_stats = backend.GetCpuStats('7702')
77 self.assertEquals(cpu_stats, {'CpuProcessTime': 0.05})
78
79 @decorators.Disabled('chromeos')
80 def testGetCpuStatsInvalidPID(self):
81 # Mock an empty /proc/pid/stat.
82 with mock.patch('devil.android.device_utils.DeviceUtils.ReadFile',
83 return_value=''):
84 backend = android_platform_backend.AndroidPlatformBackend(
85 android_device.AndroidDevice('1234'), self._options)
86 cpu_stats = backend.GetCpuStats('7702')
87 self.assertEquals(cpu_stats, {})
88
89 def testAndroidParseCpuStates(self):
90 cstate = {
91 'cpu0': 'C0\nC1\n103203424\n5342040\n300\n500\n1403232500',
92 'cpu1': 'C0\n124361858\n300\n1403232500'
93 }
94 expected_cstate = {
95 'cpu0': {
96 'WFI': 103203424,
97 'C0': 1403232391454536,
98 'C1': 5342040
99 },
100 'cpu1': {
101 'WFI': 124361858,
102 'C0': 1403232375638142
103 }
104 }
105 # Use mock start and end times to allow for the test to calculate C0.
106 result = android_platform_backend.AndroidPlatformBackend.ParseCStateSample(
107 cstate)
108 for cpu in result:
109 for state in result[cpu]:
110 self.assertAlmostEqual(result[cpu][state], expected_cstate[cpu][state])
111
112 def testInstallTestCaFailure(self):
113 backend = android_platform_backend.AndroidPlatformBackend(
114 android_device.AndroidDevice('failure'), self._options)
115 backend.InstallTestCa()
116 self.assertFalse(backend.is_test_ca_installed)
117
118 def testInstallTestCaSuccess(self):
119 backend = android_platform_backend.AndroidPlatformBackend(
120 android_device.AndroidDevice('success'), self._options)
121 backend.InstallTestCa()
122 self.assertTrue(backend.is_test_ca_installed)
123
124 def testIsScreenLockedTrue(self):
125 test_input = ['a=b', 'mHasBeenInactive=true']
126 backend = android_platform_backend.AndroidPlatformBackend(
127 android_device.AndroidDevice('success'), self._options)
128 self.assertTrue(backend._IsScreenLocked(test_input))
129
130 def testIsScreenLockedFalse(self):
131 test_input = ['a=b', 'mHasBeenInactive=false']
132 backend = android_platform_backend.AndroidPlatformBackend(
133 android_device.AndroidDevice('success'), self._options)
134 self.assertFalse(backend._IsScreenLocked(test_input))
135
136
137 class AndroidPlatformBackendPsutilTest(unittest.TestCase):
138
139 class psutil_1_0(object):
140 version_info = (1, 0)
141 def __init__(self):
142 self.set_cpu_affinity_args = []
143 class Process(object):
144 def __init__(self, parent):
145 self._parent = parent
146 self.name = 'adb'
147 def set_cpu_affinity(self, cpus):
148 self._parent.set_cpu_affinity_args.append(cpus)
149 def process_iter(self):
150 return [self.Process(self)]
151
152 class psutil_2_0(object):
153 version_info = (2, 0)
154 def __init__(self):
155 self.set_cpu_affinity_args = []
156 class Process(object):
157 def __init__(self, parent):
158 self._parent = parent
159 self.set_cpu_affinity_args = []
160 def name(self):
161 return 'adb'
162 def cpu_affinity(self, cpus=None):
163 self._parent.set_cpu_affinity_args.append(cpus)
164 def process_iter(self):
165 return [self.Process(self)]
166
167 def setUp(self):
168 self._options = options_for_unittests.GetCopy()
169 self._stubs = system_stub.Override(
170 android_platform_backend,
171 ['perf_control'])
172 self.battery_patcher = mock.patch.object(battery_utils, 'BatteryUtils')
173 self.battery_patcher.start()
174 self._actual_ps_util = android_platform_backend.psutil
175
176 def get_prop(name, cache=None):
177 del cache # unused
178 return {'ro.product.cpu.abi': 'armeabi-v7a'}.get(name)
179
180 self.device_patcher = mock.patch.multiple(
181 device_utils.DeviceUtils,
182 FileExists=mock.MagicMock(return_value=False),
183 GetProp=mock.MagicMock(side_effect=get_prop),
184 HasRoot=mock.MagicMock(return_value=True))
185 self.device_patcher.start()
186
187 def tearDown(self):
188 self._stubs.Restore()
189 android_platform_backend.psutil = self._actual_ps_util
190 self.battery_patcher.stop()
191 self.device_patcher.stop()
192
193 @decorators.Disabled('chromeos')
194 def testPsutil1(self):
195 psutil = self.psutil_1_0()
196 android_platform_backend.psutil = psutil
197
198 # Mock an empty /proc/pid/stat.
199 with mock.patch('devil.android.device_utils.DeviceUtils.ReadFile',
200 return_value=''):
201 backend = android_platform_backend.AndroidPlatformBackend(
202 android_device.AndroidDevice('1234'), self._options)
203 cpu_stats = backend.GetCpuStats('7702')
204 self.assertEquals({}, cpu_stats)
205 self.assertEquals([[0]], psutil.set_cpu_affinity_args)
206
207 @decorators.Disabled('chromeos')
208 def testPsutil2(self):
209 psutil = self.psutil_2_0()
210 android_platform_backend.psutil = psutil
211
212 # Mock an empty /proc/pid/stat.
213 with mock.patch('devil.android.device_utils.DeviceUtils.ReadFile',
214 return_value=''):
215 backend = android_platform_backend.AndroidPlatformBackend(
216 android_device.AndroidDevice('1234'), self._options)
217 cpu_stats = backend.GetCpuStats('7702')
218 self.assertEquals({}, cpu_stats)
219 self.assertEquals([[0]], psutil.set_cpu_affinity_args)
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698