Home | History | Annotate | Download | only in android
      1 #!/usr/bin/env python
      2 # Copyright (c) 2013 The Chromium Authors. All rights reserved.
      3 # Use of this source code is governed by a BSD-style license that can be
      4 # found in the LICENSE file.
      5 
      6 """Launches Android Virtual Devices with a set configuration for testing Chrome.
      7 
      8 The script will launch a specified number of Android Virtual Devices (AVD's).
      9 """
     10 
     11 
     12 import install_emulator_deps
     13 import logging
     14 import optparse
     15 import os
     16 import subprocess
     17 import sys
     18 
     19 from pylib import constants
     20 from pylib.utils import emulator
     21 
     22 
     23 def main(argv):
     24   # ANDROID_SDK_ROOT needs to be set to the location of the SDK used to launch
     25   # the emulator to find the system images upon launch.
     26   emulator_sdk = os.path.join(constants.EMULATOR_SDK_ROOT,
     27                               'android_tools', 'sdk')
     28   os.environ['ANDROID_SDK_ROOT'] = emulator_sdk
     29 
     30   opt_parser = optparse.OptionParser(description='AVD script.')
     31   opt_parser.add_option('-n', '--num', dest='emulator_count',
     32                         help='Number of emulators to launch (default is 1).',
     33                         type='int', default='1')
     34   opt_parser.add_option('--abi', default='x86',
     35                         help='Platform of emulators to launch (x86 default).')
     36 
     37   options, _ = opt_parser.parse_args(argv[1:])
     38 
     39   logging.basicConfig(level=logging.INFO,
     40                       format='# %(asctime)-15s: %(message)s')
     41   logging.root.setLevel(logging.INFO)
     42 
     43   # Check if KVM is enabled for x86 AVD's and check for x86 system images.
     44   if options.abi =='x86':
     45     if not install_emulator_deps.CheckKVM():
     46       logging.critical('ERROR: KVM must be enabled in BIOS, and installed. '
     47                        'Enable KVM in BIOS and run install_emulator_deps.py')
     48       return 1
     49     elif not install_emulator_deps.CheckX86Image():
     50       logging.critical('ERROR: System image for x86 AVD not installed. Run '
     51                        'install_emulator_deps.py')
     52       return 1
     53 
     54   if not install_emulator_deps.CheckSDK():
     55     logging.critical('ERROR: Emulator SDK not installed. Run '
     56                      'install_emulator_deps.py.')
     57     return 1
     58 
     59   emulator.LaunchEmulators(options.emulator_count, options.abi, True)
     60 
     61 
     62 if __name__ == '__main__':
     63   sys.exit(main(sys.argv))
     64