# Copyright 2020 The ChromiumOS Authors
# 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

NAME = "firmware_CsmeFwUpdate"
AUTHOR = "ChromeOS Team"
METADATA = {
        "contacts": ["chromeos-faft@google.com", "jbettis@chromium.org"],
        "bug_component": "b:792402", # ChromeOS > Platform > Enablement > Firmware > FAFT
        "criteria": "verifies if MW firmware udpate happens successfully",
        "requirements": ["sys-fw-0021-v01"],
}
ATTRIBUTES = "suite:faft_bios"
DEPENDENCIES = "servo_state:WORKING"
TIME = "SHORT"
TEST_TYPE = "server"
JOB_RETRIES = 0
TEST_CASE_ID = "CSME_UPDATE"

DOC = """
This test updates the RW section of the current bios with another image which contain
a differnt ME RW version and verifies if MW firmware udpate happens successfully.
This is applicable only for systems supporting Intel CSE Lite
"""
args_dict = utils.args_to_dict(args)
servo_args = hosts.CrosHost.get_servo_arguments(args_dict)
def run(machine):
    host = hosts.create_host(machine, servo_args=servo_args)
    job.run_test("firmware_CsmeFwUpdate", host=host, cmdline_args=args, dev_mode = False)
parallel_simple(run, machines)
