# Copyright (c) 2014 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.

AUTHOR = "Chrome OS Team"
NAME = "firmware_FWupdate"
TIME = "MEDIUM"
TEST_CATEGORY = "Functional"
TEST_CLASS = "firmware"
TEST_TYPE = "server"

DOC = """
RO+RW firmware update using chromeos-firmwareupdate --mode=recovery

Required arguments:
    test_that ... --args "old_bios=/path/to/old.bin new_bios=/path/to/new.bin"

The *_bios arguments can also be split into separate _bios_ro and _bios_rw args.
"""

from autotest_lib.client.common_lib import utils

args_dict = utils.args_to_dict(args)
servo_args = hosts.CrosHost.get_servo_arguments(args_dict)

def run_firmwareupdate(machine):
    # Setup the client machine.
    host = hosts.create_host(machine, servo_args=servo_args)
    job.run_test('firmware_FWupdate', test_name=NAME, host=host,
                 cmdline_args=args)

parallel_simple(run_firmwareupdate, machines)
