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

AUTHOR = "Chrome OS Team"
NAME = "bvt"
PURPOSE = "Test basic, required functionality."
CRITERIA = "All tests with SUITE=bvt must pass."

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

DOC = """
This is the Build Verification Test suite. It should consist of SHORT tests
that validate critical functionality. Critical functionality includes but is
not limited to tests that cover the ability to acquire connectivity, perform
-crash reporting, get updates, and allow a user to log in. A test failure in
this suite means that the build is dead in the water and will not be passed
on to QA. Tests that check critical pathways but are long running need to be
pared down and added to this suite on a case by case basis. The longer running
version can continue to run in other suites such as the regression suite. If you
are unsure if your test belongs in this suite email:
chromeos-lab-infrastructure@google.com.

This suite sets num to 4 in the reimage_and_run call to make sure we run
across 4 different machines. This overrides the CROS.sharding_factor option in
the global_config.


@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

dynamic_suite.reimage_and_run(
    build=build, board=board, name='bvt', job=job, pool=pool,
    check_hosts=check_hosts, add_experimental=True, num=num,
    file_bugs=file_bugs, skip_reimage=dynamic_suite.skip_reimage(globals()),
    max_runtime_mins=20)
