# 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 = "au"
PURPOSE = "Automated testing of autoupdate done by continuous builders."

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

DOC = """
This is the equivalent of the build verification suite but for autoupdate in the
sense that this suite contains the Autoupdate Verification tests that must pass
with every build.

Note: the control files used by this suite are auto-generated by Chromium OS
builds which use the template control file from
server/site_tests/autoupdate_EndToEndTest/control.

@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.
"""

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(devserver_url)
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 = {
    'components': ['Internals>Installer'],
    'owner': '',
    'status': None,
    'summary': None,
    'title': None,
    'cc': ['chromeos-installer-alerts@google.com']
}

# TODO(sosa): Really should skip_reimage but suite logic does not currently
# work without reimaging.
args_dict['max_runtime_mins'] = 60
args_dict['name'] = 'au'
args_dict['job'] = job
args_dict['add_experimental'] = True
args_dict['version_prefix'] = provision.CROS_VERSION_PREFIX
args_dict['bug_template'] = _BUG_TEMPLATE

dynamic_suite.reimage_and_run(**args_dict)
