#!/usr/bin/env python # Copyright 2016 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. """Waits for the given devices to be available.""" import argparse import os import sys if __name__ == '__main__': sys.path.append( os.path.abspath(os.path.join(os.path.dirname(__file__), '..', '..', '..'))) from devil import devil_env from devil.android import device_utils from devil.utils import run_tests_helper def main(raw_args): parser = argparse.ArgumentParser() parser.add_argument('-v', '--verbose', action='count', help='Log more.') parser.add_argument('-t', '--timeout', default=30, type=int, help='Seconds to wait for the devices.') parser.add_argument('--adb-path', help='ADB binary to use.') parser.add_argument('device_serials', nargs='*', metavar='SERIAL', help='Serials of the devices to wait for.') args = parser.parse_args(raw_args) run_tests_helper.SetLogLevel(args.verbose) devil_dynamic_config = devil_env.EmptyConfig() if args.adb_path: devil_dynamic_config['dependencies'].update( devil_env.LocalConfigItem( 'adb', devil_env.GetPlatform(), args.adb_path)) devil_env.config.Initialize(configs=[devil_dynamic_config]) devices = device_utils.DeviceUtils.HealthyDevices( device_arg=args.device_serials) parallel_devices = device_utils.DeviceUtils.parallel(devices) parallel_devices.WaitUntilFullyBooted(timeout=args.timeout) return 0 if __name__ == '__main__': sys.exit(main(sys.argv[1:]))