| OLD | NEW |
| 1 #!/usr/bin/env python | 1 #!/usr/bin/env python |
| 2 # | 2 # |
| 3 # Copyright (c) 2013 The Chromium Authors. All rights reserved. | 3 # Copyright (c) 2013 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 """Provisions Android devices with settings required for bots. | 7 """Provisions Android devices with settings required for bots. |
| 8 | 8 |
| 9 Usage: | 9 Usage: |
| 10 ./provision_devices.py [-d <device serial number>] | 10 ./provision_devices.py [-d <device serial number>] |
| (...skipping 161 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 172 # Some perf bots run benchmarks with USB charging disabled which leads | 172 # Some perf bots run benchmarks with USB charging disabled which leads |
| 173 # to gradual draining of the battery. We must wait for a full charge | 173 # to gradual draining of the battery. We must wait for a full charge |
| 174 # before starting a run in order to keep the devices online. | 174 # before starting a run in order to keep the devices online. |
| 175 try: | 175 try: |
| 176 battery_info = device.old_interface.GetBatteryInfo() | 176 battery_info = device.old_interface.GetBatteryInfo() |
| 177 except Exception as e: | 177 except Exception as e: |
| 178 battery_info = {} | 178 battery_info = {} |
| 179 logging.error('Unable to obtain battery info for %s, %s', | 179 logging.error('Unable to obtain battery info for %s, %s', |
| 180 str(device), e) | 180 str(device), e) |
| 181 | 181 |
| 182 while int(battery_info.get('level', 100)) < 95: | 182 while int(battery_info.get('level', 100)) < options.min_battery_level: |
| 183 if not device.old_interface.IsDeviceCharging(): | 183 if not device.old_interface.IsDeviceCharging(): |
| 184 if device.old_interface.CanControlUsbCharging(): | 184 if device.old_interface.CanControlUsbCharging(): |
| 185 device.old_interface.EnableUsbCharging() | 185 device.old_interface.EnableUsbCharging() |
| 186 else: | 186 else: |
| 187 logging.error('Device is not charging') | 187 logging.error('Device is not charging') |
| 188 break | 188 break |
| 189 logging.info('Waiting for device to charge. Current level=%s', | 189 logging.info('Waiting for device to charge. Current level=%s', |
| 190 battery_info.get('level', 0)) | 190 battery_info.get('level', 0)) |
| 191 time.sleep(60) | 191 time.sleep(60) |
| 192 battery_info = device.old_interface.GetBatteryInfo() | 192 battery_info = device.old_interface.GetBatteryInfo() |
| (...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 230 return 0 | 230 return 0 |
| 231 | 231 |
| 232 | 232 |
| 233 def main(argv): | 233 def main(argv): |
| 234 custom_handler = logging.StreamHandler(sys.stdout) | 234 custom_handler = logging.StreamHandler(sys.stdout) |
| 235 custom_handler.setFormatter(run_tests_helper.CustomFormatter()) | 235 custom_handler.setFormatter(run_tests_helper.CustomFormatter()) |
| 236 logging.getLogger().addHandler(custom_handler) | 236 logging.getLogger().addHandler(custom_handler) |
| 237 logging.getLogger().setLevel(logging.INFO) | 237 logging.getLogger().setLevel(logging.INFO) |
| 238 | 238 |
| 239 parser = optparse.OptionParser() | 239 parser = optparse.OptionParser() |
| 240 parser.add_option('--min-battery-level', default=95, type='int', |
| 241 help="Minimum battery level for performance testing " |
| 242 "(default: 95).") |
| 240 parser.add_option('--skip-wipe', action='store_true', default=False, | 243 parser.add_option('--skip-wipe', action='store_true', default=False, |
| 241 help="Don't wipe device data during provisioning.") | 244 help="Don't wipe device data during provisioning.") |
| 242 parser.add_option('--disable-location', action='store_true', default=False, | 245 parser.add_option('--disable-location', action='store_true', default=False, |
| 243 help="Disallow Google location services on devices.") | 246 help="Disallow Google location services on devices.") |
| 244 parser.add_option('-d', '--device', | 247 parser.add_option('-d', '--device', |
| 245 help='The serial number of the device to be provisioned') | 248 help='The serial number of the device to be provisioned') |
| 246 parser.add_option('-t', '--target', default='Debug', help='The build target') | 249 parser.add_option('-t', '--target', default='Debug', help='The build target') |
| 247 parser.add_option( | 250 parser.add_option( |
| 248 '-r', '--auto-reconnect', action='store_true', | 251 '-r', '--auto-reconnect', action='store_true', |
| 249 help='Push binary which will reboot the device on adb disconnections.') | 252 help='Push binary which will reboot the device on adb disconnections.') |
| 250 options, args = parser.parse_args(argv[1:]) | 253 options, args = parser.parse_args(argv[1:]) |
| 251 constants.SetBuildType(options.target) | 254 constants.SetBuildType(options.target) |
| 252 | 255 |
| 253 if args: | 256 if args: |
| 254 print >> sys.stderr, 'Unused args %s' % args | 257 print >> sys.stderr, 'Unused args %s' % args |
| 255 return 1 | 258 return 1 |
| 256 | 259 |
| 257 return ProvisionDevices(options) | 260 return ProvisionDevices(options) |
| 258 | 261 |
| 259 | 262 |
| 260 if __name__ == '__main__': | 263 if __name__ == '__main__': |
| 261 sys.exit(main(sys.argv)) | 264 sys.exit(main(sys.argv)) |
| OLD | NEW |