| # 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 <ip of Cros DUT> --board=<boardname of DUT> |
| --args="sonic_hostname=<ip of sonichost>" |
| """ |
| |
| 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) |