# Copyright 2016 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.

AUTHOR = "Chrome OS Team"
NAME = "faft_ec3po"
PURPOSE = "Test hard-to-automate firmware and ec scenarios using EC-3PO."

TIME = "SHORT"
TEST_CATEGORY = "General"
TEST_CLASS = "suite"
TEST_TYPE = "Server"

DOC = """
This is the same suite as faft_ec, but instead uses the EC-3PO console
interpreter inside of servod.  This suite should be removed when satisfied with
the results.

This is a faft (FULLY AUTOMATED FIRMWARE TEST) suite. The tests in this suite
verify the Chrome OS EC operation, that valid boot scenarios progress properly
(with state progress checks) and that error scenarios (corrupted blobs) are
caught as expected. Some of these test failures should close the tree as they
may imply that the system is unbootable and further tests will only become
hung or blocked. Other tests verify all of the features (some of them security
related) are functioning.

@param build: The name of the image to test.
              Ex: x86-mario-release/R17-1412.33.0-a1-b29
@param board: The board to test on.  Ex: x86-mario
@param pool: The pool of machines to utilize for scheduling. If pool=None
             board is used.
@param check_hosts: require appropriate live hosts to exist in the lab.
@param SKIP_IMAGE: (optional) If present and True, don't re-image devices.
"""

import common
from autotest_lib.server.cros import provision
from autotest_lib.server.cros.dynamic_suite import dynamic_suite

# Values specified in this bug template will override default values when
# filing bugs on tests that are a part of this suite. If left unspecified
# the bug filer will fallback to it's defaults.
_BUG_TEMPLATE = {
    'labels': ['FW-labblocker', 'Restrict-View-Google'],
    'owner': 'aaboagye@chromium.org',
    'status': None,
    'summary': None,
    'title': None,
}

args_dict['file_bugs'] = True
args_dict['name'] = 'faft_ec3po'
args_dict['job'] = job
args_dict['add_experimental'] = True
args_dict['version_prefix'] = provision.CROS_VERSION_PREFIX
args_dict['bug_template'] = _BUG_TEMPLATE

dynamic_suite.reimage_and_run(**args_dict)
