# 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 = "ihf|sabercrombie|marcheu@chromium.org"
NAME = "graphics_per-build"
PURPOSE = "Test graphics functionality."
CRITERIA = "All tests with SUITE=graphics_per-build should complete."

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

DOC = """
This is the graphics test suite. It should consist of functional and stressful
graphics tests. In general we don't want these tests to hang the system,
although this may happen especially with piglit.

Tests should be run in order of increasing likeness of hanging the system
graphics_WebGLConformance                 5 minutes

The machine should reboot after finishing the suite or timing out.

@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.dynamic_suite import dynamic_suite

dynamic_suite.reimage_and_run(
    build=build, board=board, name='graphics_per-build', job=job, pool=pool,
    check_hosts=check_hosts, add_experimental=True, num=num,
    file_bugs=file_bugs, skip_reimage=dynamic_suite.skip_reimage(globals()),
    devserver_url=devserver_url)
