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

Side by Side Diff: build/android/device_status_check.py

Issue 17893011: [Android] Add a flag to skip provisioning check during device status check. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix a typo Created 7 years, 6 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 | Annotate | Revision Log
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 #!/usr/bin/env python 1 #!/usr/bin/env python
2 # 2 #
3 # Copyright (c) 2012 The Chromium Authors. All rights reserved. 3 # Copyright (c) 2012 The Chromium Authors. All rights reserved.
4 # Use of this source code is governed by a BSD-style license that can be 4 # Use of this source code is governed by a BSD-style license that can be
5 # found in the LICENSE file. 5 # found in the LICENSE file.
6 6
7 """A class to keep track of devices across builds and report state.""" 7 """A class to keep track of devices across builds and report state."""
8 import logging 8 import logging
9 import optparse 9 import optparse
10 import os 10 import os
11 import smtplib 11 import smtplib
12 import sys 12 import sys
13 import re 13 import re
14 14
15 from pylib import android_commands 15 from pylib import android_commands
16 from pylib import buildbot_report 16 from pylib import buildbot_report
17 from pylib import constants 17 from pylib import constants
18 from pylib.cmd_helper import GetCmdOutput 18 from pylib.cmd_helper import GetCmdOutput
19 19
20 20
21 def DeviceInfo(serial): 21 def DeviceInfo(serial, options):
22 """Gathers info on a device via various adb calls. 22 """Gathers info on a device via various adb calls.
23 23
24 Args: 24 Args:
25 serial: The serial of the attached device to construct info about. 25 serial: The serial of the attached device to construct info about.
26 26
27 Returns: 27 Returns:
28 Tuple of device type, build id, report as a string, error messages, and 28 Tuple of device type, build id, report as a string, error messages, and
29 boolean indicating whether or not device can be used for testing. 29 boolean indicating whether or not device can be used for testing.
30 """ 30 """
31 31
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
68 ' IMEI slice: %s' % AdbShellCmd('dumpsys iphonesubinfo ' 68 ' IMEI slice: %s' % AdbShellCmd('dumpsys iphonesubinfo '
69 '| grep Device' 69 '| grep Device'
70 "| awk '{print $4}'")[-6:], 70 "| awk '{print $4}'")[-6:],
71 ' Wifi IP: %s' % AdbShellCmd('getprop dhcp.wlan0.ipaddress'), 71 ' Wifi IP: %s' % AdbShellCmd('getprop dhcp.wlan0.ipaddress'),
72 ' Install Speed: %s KB/s' % install_speed, 72 ' Install Speed: %s KB/s' % install_speed,
73 ''] 73 '']
74 74
75 errors = [] 75 errors = []
76 if battery_level < 15: 76 if battery_level < 15:
77 errors += ['Device critically low in battery. Turning off device.'] 77 errors += ['Device critically low in battery. Turning off device.']
78 if not setup_wizard_disabled and device_build_type != 'user': 78 if (not setup_wizard_disabled and device_build_type != 'user' and
79 not options.no_provisioning_check):
79 errors += ['Setup wizard not disabled. Was it provisioned correctly?'] 80 errors += ['Setup wizard not disabled. Was it provisioned correctly?']
80 if device_product_name == 'mantaray' and ac_power != 'true': 81 if device_product_name == 'mantaray' and ac_power != 'true':
81 errors += ['Mantaray device not connected to AC power.'] 82 errors += ['Mantaray device not connected to AC power.']
82 # TODO(navabi): Insert warning once we have a better handle of what install 83 # TODO(navabi): Insert warning once we have a better handle of what install
83 # speeds to expect. The following lines were causing too many alerts. 84 # speeds to expect. The following lines were causing too many alerts.
84 # if install_speed < 500: 85 # if install_speed < 500:
85 # errors += ['Device install speed too low. Do not use for testing.'] 86 # errors += ['Device install speed too low. Do not use for testing.']
86 87
87 # Causing the device status check step fail for slow install speed or low 88 # Causing the device status check step fail for slow install speed or low
88 # battery currently is too disruptive to the bots (especially try bots). 89 # battery currently is too disruptive to the bots (especially try bots).
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after
178 except Exception as e: 179 except Exception as e:
179 print 'Failed to send alert email. Error: %s' % e 180 print 'Failed to send alert email. Error: %s' % e
180 181
181 182
182 def main(): 183 def main():
183 parser = optparse.OptionParser() 184 parser = optparse.OptionParser()
184 parser.add_option('', '--out-dir', 185 parser.add_option('', '--out-dir',
185 help='Directory where the device path is stored', 186 help='Directory where the device path is stored',
186 default=os.path.join(os.path.dirname(__file__), '..', 187 default=os.path.join(os.path.dirname(__file__), '..',
187 '..', 'out')) 188 '..', 'out'))
189 parser.add_option('--no-provisioning-check',
190 help='Will not check if devices are provisioned properly.')
188 191
189 options, args = parser.parse_args() 192 options, args = parser.parse_args()
190 if args: 193 if args:
191 parser.error('Unknown options %s' % args) 194 parser.error('Unknown options %s' % args)
192 devices = android_commands.GetAttachedDevices() 195 devices = android_commands.GetAttachedDevices()
193 types, builds, reports, errors = [], [], [], [] 196 types, builds, reports, errors = [], [], [], []
194 fail_step_lst = [] 197 fail_step_lst = []
195 if devices: 198 if devices:
196 types, builds, reports, errors, fail_step_lst = zip(*[DeviceInfo(dev) 199 types, builds, reports, errors, fail_step_lst = (
197 for dev in devices]) 200 zip(*[DeviceInfo(dev, options) for dev in devices]))
198 201
199 err_msg = CheckForMissingDevices(options, devices) or [] 202 err_msg = CheckForMissingDevices(options, devices) or []
200 203
201 unique_types = list(set(types)) 204 unique_types = list(set(types))
202 unique_builds = list(set(builds)) 205 unique_builds = list(set(builds))
203 206
204 buildbot_report.PrintMsg('Online devices: %d. Device types %s, builds %s' 207 buildbot_report.PrintMsg('Online devices: %d. Device types %s, builds %s'
205 % (len(devices), unique_types, unique_builds)) 208 % (len(devices), unique_types, unique_builds))
206 print '\n'.join(reports) 209 print '\n'.join(reports)
207 210
(...skipping 13 matching lines...) Expand all
221 # devices with critically low battery or install speed. Remove those devices 224 # devices with critically low battery or install speed. Remove those devices
222 # from testing, allowing build to continue with good devices. 225 # from testing, allowing build to continue with good devices.
223 return 1 226 return 1
224 227
225 if not devices: 228 if not devices:
226 return 1 229 return 1
227 230
228 231
229 if __name__ == '__main__': 232 if __name__ == '__main__':
230 sys.exit(main()) 233 sys.exit(main())
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698