# 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 = "ChromeOS 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 ChromeOS Commit Queue and Pre-Flight Queue.  Test failures
prevent code from being included in the tree or in canary builds:
  * ChromeOS 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 ChromeOS 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)
