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

Unified Diff: tools/telemetry/telemetry/internal/platform/android_device.py

Issue 1647513002: Delete tools/telemetry. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 11 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 side-by-side diff with in-line comments
Download patch
Index: tools/telemetry/telemetry/internal/platform/android_device.py
diff --git a/tools/telemetry/telemetry/internal/platform/android_device.py b/tools/telemetry/telemetry/internal/platform/android_device.py
deleted file mode 100644
index bcddb60a126fc1899cf34e7fb75acfb25622770f..0000000000000000000000000000000000000000
--- a/tools/telemetry/telemetry/internal/platform/android_device.py
+++ /dev/null
@@ -1,199 +0,0 @@
-# Copyright 2014 The Chromium Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-import logging
-import os
-import re
-import subprocess
-
-from telemetry.core import util
-from telemetry.internal.platform import cros_device
-from telemetry.internal.platform import device
-from telemetry.internal.platform.profiler import monsoon
-
-from devil.android import device_blacklist
-from devil.android import device_errors
-from devil.android import device_utils
-from devil.android.sdk import adb_wrapper
-
-
-class AndroidDevice(device.Device):
- """ Class represents information for connecting to an android device.
-
- Attributes:
- device_id: the device's serial string created by adb to uniquely
- identify an emulator/device instance. This string can be found by running
- 'adb devices' command
- enable_performance_mode: when this is set to True, android platform will be
- set to high performance mode after browser is started.
- """
- def __init__(self, device_id, enable_performance_mode=True):
- super(AndroidDevice, self).__init__(
- name='Android device %s' % device_id, guid=device_id)
- self._device_id = device_id
- self._enable_performance_mode = enable_performance_mode
-
- @classmethod
- def GetAllConnectedDevices(cls, blacklist):
- device_serials = GetDeviceSerials(blacklist)
- return [cls(s) for s in device_serials]
-
- @property
- def device_id(self):
- return self._device_id
-
- @property
- def enable_performance_mode(self):
- return self._enable_performance_mode
-
-
-def _ListSerialsOfHealthyOnlineDevices(blacklist):
- return [d.adb.GetDeviceSerial()
- for d in device_utils.DeviceUtils.HealthyDevices(blacklist)
- if d.IsOnline()]
-
-
-def GetDeviceSerials(blacklist):
- """Return the list of device serials of healthy devices.
-
- If a preferred device has been set with ANDROID_SERIAL, it will be first in
- the returned list. The arguments specify what devices to include in the list.
- """
-
- device_serials = _ListSerialsOfHealthyOnlineDevices(blacklist)
-
- # The monsoon provides power for the device, so for devices with no
- # real battery, we need to turn them on after the monsoon enables voltage
- # output to the device.
- if not device_serials:
- try:
- m = monsoon.Monsoon(wait=False)
- m.SetUsbPassthrough(1)
- m.SetVoltage(3.8)
- m.SetMaxCurrent(8)
- logging.warn("""
-Monsoon power monitor detected, but no Android devices.
-
-The Monsoon's power output has been enabled. Please now ensure that:
-
- 1. The Monsoon's front and back USB are connected to the host.
- 2. The device is connected to the Monsoon's main and USB channels.
- 3. The device is turned on.
-
-Waiting for device...
-""")
- util.WaitFor(_ListSerialsOfHealthyOnlineDevices(blacklist), 600)
- device_serials = _ListSerialsOfHealthyOnlineDevices(blacklist)
- except IOError:
- return []
-
- preferred_device = os.environ.get('ANDROID_SERIAL')
- if preferred_device in device_serials:
- logging.warn(
- 'ANDROID_SERIAL is defined. Put %s in the first of the'
- 'discovered devices list.' % preferred_device)
- device_serials.remove(preferred_device)
- device_serials.insert(0, preferred_device)
- return device_serials
-
-
-def GetDevice(finder_options):
- """Return a Platform instance for the device specified by |finder_options|."""
- if not CanDiscoverDevices():
- logging.info(
- 'No adb command found. Will not try searching for Android browsers.')
- return None
-
- if finder_options.android_blacklist_file:
- blacklist = device_blacklist.Blacklist(
- finder_options.android_blacklist_file)
- else:
- blacklist = None
-
- if (finder_options.device
- and finder_options.device in GetDeviceSerials(blacklist)):
- return AndroidDevice(
- finder_options.device,
- enable_performance_mode=not finder_options.no_performance_mode)
-
- devices = AndroidDevice.GetAllConnectedDevices(blacklist)
- if len(devices) == 0:
- logging.warn('No android devices found.')
- return None
- if len(devices) > 1:
- logging.warn(
- 'Multiple devices attached. Please specify one of the following:\n' +
- '\n'.join([' --device=%s' % d.device_id for d in devices]))
- return None
- return devices[0]
-
-
-def _HasValidAdb():
- """Returns true if adb is present.
-
- Note that this currently will return True even if the adb that's present
- cannot run on this system.
- """
- if os.name != 'posix' or cros_device.IsRunningOnCrOS():
- return False
-
- try:
- adb_path = adb_wrapper.AdbWrapper.GetAdbPath()
- except device_errors.NoAdbError:
- return False
-
- if os.path.isabs(adb_path) and not os.path.exists(adb_path):
- return False
-
- return True
-
-
-def CanDiscoverDevices():
- """Returns true if devices are discoverable via adb."""
- if not _HasValidAdb():
- return False
-
- try:
- with open(os.devnull, 'w') as devnull:
- adb_process = subprocess.Popen(
- ['adb', 'devices'], stdout=subprocess.PIPE, stderr=subprocess.PIPE,
- stdin=devnull)
- stdout = adb_process.communicate()[0]
- if re.search(re.escape('????????????\tno permissions'), stdout) != None:
- logging.warn('adb devices gave a permissions error. '
- 'Consider running adb as root:')
- logging.warn(' adb kill-server')
- logging.warn(' sudo `which adb` devices\n\n')
- return True
- except OSError:
- pass
- try:
- adb_path = adb_wrapper.AdbWrapper.GetAdbPath()
- os.environ['PATH'] = os.pathsep.join(
- [os.path.dirname(adb_path), os.environ['PATH']])
- device_utils.DeviceUtils.HealthyDevices(None)
- return True
- except (device_errors.CommandFailedError, device_errors.CommandTimeoutError,
- device_errors.NoAdbError, OSError):
- return False
-
-
-def FindAllAvailableDevices(options):
- """Returns a list of available devices.
- """
- devices = []
- try:
- if CanDiscoverDevices():
- blacklist = None
- if options.android_blacklist_file:
- blacklist = device_blacklist.Blacklist(options.android_blacklist_file)
- devices = AndroidDevice.GetAllConnectedDevices(blacklist)
- finally:
- if not devices and _HasValidAdb():
- try:
- adb_wrapper.AdbWrapper.KillServer()
- except device_errors.NoAdbError as e:
- logging.warning(
- 'adb reported as present, but NoAdbError thrown: %s', str(e))
-
- return devices

Powered by Google App Engine
This is Rietveld 408576698