# Copyright (c) 2017 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_CorruptRecoveryCache.dev"
PURPOSE = "Servo based RECOVERY_MRC_CACHE corruption test"
CRITERIA = "This test will fail if the cache doesn't retrain and boot into recovery"
ATTRIBUTES = "suite:faft_bios, suite:faft_lv3"
TIME = "SHORT"
TEST_CATEGORY = "Functional"
TEST_CLASS = "firmware"
TEST_TYPE = "server"
JOB_RETRIES = 1

DOC = """
This test corrupts RECOVERY_MRC_CACHE and makes sure the DUT recreates the
cache and boots into recovery. This only applies to intel chips.

The expected behavior is that if the RECOVERY_MRC_CACHE is corrupted then
it will be recreated and still boot into recovery mode.
"""

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

def run_corruptrecoverycache(machine):
    host = hosts.create_host(machine, servo_args=servo_args)
    job.run_test("firmware_CorruptRecoveryCache", host=host, cmdline_args=args,
                 disable_sysinfo=True, dev_mode=True, tag="dev")

parallel_simple(run_corruptrecoverycache, machines)
