| # Copyright 2014 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. |
| |
| from __future__ import absolute_import |
| from pylib import constants |
| from pylib.local.device import local_device_environment |
| from pylib.local.machine import local_machine_environment |
| |
| try: |
| # local_emulator_environment depends on //tools. |
| # If a client pulls in the //build subtree but not the //tools |
| # one, fail at emulator environment creation time. |
| from pylib.local.emulator import local_emulator_environment |
| except ImportError: |
| local_emulator_environment = None |
| |
| |
| def CreateEnvironment(args, output_manager, error_func): |
| |
| if args.environment == 'local': |
| if args.command not in constants.LOCAL_MACHINE_TESTS: |
| if args.avd_config: |
| if not local_emulator_environment: |
| error_func('emulator environment requested but not available.') |
| return local_emulator_environment.LocalEmulatorEnvironment( |
| args, output_manager, error_func) |
| return local_device_environment.LocalDeviceEnvironment( |
| args, output_manager, error_func) |
| else: |
| return local_machine_environment.LocalMachineEnvironment( |
| args, output_manager, error_func) |
| |
| error_func('Unable to create %s environment.' % args.environment) |