// Copyright (c) 2013 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

// This file contains a list of defective GLES2 conformance tests. The expected
// format is:
//  {BUG#} {MODIFIERS} : {TEST_NAME} = {PASS,FAIL,FLAKY,TIMEOUT,SKIP}
//
// MODIFIERS can be a combination of the below list:
//  WIN XP VISTA WIN7 MAC LEOPARD SNOWLEOPARD LION LINUX CHROMEOS MOUNTAINLION
//  MAVERICKS
//  NVIDIA AMD INTEL
//  0xabcd - GPU PCI device ID. Specifying a PCI id requires a vendor.
//  DEBUG RELEASE
//
// TEST_NAME can be a specific test name, or have a '*' in the end, which
// indicates a prefix matching.
//
// Any tests whose expectations are not PASS will be skipped on the bots.
//
// Examples:
//  91530 MAC WIN LINUX : context_lost_restored = TIMEOUT
//  91533 WIN : gl_min_uniforms = FAIL
//  91531 MAC WIN LINUX : conformance_more_* = SKIP
//  91532 MAC NVIDIA 0x0640 : tex_image_and_sub_image_2d_with_video = PASS FAIL

517966 WIN OPENGL : GL2FixedTests_blend_input_run = FAIL
517966 WIN OPENGL : GL2FixedTests_buffer_clear_input_run = FAIL
517966 WIN OPENGL : GL2FixedTests_buffer_color_input_run = FAIL
517966 WIN OPENGL : GL2FixedTests_copy_texture_input_run = FAIL
517966 WIN OPENGL : GL2FixedTests_depth_buffer_clear_input_run = FAIL
517966 WIN OPENGL : GL2FixedTests_stencil_plane_clear_input_run = FAIL
517966 WIN OPENGL : GL2FixedTests_user_clip_planes_input_run = FAIL
517966 WIN OPENGL : GL2Tests_framebuffer_objects_input_run = FAIL

490149 WIN OPENGL INTEL : GL2ExtensionTests_dFdy_input_run = FAIL
490149 WIN OPENGL INTEL : GL2Tests_fixed_data_type_input_run = FAIL
490149 WIN OPENGL INTEL : GL2Tests_glUniform_input_run = FAIL
490149 WIN OPENGL INTEL : GL2Tests_three_uniforms_input_run = FAIL
490149 WIN OPENGL INTEL : GL_build_input_run = FAIL

540538 WIN D3D9 INTEL : GL_cos_input_run = FAIL

253674 LION INTEL : GL2ExtensionTests_dFdy_input_run = FAIL
253674 LION INTEL : GL2FixedTests_point_sprites_input_run = FAIL
253674 LION INTEL : GL_control_flow_input_run = FAIL
253674 LION INTEL : GL_dot_input_run = FAIL
253674 LION INTEL : GL_faceforward_input_run = FAIL
253674 LION INTEL : GL_length_input_run = FAIL
253674 LION INTEL : GL_normalize_input_run = FAIL
253674 LION INTEL : GL_reflect_input_run = FAIL
253674 LION INTEL : GL_refract_input_run = FAIL
253674 LION INTEL : GL_tan_input_run = FAIL

253674 LION AMD : GL2FixedTests_point_sprites_input_run = FAIL
253674 LION AMD : GL_dot_input_run = FAIL
253674 LION AMD : GL_length_input_run = FAIL

// See also crbug.com/306485 for non-Lion instances.
253674 MAC AMD : GL_distance_input_run = FAIL

253674 MOUNTAINLION AMD : GL2ExtensionTests_dFdy_input_run = FAIL
253674 MOUNTAINLION AMD : GL2FixedTests_point_sprites_input_run = FAIL
253674 MOUNTAINLION AMD : GL_control_flow_input_run = FAIL
253674 MOUNTAINLION AMD : GL_operators_input_run = FAIL

253674 MOUNTAINLION INTEL : GL2ExtensionTests_dFdy_input_run = FAIL
253674 MOUNTAINLION INTEL : GL2FixedTests_point_sprites_input_run = FAIL
253674 MOUNTAINLION INTEL : GL_control_flow_input_run = FAIL
253674 MOUNTAINLION INTEL : GL_operators_input_run = FAIL

339911 MOUNTAINLION INTEL : GL2FixedTests_blend_input_run = FAIL

253674 MAC : GL2Tests_glUniform_input_run = FAIL
253674 MAC : GL2Tests_three_uniforms_input_run = FAIL

393677 CHROMEOS INTEL 0xa011 : GL_acos_input_run = FAIL
393677 CHROMEOS INTEL 0xa011 : GL_asin_input_run = FAIL
393677 CHROMEOS INTEL 0xa011 : GL_atan_input_run = FAIL
393677 CHROMEOS INTEL 0xa011 : GL_control_flow_input_run = FAIL
393677 CHROMEOS INTEL 0xa011 : GL_cos_input_run = FAIL
393677 CHROMEOS INTEL 0xa011 : GL_discard_input_run = FAIL
393677 CHROMEOS INTEL 0xa011 : GL_functions_input_run = FAIL
393677 CHROMEOS INTEL 0xa011 : GL_gl_FrontFacing_input_run = FAIL
393677 CHROMEOS INTEL 0xa011 : GL_log_input_run = FAIL
393677 CHROMEOS INTEL 0xa011 : GL_log2_input_run = FAIL
393677 CHROMEOS INTEL 0xa011 : GL_normalize_input_run = FAIL
393677 CHROMEOS INTEL 0xa011 : GL_sin_input_run = FAIL
393677 CHROMEOS INTEL 0xa011 : GL2ExtensionTests_dFdx_input_run = FAIL
393677 CHROMEOS INTEL 0xa011 : GL2ExtensionTests_dFdy_input_run = FAIL
393677 CHROMEOS INTEL 0xa011 : GL2ExtensionTests_fwidth_input_run = FAIL
393677 CHROMEOS INTEL 0xa011 : GL2FixedTests_blend_input_run = FAIL
393677 CHROMEOS INTEL 0xa011 : GL2FixedTests_point_rasterization_input_run = FAIL
393677 CHROMEOS INTEL 0xa011 : GL2FixedTests_scissor_input_run = FAIL

////////////////////////////////////////////////////////////////////////////////
//
//  Temprory entries: they should be removed once the bugs are fixed.
//
////////////////////////////////////////////////////////////////////////////////

