# Copyright (c) 2013 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 from autotest_lib.client.common_lib import error from autotest_lib.client.common_lib import utils from autotest_lib.server.cros import host_lock_manager from autotest_lib.server.cros import sonic_client_utils AUTHOR = "Chrome OS Team" NAME = "sonic_AppTest" PURPOSE = "Demonstrate the ability to start the chromecast app." CRITERIA = "This test will fail if the app fails to start." TIME = "SHORT" TEST_CATEGORY = "General" TEST_CLASS = "sonic" TEST_TYPE = "server" DOC = """ This is a sonic test that will cast a tab. Tab cast is achieved through desktopui_SonicExtension, which is a client test that handles all the extension manipulation necessary to talk to the sonic device. Note that the sonic host and the DUT need to be on the same subnet. Usage: test_that --board= --args="sonic_hostname=" """ args_dict = utils.args_to_dict(args) def run(machine): extension_dir = args_dict.get('extension_dir') lock_manager = host_lock_manager.HostLockManager() # If the hostname of a sonic device to use with this test # is passed through --args, just try to lock it, otherwise # look for an unlocked host with the sonic label. The context # manager handles unlocking hosts locked through the lock_manager. with host_lock_manager.HostsLockedBy(lock_manager): sonic_hostname = args_dict.get('sonic_hostname') if sonic_hostname: lock_manager.lock([sonic_hostname]) else: sonic_hostname = sonic_client_utils.acquire_sonic(lock_manager) logging.info('Using sonic host: %s', sonic_hostname) cros_host = hosts.create_host(machine) sonic_host = hosts.create_host(sonic_hostname) job.run_test('sonic_AppTest', cros_host=cros_host, sonic_host=sonic_host, extension_dir=extension_dir, disable_sysinfo=True) parallel_simple(run, machines)