# 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.

AUTHOR = "Chrome OS Team"
NAME = "firmware_DevFwNormalBoot"
PURPOSE = "Servo based test forcing normal boot on dev firmware"
CRITERIA = "This test will fail if firmware does not enter recovery mode"
SUITE = "faft,faft_dev,faft_lv3"
TIME = "LONG"
TEST_CATEGORY = "Functional"
TEST_CLASS = "firmware"
TEST_TYPE = "server"

DOC = """
This test is only meaningful on Alex/ZGB, which contains two different types of
RW firmware: normal and developer firmware. It requires a USB disk plugged-in,
which contains a Chrome OS test image (built by "build_image --test").
On runtime, this test sets developer firmware in A and then corrupts the
firmware in B. It forces to do a normal boot. Going to recovery is expected.
"""

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

parallel_simple(run_devfwnormalboot, machines)
