# Copyright 2011 The ChromiumOS Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

# TODO(b/342929556): Remove from PVS testplans and remove this file.

from autotest_lib.server import utils

AUTHOR = "ChromeOS Team"
NAME = "firmware_TryFwB"
METADATA = {
        "contacts": ["chromeos-faft@google.com", "jbettis@chromium.org"],
        "bug_component": "b:792402", # ChromeOS > Platform > Enablement > Firmware > FAFT
        "criteria": "Servo based RW firmware B boot test",
}
DEPENDENCIES = "servo_state:WORKING"
TIME = "SHORT"
TEST_TYPE = "server"
JOB_RETRIES = 0

DOC = """
This test sets fw_try_next=B and boots firmware B.
"""

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

def run_tryfwb(machine):
    host = hosts.create_host(machine, servo_args=servo_args)
    job.run_test("firmware_TryFwB", host=host, cmdline_args=args,
                 disable_sysinfo=True, dev_mode=False)

parallel_simple(run_tryfwb, machines)
