| # Copyright (c) 2010 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. |
| |
| from autotest_lib.server import utils |
| |
| AUTHOR = "Chrome OS Team" |
| NAME = "firmware_ShellBall" |
| TIME = "SHORT" |
| TEST_CATEGORY = "Functional" |
| TEST_CLASS = "firmware" |
| TEST_TYPE = "server" |
| |
| DOC = """ |
| chromeos-firmwareupdate functional testing. |
| |
| This script first copies shellball to DUT and runs all functional tests. |
| |
| Syntax: |
| ./run_remote_tests.sh --remote=<IP> -a "xml_config=<xml_config_file> |
| shellball_path=<shellball_directory> shellball_name=<shellball_name> |
| servo_serial=<serial number>" firmware_ShellBall/control |
| """ |
| from autotest_lib.client.common_lib import error |
| |
| # Convert autoserv args to something usable. |
| opts = dict([[k, v] for (k, _, v) in [x.partition('=') for x in args]]) |
| |
| args_dict = utils.args_to_dict(args) |
| servo_args = hosts.CrosHost.get_servo_arguments(args_dict) |
| |
| def run_shellball(machine): |
| # Verify bios path arg. |
| if 'shellball_path' and 'shellball_name' not in opts: |
| raise error.TestFail('Invalid shellball information.') |
| # Setup the client machine. |
| host = hosts.create_host(machine, servo_args=servo_args) |
| job.run_test("firmware_ShellBall", host=host, |
| cmdline_args=args, |
| shellball_path=opts['shellball_path'], |
| shellball_name=opts['shellball_name'], |
| disable_sysinfo=True) |
| |
| parallel_simple(run_shellball, machines) |