コード例 #1
0
    def testSysfsReadFailedCanMonitor(self):
        mock_device_utils = simple_mock.MockObject()
        mock_device_utils.ExpectCall('ReadFile', _).WillReturn(None)

        monitor = android_temperature_monitor.AndroidTemperatureMonitor(
            mock_device_utils)
        self.assertFalse(monitor.CanMonitorPower())
コード例 #2
0
  def __init__(self, device):
    assert device, (
        'AndroidPlatformBackend can only be initialized from remote device')
    super(AndroidPlatformBackend, self).__init__(device)
    self._device = device_utils.DeviceUtils(device.device_id)
    # Trying to root the device, if possible.
    if not self._device.HasRoot():
      try:
        self._device.EnableRoot()
      except device_errors.CommandFailedError:
        logging.warning('Unable to root %s', str(self._device))
    self._can_elevate_privilege = (
        self._device.HasRoot() or self._device.NeedsSU())
    assert self._can_elevate_privilege, (
        'Android device must have root access to run Telemetry')
    self._battery = battery_utils.BatteryUtils(self._device)
    self._enable_performance_mode = device.enable_performance_mode
    self._surface_stats_collector = None
    self._perf_tests_setup = perf_control.PerfControl(self._device)
    self._thermal_throttle = thermal_throttle.ThermalThrottle(self._device)
    self._raw_display_frame_rate_measurements = []
    self._device_copy_script = None
    self._power_monitor = (
        android_power_monitor_controller.AndroidPowerMonitorController([
            android_temperature_monitor.AndroidTemperatureMonitor(self._device),
            android_dumpsys_power_monitor.DumpsysPowerMonitor(
                self._battery, self),
            sysfs_power_monitor.SysfsPowerMonitor(self, standalone=True),
            android_fuelgauge_power_monitor.FuelGaugePowerMonitor(
                self._battery),
        ], self._battery))
    self._video_recorder = None
    self._system_ui = None

    _FixPossibleAdbInstability()
コード例 #3
0
    def testSysfsReadFailedCanMonitor(self):
        mock_device_utils = mock.Mock()
        mock_device_utils.ReadFile.side_effect = [None]

        monitor = android_temperature_monitor.AndroidTemperatureMonitor(
            mock_device_utils)
        self.assertFalse(monitor.CanMonitorPower())
        mock_device_utils.ReadFile.assert_called_once_with(mock.ANY)
コード例 #4
0
    def __init__(self, device, finder_options):
        assert device, (
            'AndroidPlatformBackend can only be initialized from remote device'
        )
        super(AndroidPlatformBackend, self).__init__(device)
        self._device = device_utils.DeviceUtils(device.device_id)
        installed_prebuilt_tools = _SetupPrebuiltTools(self._device)
        if not installed_prebuilt_tools:
            logging.error(
                '%s detected, however prebuilt android tools could not '
                'be used. To run on Android you must build them first:\n'
                '  $ ninja -C out/Release android_tools' % device.name)
            raise exceptions.PlatformError()
        # Trying to root the device, if possible.
        if not self._device.HasRoot():
            try:
                self._device.EnableRoot()
            except device_errors.CommandFailedError:
                logging.warning('Unable to root %s', str(self._device))
        self._battery = battery_utils.BatteryUtils(self._device)
        self._enable_performance_mode = device.enable_performance_mode
        self._surface_stats_collector = None
        self._perf_tests_setup = perf_control.PerfControl(self._device)
        self._thermal_throttle = thermal_throttle.ThermalThrottle(self._device)
        self._raw_display_frame_rate_measurements = []
        try:
            self._can_access_protected_file_contents = (self._device.HasRoot()
                                                        or
                                                        self._device.NeedsSU())
        except Exception:
            logging.exception('New exception caused by DeviceUtils conversion')
            raise
        self._device_copy_script = None
        self._power_monitor = (
            android_power_monitor_controller.AndroidPowerMonitorController([
                android_temperature_monitor.AndroidTemperatureMonitor(
                    self._device),
                monsoon_power_monitor.MonsoonPowerMonitor(self._device, self),
                android_dumpsys_power_monitor.DumpsysPowerMonitor(
                    self._battery, self),
                sysfs_power_monitor.SysfsPowerMonitor(self, standalone=True),
                android_fuelgauge_power_monitor.FuelGaugePowerMonitor(
                    self._battery, self),
            ], self._battery))
        self._video_recorder = None
        self._installed_applications = None

        self._wpr_ca_cert_path = None
        self._device_cert_util = None
        self._is_test_ca_installed = False

        self._use_rndis_forwarder = (
            finder_options.android_rndis
            or finder_options.browser_options.netsim
            or platform.GetHostPlatform().GetOSName() != 'linux')

        _FixPossibleAdbInstability()
コード例 #5
0
    def testSysfsReadFailed(self):
        mock_device_utils = simple_mock.MockObject()
        mock_device_utils.ExpectCall('ReadFile', _).WillReturn('24')
        mock_device_utils.ExpectCall('ReadFile', _).WillReturn(None)

        monitor = android_temperature_monitor.AndroidTemperatureMonitor(
            mock_device_utils)
        self.assertTrue(monitor.CanMonitorPower())
        monitor.StartMonitoringPower(None)
        measurements = monitor.StopMonitoringPower()
        self.assertTrue('identifier' in measurements)
        self.assertTrue('platform_info' not in measurements)
コード例 #6
0
    def testSysfsReadFailed(self):
        mock_power_monitor = simple_mock.MockObject()
        mock_power_monitor.ExpectCall('CanMonitorPower').WillReturn(False)
        mock_device_utils = simple_mock.MockObject()
        mock_device_utils.ExpectCall('ReadFile', _).WillReturn('')

        monitor = android_temperature_monitor.AndroidTemperatureMonitor(
            mock_power_monitor, mock_device_utils)
        self.assertTrue(monitor.CanMonitorPower())
        monitor.StartMonitoringPower(None)
        measurements = monitor.StopMonitoringPower()
        self.assertTrue('identifier' in measurements)
        self.assertTrue('component_utilization' not in measurements)
コード例 #7
0
    def testSysfsReadFailed(self):
        mock_device_utils = mock.Mock()
        mock_device_utils.ReadFile.side_effect = ['24', None]

        monitor = android_temperature_monitor.AndroidTemperatureMonitor(
            mock_device_utils)
        self.assertTrue(monitor.CanMonitorPower())
        monitor.StartMonitoringPower(None)
        measurements = monitor.StopMonitoringPower()
        mock_device_utils.ReadFile.assert_has_calls(
            [mock.call(mock.ANY), mock.call(mock.ANY)])
        self.assertTrue('identifier' in measurements)
        self.assertTrue('platform_info' not in measurements)
コード例 #8
0
    def testPowerMonitoringResultsWereUpdated(self):
        mock_device_utils = simple_mock.MockObject()
        mock_device_utils.ExpectCall('ReadFile', _).WillReturn('0')
        mock_device_utils.ExpectCall('ReadFile', _).WillReturn('24')

        monitor = android_temperature_monitor.AndroidTemperatureMonitor(
            mock_device_utils)
        self.assertTrue(monitor.CanMonitorPower())
        monitor.StartMonitoringPower(None)
        measurements = monitor.StopMonitoringPower()
        expected_return = {
            'identifier': 'android_temperature_monitor',
            'platform_info': {
                'average_temperature_c': 24.0
            }
        }
        self.assertDictEqual(expected_return, measurements)
コード例 #9
0
    def testPowerMonitoringResultsWereUpdated(self):
        mock_device_utils = mock.Mock()
        mock_device_utils.ReadFile.side_effect = ['0', '24']

        monitor = android_temperature_monitor.AndroidTemperatureMonitor(
            mock_device_utils)
        self.assertTrue(monitor.CanMonitorPower())
        monitor.StartMonitoringPower(None)
        measurements = monitor.StopMonitoringPower()
        mock_device_utils.ReadFile.assert_has_calls(
            [mock.call(mock.ANY), mock.call(mock.ANY)])
        expected_return = {
            'identifier': 'android_temperature_monitor',
            'platform_info': {
                'average_temperature_c': 24.0
            }
        }
        self.assertDictEqual(expected_return, measurements)