# 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 = "chromeos-installer@google.com"
NAME = "paygen_au_beta"
PURPOSE = "Automated testing of delta payloads generated by paygen."

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

DOC = """
This suite is similar to the au suite except that it's generated during paygen
and does not close the tree when the tests fail. There will be one test per
delta generated by paygen for a given release image. These tests (control
files) are generated at the time we are generating delta payloads, uploaded
by paygen, and expected to be kicked off by paygen. This suite can be re-run
at anytime using atest or the autotest web frontend.

Note: the control files used by this suite are auto-generated and the template
control file is in server/site_tests/autoupdate_EndToEndTest/control.

Note: this suite only tests deltas from the beta channel.

@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=['paygen_au_beta_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'] = NAME
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)
