# Copyright 2015 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.

# Please do not edit this file! It has been created by generate_controlfiles.py.

NAME = 'graphics_dEQP.gles3.performance'
AUTHOR = 'chromeos-gfx'
PURPOSE = 'Run the drawElements Quality Program test suite.'
CRITERIA = 'All of the individual tests must pass.'
ATTRIBUTES = ''
TIME = 'LONG'
TEST_CATEGORY = 'Functional'
TEST_CLASS = 'graphics'
TEST_TYPE = 'client'
MAX_RESULT_SIZE_KB = 131072
DOC = """
This test runs the drawElements Quality Program test suite.
"""
job.run_test('graphics_dEQP',
             opts = args + [
                 'filter=dEQP-GLES3.performance',
                 'subset_to_run=Pass',
                 'hasty=False',
                 'shard_number=0',
                 'shard_count=1'
             ])