# 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.gles31.stress.NotPass'
AUTHOR = 'chromeos-gfx'
PURPOSE = 'Run the drawElements Quality Program test suite.'
CRITERIA = 'All of the individual tests must pass.'
ATTRIBUTES = ''
SUITE = ''
TIME = 'LONG'
DEPENDENCIES = 'cleanup-reboot'
TEST_CATEGORY = 'Functional'
TEST_CLASS = 'graphics'
TEST_TYPE = 'client'
DOC = """
This test runs the drawElements Quality Program test suite.
"""

job.run_test('graphics_dEQP', opts = args + ['filter=dEQP-GLES31.stress',
                                             'subset_to_run=NotPass',
                                             'hasty=False',
                                             'shard_number=0',
                                             'shard_count=1'])