// 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

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

408251 WIN : GL2ExtensionTests_vertex_array_object_input_run = FAIL
408251 WIN : GL2FixedTests_blend_input_run = FAIL
408251 WIN : GL2FixedTests_buffer_clear_input_run = FAIL
408251 WIN : GL2FixedTests_buffer_color_input_run = FAIL
408251 WIN : GL2FixedTests_copy_texture_input_run = FAIL
408251 WIN : GL2FixedTests_depth_buffer_clear_input_run = FAIL
408251 WIN : GL2FixedTests_mipmaps_interpolation_input_run = FAIL
408251 WIN : GL2FixedTests_stencil_plane_clear_input_run = FAIL
408251 WIN : GL2FixedTests_triangle_tiling_input_run = FAIL
408251 WIN : GL2FixedTests_user_clip_planes_input_run = FAIL
408251 WIN : GL2Tests_fixed_data_type_input_run = FAIL
408251 WIN : GL_biConstants_input_run = FAIL
408251 WIN : GL_biuDepthRange_input_run = FAIL
408251 WIN : GL_mat_input_run = FAIL
408251 WIN : GL_struct_input_run = FAIL

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

