# Copyright 2017 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-arc"
PURPOSE = "Test basic functionality of ARC."

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

DOC = """
This is the portion of the Build Verification Test suite required
for devices supporting ARC.  Tests in this suite must pass in the
CQ, and in the Chrome and Android PFQs.  Test failures prevent code
from being included in the tree or in canary builds:
  * Failures in the canary turn the tree red, block lower priority
    tests for the build, and generally mean that QA cannot further
    evaluate the build's fitness for release.
  * ChromeOS CLs must pass these tests in the Commit Queue prior to
    being accepted into the tree.
  * A new Chrome or Android 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 or MEDIUM, and should not require any
    specialized lab resources.
 2. A test failure should indicate one or more of the following
    impacts is possible:
     * The failure may prevent discovery of other ARC bugs.
     * The failure may block ordinary development tasks for ARC.
 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: veyron_minnie-release/R60-9575.0.0
@param board: The board to test on. Ex: veyron_minnie
@param pool: The pool of machines to utilize for scheduling.
"""

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 its defaults.
_BUG_TEMPLATE = {
    'labels': ['bvt'],
    'owner': '',
    'status': None,
    'summary': None,
    'title': None,
}

args_dict['max_runtime_mins'] = 60
args_dict['name'] = 'bvt-arc'
args_dict['job'] = job
args_dict['bug_template'] = _BUG_TEMPLATE

dynamic_suite.reimage_and_run(**args_dict)
