| Index: tools/telemetry/telemetry/core/platform/android_platform_backend_unittest.py
|
| diff --git a/tools/telemetry/telemetry/core/platform/android_platform_backend_unittest.py b/tools/telemetry/telemetry/core/platform/android_platform_backend_unittest.py
|
| index 83ebcc9ce88f730f1f8f965d02e3b2b3b1d9d2dd..7af3c841afd02453bc0f46d93b21cca998a9743b 100644
|
| --- a/tools/telemetry/telemetry/core/platform/android_platform_backend_unittest.py
|
| +++ b/tools/telemetry/telemetry/core/platform/android_platform_backend_unittest.py
|
| @@ -12,33 +12,45 @@ from telemetry.testing import options_for_unittests
|
| from telemetry.testing import system_stub
|
|
|
| util.AddDirToPythonPath(util.GetTelemetryDir(), 'third_party', 'mock')
|
| -import mock # pylint: disable=F0401
|
| +import mock # pylint: disable=import-error
|
| util.AddDirToPythonPath(util.GetChromiumSrcDir(), 'build', 'android')
|
| -from pylib.device import battery_utils # pylint: disable=F0401
|
| +from pylib.device import battery_utils # pylint: disable=import-error
|
| +from pylib.device import device_utils # pylint: disable=import-error
|
|
|
| class AndroidPlatformBackendTest(unittest.TestCase):
|
| def setUp(self):
|
| self._options = options_for_unittests.GetCopy()
|
| self._stubs = system_stub.Override(
|
| android_platform_backend,
|
| - ['perf_control', 'thermal_throttle', 'adb_commands', 'certutils',
|
| - 'adb_install_cert', 'platformsettings'])
|
| + ['perf_control', 'thermal_throttle', 'certutils', 'adb_install_cert',
|
| + 'platformsettings'])
|
|
|
| # Skip _FixPossibleAdbInstability by setting psutil to None.
|
| self._actual_ps_util = android_platform_backend.psutil
|
| android_platform_backend.psutil = None
|
| self.battery_patcher = mock.patch.object(battery_utils, 'BatteryUtils')
|
| self.battery_patcher.start()
|
| +
|
| + def get_prop(name, cache=None):
|
| + return {'ro.product.cpu.abi': 'armeabi-v7a'}.get(name)
|
| +
|
| self.setup_prebuilt_tool_patcher = mock.patch(
|
| 'telemetry.core.platform.android_platform_backend._SetupPrebuiltTools')
|
| m = self.setup_prebuilt_tool_patcher.start()
|
| m.return_value = True
|
|
|
| + self.device_patcher = mock.patch.multiple(
|
| + device_utils.DeviceUtils,
|
| + HasRoot=mock.MagicMock(return_value=True),
|
| + GetProp=mock.MagicMock(side_effect=get_prop))
|
| + self.device_patcher.start()
|
| +
|
| def tearDown(self):
|
| self._stubs.Restore()
|
| android_platform_backend.psutil = self._actual_ps_util
|
| self.battery_patcher.stop()
|
| self.setup_prebuilt_tool_patcher.stop()
|
| + self.device_patcher.stop()
|
|
|
| @decorators.Disabled('chromeos')
|
| def testGetCpuStats(self):
|
| @@ -48,20 +60,22 @@ class AndroidPlatformBackendTest(unittest.TestCase):
|
| '4294967295 1074458624 1074463824 3197495984 3197494152 '
|
| '1074767676 0 4612 0 38136 4294967295 0 0 17 0 0 0 0 0 0 '
|
| '1074470376 1074470912 1102155776\n')
|
| - self._stubs.adb_commands.adb_device.mock_content = proc_stat_content
|
| - self._stubs.adb_commands.adb_device.has_root = True
|
| - backend = android_platform_backend.AndroidPlatformBackend(
|
| - android_device.AndroidDevice('12345'), self._options)
|
| - cpu_stats = backend.GetCpuStats('7702')
|
| - self.assertEquals(cpu_stats, {'CpuProcessTime': 0.05})
|
| + with mock.patch('pylib.device.device_utils.DeviceUtils.ReadFile',
|
| + return_value=proc_stat_content):
|
| + backend = android_platform_backend.AndroidPlatformBackend(
|
| + android_device.AndroidDevice('12345'), self._options)
|
| + cpu_stats = backend.GetCpuStats('7702')
|
| + self.assertEquals(cpu_stats, {'CpuProcessTime': 0.05})
|
|
|
| @decorators.Disabled('chromeos')
|
| def testGetCpuStatsInvalidPID(self):
|
| # Mock an empty /proc/pid/stat.
|
| - backend = android_platform_backend.AndroidPlatformBackend(
|
| - android_device.AndroidDevice('1234'), self._options)
|
| - cpu_stats = backend.GetCpuStats('7702')
|
| - self.assertEquals(cpu_stats, {})
|
| + with mock.patch('pylib.device.device_utils.DeviceUtils.ReadFile',
|
| + return_value=''):
|
| + backend = android_platform_backend.AndroidPlatformBackend(
|
| + android_device.AndroidDevice('1234'), self._options)
|
| + cpu_stats = backend.GetCpuStats('7702')
|
| + self.assertEquals(cpu_stats, {})
|
|
|
| def testAndroidParseCpuStates(self):
|
| cstate = {
|
| @@ -168,7 +182,7 @@ class AndroidPlatformBackendPsutilTest(unittest.TestCase):
|
| self._options = options_for_unittests.GetCopy()
|
| self._stubs = system_stub.Override(
|
| android_platform_backend,
|
| - ['perf_control', 'adb_commands'])
|
| + ['perf_control'])
|
| self.battery_patcher = mock.patch.object(battery_utils, 'BatteryUtils')
|
| self.battery_patcher.start()
|
| self._actual_ps_util = android_platform_backend.psutil
|
| @@ -177,10 +191,27 @@ class AndroidPlatformBackendPsutilTest(unittest.TestCase):
|
| m = self.setup_prebuilt_tool_patcher.start()
|
| m.return_value = True
|
|
|
| + def get_prop(name, cache=None):
|
| + return {'ro.product.cpu.abi': 'armeabi-v7a'}.get(name)
|
| +
|
| + self.helper_patcher = mock.patch(
|
| + 'telemetry.core.platform.android_platform_backend._SetupPrebuiltTools',
|
| + return_value=True)
|
| + self.helper_patcher.start()
|
| +
|
| + self.device_patcher = mock.patch.multiple(
|
| + device_utils.DeviceUtils,
|
| + FileExists=mock.MagicMock(return_value=False),
|
| + GetProp=mock.MagicMock(side_effect=get_prop),
|
| + HasRoot=mock.MagicMock(return_value=True))
|
| + self.device_patcher.start()
|
| +
|
| def tearDown(self):
|
| self._stubs.Restore()
|
| android_platform_backend.psutil = self._actual_ps_util
|
| self.battery_patcher.stop()
|
| + self.device_patcher.stop()
|
| + self.helper_patcher.stop()
|
| self.setup_prebuilt_tool_patcher.stop()
|
|
|
| @decorators.Disabled('chromeos')
|
| @@ -189,11 +220,13 @@ class AndroidPlatformBackendPsutilTest(unittest.TestCase):
|
| android_platform_backend.psutil = psutil
|
|
|
| # Mock an empty /proc/pid/stat.
|
| - backend = android_platform_backend.AndroidPlatformBackend(
|
| - android_device.AndroidDevice('1234'), self._options)
|
| - cpu_stats = backend.GetCpuStats('7702')
|
| - self.assertEquals({}, cpu_stats)
|
| - self.assertEquals([[0]], psutil.set_cpu_affinity_args)
|
| + with mock.patch('pylib.device.device_utils.DeviceUtils.ReadFile',
|
| + return_value=''):
|
| + backend = android_platform_backend.AndroidPlatformBackend(
|
| + android_device.AndroidDevice('1234'), self._options)
|
| + cpu_stats = backend.GetCpuStats('7702')
|
| + self.assertEquals({}, cpu_stats)
|
| + self.assertEquals([[0]], psutil.set_cpu_affinity_args)
|
|
|
| @decorators.Disabled('chromeos')
|
| def testPsutil2(self):
|
| @@ -201,8 +234,10 @@ class AndroidPlatformBackendPsutilTest(unittest.TestCase):
|
| android_platform_backend.psutil = psutil
|
|
|
| # Mock an empty /proc/pid/stat.
|
| - backend = android_platform_backend.AndroidPlatformBackend(
|
| - android_device.AndroidDevice('1234'), self._options)
|
| - cpu_stats = backend.GetCpuStats('7702')
|
| - self.assertEquals({}, cpu_stats)
|
| - self.assertEquals([[0]], psutil.set_cpu_affinity_args)
|
| + with mock.patch('pylib.device.device_utils.DeviceUtils.ReadFile',
|
| + return_value=''):
|
| + backend = android_platform_backend.AndroidPlatformBackend(
|
| + android_device.AndroidDevice('1234'), self._options)
|
| + cpu_stats = backend.GetCpuStats('7702')
|
| + self.assertEquals({}, cpu_stats)
|
| + self.assertEquals([[0]], psutil.set_cpu_affinity_args)
|
|
|