# Copyright (c) 2011 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_TryFwB"
PURPOSE = "Servo based RW firmware B boot test"
CRITERIA = "This test will fail if firmware does not switch to firmware B"
SUITE = "faft,faft_dev,faft_lv1"
TIME = "LONG"
TEST_CATEGORY = "Functional"
TEST_CLASS = "firmware"
TEST_TYPE = "server"

DOC = """
This test sets fwb_tries flag and boots firmware B.
"""

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

parallel_simple(run_tryfwb, machines)
