# Copyright (c) 2013 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 = "push_to_prod"
PURPOSE = "Test Autotest before push to prod."
CRITERIA = ""

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

DOC = """
This suite is designed to test various aspect of Autotest. It should be run
before push to prod. Design doc:
https://docs.google.com/a/google.com/document/d/1JMz0xS3fZRSHMpFkkKAL_rxsdbNZomhHbC3B8L71uuI/edit?usp=sharing
Email chromeos-lab-infrastructure@google.com if you have any question about this
suite.

This suite sets num to 6 in the reimage_and_run call to make sure we run
across 6 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.client.common_lib.cros import dev_server
from autotest_lib.server.cros import provision
from autotest_lib.server.cros.dynamic_suite import dynamic_suite

# Needs to be done to generate the control files for the suite.
ds = dev_server.ImageServer.resolve(build)
ds.stage_artifacts(build, artifacts=['au_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': ['push_to_prod'],
    'owner': '',
    'status': None,
    'summary': None,
    'title': None,
    'ccs': []
}

dynamic_suite.reimage_and_run(
    build=build, board=board, name='push_to_prod', job=job, pool=pool,
    check_hosts=check_hosts, add_experimental=True, num=num,
    file_bugs=True, priority=priority, timeout=timeout,
    max_runtime_mins=20, bug_template=_BUG_TEMPLATE,
    devserver_url=devserver_url, version_prefix=provision.CROS_VERSION_PREFIX)
