1# Copyright 2017 The Chromium OS Authors. All rights reserved.
2# Use of this source code is governed by a BSD-style license that can be
3# found in the LICENSE file.
4
5from autotest_lib.server import utils
6
7AUTHOR = "Chrome OS Team"
8NAME = "firmware_ECUpdateId"
9PURPOSE = "Servo based EC test for updating EC ID for verifying EC EFS"
10CRITERIA = "This test will fail if EC EFS misbehaves"
11ATTRIBUTES = "suite:faft_ec, suite:faft_ec_fw_qual, suite:faft_ec_tot"
12TIME = "SHORT"
13TEST_CATEGORY = "Functional"
14TEST_CLASS = "firmware"
15TEST_TYPE = "server"
16DEPENDENCIES = "ec:cros, servo_state:WORKING"
17JOB_RETRIES = 4
18
19DOC = """
20This test modifies the EC ID in AP firmware, reboots EC, and checks the next
21boot that software sync and EFS works as intended or not. It also corrupts
22one RW slot and checks if it is recovered.
23"""
24
25args_dict = utils.args_to_dict(args)
26servo_args = hosts.CrosHost.get_servo_arguments(args_dict)
27
28def run_ecupdateid(machine):
29    host = hosts.create_host(machine, servo_args=servo_args)
30    job.run_test("firmware_ECUpdateId", host=host, cmdline_args=args,
31                 disable_sysinfo=True, dev_mode=False, tag="normal")
32
33parallel_simple(run_ecupdateid, machines)
34