# 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_UpdateKernelSubkeyVersion"
PURPOSE = """
Servo based firmware update test, and check kernel subkey version.
"""
CRITERIA = """
This test will fail if following requrements are met:
1. fwid does not match shellball's (/usr/sbin/chromeos-firmwareupdate) fwid
2. Kernel subkey version does not match original kernel subkey version.
"""
ATTRIBUTES = "suite:faft_bios, suite:faft_bios_ro_qual, suite:faft_bios_rw_qual, suite:faft_dev, suite:faft_lv5, suite:faft_bios_ec3po, suite:faft_bios_tot"
TIME = "SHORT"
TEST_CATEGORY = "Functional"
TEST_CLASS = "firmware"
TEST_TYPE = "server"
JOB_RETRIES = 4

DOC = """
This test requires firmware id matches fwid of shellball
chromeos-firmwareupdate. On runtime, this test modifies shellball and runs
autoupdate. Check kernel subkey version after boot with firmware B, and then
recover firmware A and B to original shellball.
"""

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

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

parallel_simple(run_updatekernelsubkeyversion, machines)
