# 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.server import utils

AUTHOR = "Chrome OS Team"
NAME = "firmware_ConsecutiveBoot"
PURPOSE = "Servo based consecutive boot test (100 iterations)"
CRITERIA = "This test will fail if DUT fails to boot from power-off"
ATTRIBUTES = "suite:stress"
TIME = "LONG"
TEST_CATEGORY = "Stress"
TEST_CLASS = "firmware"
TEST_TYPE = "server"
DEPENDENCIES = "servo"

DOC = """
This test is intended to be run with many iterations to ensure that the DUT
does boot into Chrome OS and then does power off later.

Runs 100 boot iterations.
"""

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

args.append('faft_iterations=100')
args.append('faft_waitup_time=60')
args.append('faft_localrun=1')

def run_consecutive_boot(machine):
    host = hosts.create_host(machine, servo_args=servo_args)
    job.run_test("firmware_ConsecutiveBoot", host=host, cmdline_args=args,
                 disable_sysinfo=True, dev_mode=False, tag="normal")

parallel_simple(run_consecutive_boot, machines)
