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

Side by Side Diff: tools/telemetry/telemetry/core/platform/android_device.py

Issue 760653002: Telemetry --device (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase Created 5 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
1 # Copyright 2014 The Chromium Authors. All rights reserved. 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 2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file. 3 # found in the LICENSE file.
4 import logging 4 import logging
5 import os 5 import os
6 import re 6 import re
7 import subprocess 7 import subprocess
8 import sys 8 import sys
9 9
10 from telemetry.core import util 10 from telemetry.core import util
(...skipping 13 matching lines...) Expand all
24 set to high performance mode after browser is started. 24 set to high performance mode after browser is started.
25 """ 25 """
26 def __init__(self, device_id, enable_performance_mode=True): 26 def __init__(self, device_id, enable_performance_mode=True):
27 super(AndroidDevice, self).__init__( 27 super(AndroidDevice, self).__init__(
28 name='Android device %s' % device_id, guid=device_id) 28 name='Android device %s' % device_id, guid=device_id)
29 self._device_id = device_id 29 self._device_id = device_id
30 self._enable_performance_mode = enable_performance_mode 30 self._enable_performance_mode = enable_performance_mode
31 31
32 @classmethod 32 @classmethod
33 def GetAllConnectedDevices(cls): 33 def GetAllConnectedDevices(cls):
34 device_serials = adb_commands.GetAttachedDevices() 34 device_serials = GetDeviceSerials()
35 # The monsoon provides power for the device, so for devices with no 35 return [cls(s) for s in device_serials]
36 # real battery, we need to turn them on after the monsoon enables voltage 36
37 # output to the device. 37 @property
38 if not device_serials: 38 def device_id(self):
39 try: 39 return self._device_id
40 m = monsoon.Monsoon(wait=False) 40
41 m.SetUsbPassthrough(1) 41 @property
42 m.SetVoltage(3.8) 42 def enable_performance_mode(self):
43 m.SetMaxCurrent(8) 43 return self._enable_performance_mode
44 logging.warn(""" 44
45
46 def GetDeviceSerials():
47 device_serials = adb_commands.GetAttachedDevices()
48 # The monsoon provides power for the device, so for devices with no
49 # real battery, we need to turn them on after the monsoon enables voltage
50 # output to the device.
51 if not device_serials:
52 try:
53 m = monsoon.Monsoon(wait=False)
54 m.SetUsbPassthrough(1)
55 m.SetVoltage(3.8)
56 m.SetMaxCurrent(8)
57 logging.warn("""
45 Monsoon power monitor detected, but no Android devices. 58 Monsoon power monitor detected, but no Android devices.
46 59
47 The Monsoon's power output has been enabled. Please now ensure that: 60 The Monsoon's power output has been enabled. Please now ensure that:
48 61
49 1. The Monsoon's front and back USB are connected to the host. 62 1. The Monsoon's front and back USB are connected to the host.
50 2. The device is connected to the Monsoon's main and USB channels. 63 2. The device is connected to the Monsoon's main and USB channels.
51 3. The device is turned on. 64 3. The device is turned on.
52 65
53 Waiting for device... 66 Waiting for device...
54 """) 67 """)
55 util.WaitFor(adb_commands.GetAttachedDevices, 600) 68 util.WaitFor(adb_commands.GetAttachedDevices, 600)
56 device_serials = adb_commands.GetAttachedDevices() 69 device_serials = adb_commands.GetAttachedDevices()
57 except IOError: 70 except IOError:
58 return [] 71 return []
59 return [cls(s) for s in device_serials] 72 return device_serials
60
61 @property
62 def device_id(self):
63 return self._device_id
64
65 @property
66 def enable_performance_mode(self):
67 return self._enable_performance_mode
68 73
69 74
70 def GetDevice(finder_options): 75 def GetDevice(finder_options):
71 """Return a Platform instance for the device specified by |finder_options|.""" 76 """Return a Platform instance for the device specified by |finder_options|."""
72 if not CanDiscoverDevices(): 77 if not CanDiscoverDevices():
73 logging.info( 78 logging.info(
74 'No adb command found. Will not try searching for Android browsers.') 79 'No adb command found. Will not try searching for Android browsers.')
75 return None 80 return None
76 81
77 if finder_options.android_device: 82 if finder_options.device and finder_options.device in GetDeviceSerials():
78 return AndroidDevice( 83 return AndroidDevice(
79 finder_options.android_device, 84 finder_options.device,
80 enable_performance_mode=not finder_options.no_performance_mode) 85 enable_performance_mode=not finder_options.no_performance_mode)
81 86
82 devices = AndroidDevice.GetAllConnectedDevices() 87 devices = AndroidDevice.GetAllConnectedDevices()
83 if len(devices) == 0: 88 if len(devices) == 0:
84 logging.info('No android devices found.') 89 logging.info('No android devices found.')
85 return None 90 return None
86 if len(devices) > 1: 91 if len(devices) > 1:
87 logging.warn( 92 logging.warn(
88 'Multiple devices attached. Please specify one of the following:\n' + 93 'Multiple devices attached. Please specify one of the following:\n' +
89 '\n'.join([' --device=%s' % d.device_id for d in devices])) 94 '\n'.join([' --device=%s' % d.device_id for d in devices]))
(...skipping 24 matching lines...) Expand all
114 pass 119 pass
115 chromium_adb_path = os.path.join( 120 chromium_adb_path = os.path.join(
116 util.GetChromiumSrcDir(), 'third_party', 'android_tools', 'sdk', 121 util.GetChromiumSrcDir(), 'third_party', 'android_tools', 'sdk',
117 'platform-tools', 'adb') 122 'platform-tools', 'adb')
118 if sys.platform.startswith('linux') and os.path.exists(chromium_adb_path): 123 if sys.platform.startswith('linux') and os.path.exists(chromium_adb_path):
119 os.environ['PATH'] = os.pathsep.join( 124 os.environ['PATH'] = os.pathsep.join(
120 [os.path.dirname(chromium_adb_path), os.environ['PATH']]) 125 [os.path.dirname(chromium_adb_path), os.environ['PATH']])
121 return True 126 return True
122 return False 127 return False
123 128
129
130 def FindAllAvailableDevices(_):
131 """Returns a list of available devices.
132 """
133 if not CanDiscoverDevices():
134 return []
135 else:
136 return AndroidDevice.GetAllConnectedDevices()
OLDNEW
« no previous file with comments | « tools/telemetry/telemetry/core/device_finder.py ('k') | tools/telemetry/telemetry/core/platform/android_device_unittest.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698