# Copyright (c) 2011 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_ECSharedMem"
PURPOSE = "Servo based EC shared memory test"
CRITERIA = "This test will fail if EC shared memory misbehaved."
ATTRIBUTES = "suite:faft_ec, suite:faft_ec_au_1, suite:faft_ec_au_2, suite:faft_ec_au_3, suite:faft_ec3po, suite:faft_ec_tot"
TIME = "SHORT"
TEST_CATEGORY = "Functional"
TEST_CLASS = "firmware"
TEST_TYPE = "server"
DEPENDENCIES = "ec:cros"
JOB_RETRIES = 4

DOC = """
This test checks EC has enough shared memory under following conditions:
  - Normal operation
  - Reboot after a crash
  - Jumped between image
"""

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

def run_ecsharedmem(machine):
    host = hosts.create_host(machine, servo_args=servo_args)
    job.run_test("firmware_ECSharedMem", host=host, cmdline_args=args,
                 disable_sysinfo=True)

parallel_simple(run_ecsharedmem, machines)
