# Copyright 2021 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 = "meiring@google.com, cros-parallels@google.com"
NAME = "crosbolt_perf_parallels_weekly"
PURPOSE = "Runs weekly Parallels performance tests."

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

DOC = """
ChromeOS performance tests for Parallels.

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'] = NAME
args_dict['job'] = job
args_dict['add_experimental'] = True
args_dict['bug_template'] = _BUG_TEMPLATE

dynamic_suite.reimage_and_run(**args_dict)
