# 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 = "graphicsGLES"
PURPOSE = "Test graphics functionality on ARM/GLES devices."
CRITERIA = "All tests with SUITE=graphicsGLES should complete and not hang."

TIME = "LONG"
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. For functionality contact
suite owners: ihf|sabercrombie|marcheu@chromium.org

Tests should be run in order of increasing likeness of hanging the system
graphics_GLBench                          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='graphicsGLES', job=job, pool=pool,
    check_hosts=check_hosts, add_experimental=True, num=num,
    file_bugs=file_bugs, skip_reimage=dynamic_suite.skip_reimage(globals()))
