# Copyright (c) 2012 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.client.common_lib import utils

AUTHOR = "Chrome OS Team"
NAME = "platform_StageAndRecover"
TIME = "MEDIUM"
TEST_CATEGORY = "Install"
TEST_CLASS = "platform"
TEST_TYPE = "server"
DEPENDENCIES = "servo, recovery_test"
ATTRIBUTES = "suite:platform_test_nightly"

DOC = """
This test stages and installs the same build recovery image onto a
servo-connected DUT. This is useful for testing the recovery process,
imaging servo-connected Devices under Test (DUTs), and verifying recovery
build image is installed.
"""

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

def run(machine):
    # Setup the client machine.
    host = hosts.create_host(machine, servo_args=servo_args)
    job.run_test("platform_StageAndRecover", host=host,
                 disable_sysinfo=True)

parallel_simple(run, machines)
