#!/usr/bin/env python
# -*- coding: utf-8 -*-

import os.path

global profile

execfile(os.path.dirname(__file__) + '/quick.tests')

# These don't test the driver
del profile.tests['glslparsertest']
del profile.tests['asmparsertest']

# These take too long
del profile.tests['glean']['blendFunc']
del profile.tests['glean']['depthStencil']
del profile.tests['glean']['pointAtten']
del profile.tests['shaders']['glsl-fs-inline-explosion']
del profile.tests['shaders']['glsl-fs-unroll-explosion']
del profile.tests['shaders']['glsl-vs-inline-explosion']
del profile.tests['shaders']['glsl-vs-unroll-explosion']
del profile.tests['spec']['!OpenGL 1.1']['streaming-texture-leak']

# IHF: this test runs with too much memory on my 64 bit dev system
del profile.tests['spec']['!OpenGL 1.2']['tex3d-maxsize']

# IHF: this test hangs testing
del profile.tests['spec']['!OpenGL 1.1']['longprim']
del profile.tests['glx']['glx-make-glxdrawable-current']
del profile.tests['shaders']['glsl-texcoord-array']

# IHF: bug 19813 - x86-generic crashes/hangs blacklisted (roughly declining order of badness)
del profile.tests['spec']['glsl-1.10']['execution']['samplers']['in-parameter']
del profile.tests['spec']['glsl-1.10']['execution']['samplers']['in-parameter-struct']
del profile.tests['spec']['glsl-1.10']['execution']['samplers']['normal-parameter']
del profile.tests['spec']['glsl-1.10']['execution']['samplers']['normal-parameter-struct']

# IHF: This test crashed on lumpy during checkout.
del profile.tests['spec']['!OpenGL 1.1']['max-texture-size']

# IHF: These tests cause hangchecks on lumpy/stumpy and often many crashes and a loss
# of hardware acceleration later. See crosbug.com/30809.
del profile.tests['spec']['glsl-1.30']['execution']['fs-discard-exit-1']
del profile.tests['spec']['glsl-1.30']['execution']['fs-discard-exit-2']

# SCBA: These crashed on Sandy Bridge. Some are not supported.
del profile.tests['spec']['ARB_framebuffer_object']['negative-readpixels-no-rb']
del profile.tests['spec']['ARB_uniform_buffer_object']['maxuniformblocksize/fsexceed']
del profile.tests['spec']['ARB_uniform_buffer_object']['maxuniformblocksize/fs']
del profile.tests['spec']['EGL_KHR_create_context']
del profile.tests['spec']['EGL_NOK_swap_region']
del profile.tests['spec']['EGL_NOK_texture_from_pixmap']
del profile.tests['spec']['EGL 1.4']
del profile.tests['spec']['EXT_texture_array']['compressed teximage']
del profile.tests['spec']['EXT_packed_depth_stencil']['fbo-clear-formats stencil']
del profile.tests['spec']['EXT_texture_compression_s3tc']['s3tc-errors']
del profile.tests['spec']['glsl-1.10']['execution']['varying-packing']
del profile.tests['spec']['ARB_draw_elements_base_vertex']['draw-elements-base-vertex-neg-user_varrays']
del profile.tests['spec']['glsl-1.30']['execution']['varying-packing-mixed-types']
del profile.tests['spec']['ARB_fragment_program']['fp-long-alu']

# SCBA: These crashed on i915
del profile.tests['shaders']['glsl-fs-convolution-2']
