# 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 = "littlecvr@chromium.org, chromeos-performance@google.com"
NAME = "crosbolt_perf_weekly"
PURPOSE = "Performance tests that should be run once a week"

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

DOC = """
ChromeOS performance tests including telemetry tests.

A test should be considered living in crosbolt_perf_nightly first unless the
test takes too long to run daily.

@param build: The name of the image to test.
              E.g. x86-mario-release/R17-1412.33.0-a1-b29
@param board: The board to test on. E.g. 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.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': ['Type-Bug', 'Cros-Perf-Test'],
    'owner': 'bccheng@chromium.org',
    'cc': ['conradlo@chromium.org']
}

args_dict['max_runtime_mins'] = 1440
args_dict['timeout_mins'] = 4320
args_dict['name'] = 'crosbolt_perf_weekly'
args_dict['job'] = job
args_dict['add_experimental'] = True
args_dict['bug_template'] = _BUG_TEMPLATE

dynamic_suite.reimage_and_run(**args_dict)
