# Copyright (c) 2014 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 = "bvt-cq"
PURPOSE = "Test functionality required by the Commit Queue."

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

DOC = """
This is the portion of the Build Verification Test suite required to
pass the Chrome OS Commit Queue and Pre-Flight Queue.  Test failures
prevent code from being included in the tree or in canary builds:
  * Chrome OS CLs must pass these tests prior to being accepted into
    the tree.
  * A new Chrome build must pass these tests prior to the build
    being included in a Chrome OS canary build.

Requirements for a test to be in this suite:
 1. The test should be SHORT, and should not require any specialized
    lab resources.
 2. A test failure should indicate that the product is not fit for
    release on any channel.
 3. A test failure must reliably indicate a bug in the product, and
    not a bug in the test.
 4. The test must be hermetic.  That is, the test should have no
    dependencies on external network resources.

@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.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': ['bvt'],
    'owner': '',
    'status': None,
    'summary': None,
    'title': None,
}

args_dict['max_runtime_mins'] = 30
args_dict['name'] = 'bvt-cq'
args_dict['job'] = job
args_dict['add_experimental'] = True
args_dict['bug_template'] = _BUG_TEMPLATE

dynamic_suite.reimage_and_run(**args_dict)
