# Copyright 2016 The Chromium OS Authors. All rights reserved. # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. import logging import common from autotest_lib.server import test from autotest_lib.site_utils import acts_lib from autotest_lib.server.cros import dnsname_mangler from autotest_lib.server.hosts import host_info class android_EasySetup(test.test): """A test that does nothing except setup a phone. This test will only setup a phone how a user wants and will perform no tests. """ version = 1 def run_once(self, testbed=None, install_sl4a=True, additional_apks=[]): """When run the testbed will be setup. @param testbed: The testbed to setup. @param install_sl4a: When true sl4a will be installed. @param additional_apks: An array of apk info dictionaries. apk = Name of the apk (eg. sl4a.apk) package = Name of the package (eg. test.tools) artifact = Name of the artifact, if not given package is used. """ hostname = testbed.hostname if dnsname_mangler.is_ip_address(hostname): testbed_name = hostname else: testbed_name = hostname.split('.')[0] valid_hosts = [] for v in testbed.get_adb_devices().values(): try: info = v.host_info_store.get() except host_info.StoreError: pass else: if v.job_repo_url_attribute in info.attributes: valid_hosts.append(v) if not valid_hosts: logging.error('No valid devices.') return testbed_env = acts_lib.AndroidTestingEnvironment( devices=valid_hosts, testbed_name=testbed_name) if install_sl4a: testbed_env.install_sl4a_apk() for apk in additional_apks: testbed_env.install_apk(apk)