# Copyright 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-lab-infrastructure'
NAME = 'sanity'
PURPOSE = 'Sanity check run in buildbot to ensure the build will not break duts'

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

DOC = """
This suite is intended to be run by buildbot as a sanity check of the build.
It currently only contains a dummy_Pass test. It works by relying
on the safety checks built into the provisioning code to identify bad builds.

This suite is intended to block other bvt suites, and as such is highly
restricted because of the potential performance costs.

"""

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

args_dict['add_experimental'] = True
args_dict['version_prefix'] = provision.CROS_VERSION_PREFIX
args_dict['name'] = NAME
args_dict['job'] = job

dynamic_suite.reimage_and_run(**args_dict)
