# Copyright (c) 2012 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 = "kernel_per-build_benchmarks"
PURPOSE = "Gather benchmark/performance data for kernel evaluation."
CRITERIA = "All tests with SUITE=kernel_per-build_benchmarks must pass."

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

DOC = """
This is the Kernel Per-Build Benchmarks Test suite.  Failures in this test
suite should not close the tree. It should consist of SHORT tests that gather
data for long-term kernel performance evaluation.  It runs on every build so
it should consist of SHORT tests.  Longer running benchmarks should be added
to kernel_daily_benchmarks or kernel_weekly_benchmarks.

@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.server.cros import provision
from autotest_lib.server.cros.dynamic_suite import dynamic_suite

dynamic_suite.reimage_and_run(
    build=build, board=board, name='kernel_per-build_benchmarks', job=job,
    pool=pool, check_hosts=check_hosts, add_experimental=True, num=num,
    file_bugs=file_bugs, priority=priority, timeout_mins=timeout_mins,
    devserver_url=devserver_url, version_prefix=provision.CROS_VERSION_PREFIX,
    wait_for_results=wait_for_results)