зеркало из https://github.com/AvaloniaUI/angle.git
Test Expectations: Use file order as override priority.
Now expectations that happen first in the file will override those later expressions. This fixes the weird conflict that could occur when we use wildcards inside the expression. e.g.: a) 6746 : *BadConfig = SKIP b) 5076 : TestSuite.Test/* = TIMEOUT Previously b) would override a) for TestSuite.Test/BadConfig and we would give the expectation as TIMEOUT because the string length of the expectation was longer. This will allow us to use short skip expressions for e.g. TSAN. Bug: angleproject:6746 Change-Id: I2dc651c3593c02b6f8723d67c0fc311701ee15f8 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3365659 Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
This commit is contained in:
Родитель
ece463808d
Коммит
c2a2961493
|
@ -4,6 +4,12 @@
|
|||
|
||||
// See deqp_support/README.md for format.
|
||||
|
||||
// Thread sanitizer skips.
|
||||
6718 TSAN : MultithreadingTestES3.MultithreadFenceDraw/* = SKIP
|
||||
6718 TSAN : MultithreadingTestES3.MultithreadFenceTexImage/* = SKIP
|
||||
6746 TSAN : *Vulkan_AsyncQueue = SKIP
|
||||
6804 LINUX VULKAN TSAN : MultithreadingTest.MultiContextDrawWithSwapBuffers/* = SKIP
|
||||
|
||||
// Generic
|
||||
// Fails in the flush thread when calling eglMakeCurrent.
|
||||
6063 OPENGL : SimpleStateChangeTestES31.DrawThenChangeFBOThenDrawThenFlushInAnotherThreadThenDrawIndexed/* = SKIP
|
||||
|
@ -421,11 +427,6 @@
|
|||
6652 WIN AMD VULKAN : DrawTextureTest.ColorArrayDifferentTypes/* = SKIP
|
||||
6652 WIN AMD VULKAN : PointSpriteTest.TrianglesNotTreatedAsPointSprites/* = SKIP
|
||||
|
||||
6718 TSAN : MultithreadingTestES3.MultithreadFenceDraw/* = SKIP
|
||||
6718 TSAN : MultithreadingTestES3.MultithreadFenceTexImage/* = SKIP
|
||||
6746 TSAN : *Vulkan_AsyncQueue = SKIP
|
||||
6804 LINUX VULKAN TSAN : MultithreadingTest.MultiContextDrawWithSwapBuffers/* = SKIP
|
||||
|
||||
// Indexed indirect draw offset bug
|
||||
6751 METAL : MultiDrawIndirectTest.MultiDrawElementsIndirect* = SKIP
|
||||
6751 D3D11 : MultiDrawIndirectTest.MultiDrawElementsIndirect* = SKIP
|
||||
|
|
|
@ -18,6 +18,10 @@ exists to let the test harness know which tests it should skip (as they are know
|
|||
expect to see failed. Warnings are generated if a test unexpectedly passes, but an unexpected
|
||||
failure is an error. This let's ANGLE ensure there are no regressions.
|
||||
|
||||
If multiple test expectations in a file match a specific test due to
|
||||
wildcards, the test harness picks the first match in the file as the
|
||||
overriding expectation.
|
||||
|
||||
While developing a feature, or testing on a new platform, the expectations files can be modified to
|
||||
reflect the reality of the situation. The expected format for every line in these files is:
|
||||
|
||||
|
|
|
@ -125,6 +125,9 @@
|
|||
6277 ANDROID VULKAN : dEQP-EGL.functional.image.render_multiple_contexts.gles2_android_native_rgb8_texture = FAIL
|
||||
|
||||
// Robustness failures on multiple platforms
|
||||
6707 NVIDIA : dEQP-EGL.functional.robustness.reset_context.shaders.out_of_bounds.reset_status.reads.uniform_block.compute = SKIP
|
||||
6707 NVIDIA : dEQP-EGL.functional.robustness.reset_context.shaders.out_of_bounds.reset_status.writes.uniform_block.compute = SKIP
|
||||
|
||||
3711 : dEQP-EGL.functional.robustness.reset_context.shaders.out_of_bounds.reset_status.reads.* = FAIL
|
||||
3711 : dEQP-EGL.functional.robustness.reset_context.shaders.out_of_bounds.reset_status.writes.* = FAIL
|
||||
|
||||
|
@ -269,9 +272,6 @@
|
|||
6528 PIXEL4ORXL GLES : dEQP-EGL.functional.thread_cleanup.multi_context_* = FAIL
|
||||
6528 PIXEL4ORXL GLES : dEQP-EGL.functional.thread_cleanup.single_context_* = FAIL
|
||||
|
||||
6707 NVIDIA : dEQP-EGL.functional.robustness.reset_context.shaders.out_of_bounds.reset_status.reads.uniform_block.compute = SKIP
|
||||
6707 NVIDIA : dEQP-EGL.functional.robustness.reset_context.shaders.out_of_bounds.reset_status.writes.uniform_block.compute = SKIP
|
||||
|
||||
6678 TSAN : dEQP-EGL.functional.multithread.* = SKIP
|
||||
6678 TSAN : dEQP-EGL.functional.sharing.gles2.multithread.random* = FLAKY
|
||||
|
||||
|
|
|
@ -362,7 +362,7 @@
|
|||
6297 MAC METAL : dEQP-GLES2.functional.attribute_location.bind_aliasing.cond* = FAIL
|
||||
|
||||
// Test bug - fails in ASAN.
|
||||
6678 : dEQP-GLES2.functional.negative_api.texture.compressedtexsubimage2d* = SKIP
|
||||
6678 ASAN : dEQP-GLES2.functional.negative_api.texture.compressedtexsubimage2d* = SKIP
|
||||
|
||||
// Vulkan
|
||||
4944 VULKAN ANDROID : dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.rebind_rbo_rgba4 = FAIL
|
||||
|
|
|
@ -17,6 +17,9 @@
|
|||
// Times out shader compilation because it uses so many resources.
|
||||
3445 : dEQP-GLES31.functional.ssbo.layout.random.all_shared_buffer.48 = SKIP
|
||||
|
||||
// Slow tests.
|
||||
6021 : dEQP-GLES31.functional.ssbo.layout.random.all_shared_buffer.36 = TIMEOUT
|
||||
|
||||
// D3D11 Failing Tests
|
||||
// Below cases are failed due to binding multi-UAVs to a single buffer is not supported in D3D backend.
|
||||
// http://anglebug.com/3032
|
||||
|
@ -85,7 +88,10 @@
|
|||
4234 D3D11 : dEQP-GLES31.functional.debug.negative_coverage.callbacks.compute.program_not_active = SKIP
|
||||
4234 OPENGL : dEQP-GLES31.functional.debug.negative_coverage.callbacks.compute.program_not_active = SKIP
|
||||
|
||||
// OPENGL Failing Tests
|
||||
// OpenGL Passing tests.
|
||||
3584 OPENGL : dEQP-GLES31.functional.shaders.opaque_type_indexing.sampler.*samplercubearray* = PASS
|
||||
|
||||
// OpenGL Failing Tests
|
||||
1442 NVIDIA OPENGL : dEQP-GLES31.functional.fbo.no_attachments.maximums.all = FAIL
|
||||
1442 OPENGL : dEQP-GLES31.functional.program_interface_query.atomic_counter_buffer.referenced_by* = FAIL
|
||||
1442 OPENGL : dEQP-GLES31.functional.program_interface_query.buffer_limited_query.resource_query = FAIL
|
||||
|
@ -106,6 +112,7 @@
|
|||
5197 LINUX OPENGL : dEQP-GLES31.functional.compute.indirect_dispatch.gen_in_compute.large_offset_multiple_invocations = TIMEOUT
|
||||
|
||||
// OpenGL/D3D11 Failing Tests
|
||||
1951 D3D11 : dEQP-GLES31.functional.shaders.opaque_type_indexing.ssbo.* = SKIP
|
||||
1442 OPENGL : dEQP-GLES31.functional.shaders.opaque_type_indexing.* = FAIL
|
||||
1442 D3D11 : dEQP-GLES31.functional.shaders.opaque_type_indexing.* = FAIL
|
||||
1442 OPENGL : dEQP-GLES31.functional.separate_shader.* = SKIP
|
||||
|
@ -115,8 +122,6 @@
|
|||
1442 OPENGL : dEQP-GLES31.functional.state_query.program_pipeline.* = SKIP
|
||||
1442 D3D11 : dEQP-GLES31.functional.state_query.program_pipeline.* = SKIP
|
||||
|
||||
3584 OPENGL : dEQP-GLES31.functional.shaders.opaque_type_indexing.sampler.*samplercubearray* = PASS
|
||||
|
||||
// These tests are failing because of compile errors with SSBOs in compute shaders.
|
||||
|
||||
1442 D3D11 : dEQP-GLES31.functional.stencil_texturing.* = SKIP
|
||||
|
@ -125,7 +130,6 @@
|
|||
|
||||
1729 D3D11 : dEQP-GLES31.functional.atomic_counter.* = SKIP
|
||||
1951 D3D11 : dEQP-GLES31.functional.layout_binding.ssbo.* = SKIP
|
||||
1951 D3D11 : dEQP-GLES31.functional.shaders.opaque_type_indexing.ssbo.* = SKIP
|
||||
4330 D3D11 : dEQP-GLES31.functional.program_interface_query.buffer_variable.referenced_by.separable_vertex.* = SKIP
|
||||
4329 D3D11 : dEQP-GLES31.functional.program_interface_query.buffer_variable.referenced_by.separable_fragment.* = SKIP
|
||||
4329 D3D11 : dEQP-GLES31.functional.program_interface_query.buffer_variable.random.* = SKIP
|
||||
|
@ -139,10 +143,6 @@
|
|||
// This case is skipped since it uses atomic counter builtin functions which haven't been implemented.
|
||||
1729 D3D11 : dEQP-GLES31.functional.state_query.program.active_atomic_counter_buffers_get_programiv = SKIP
|
||||
|
||||
// The D3D backend does not expect missing shader stages
|
||||
1588 D3D11 : dEQP-GLES31.functional.separate_shader.validation.es31.varying.* = SKIP
|
||||
|
||||
|
||||
////
|
||||
//// Failures blocking an official GLES 3.1 conformance run on SwiftShader
|
||||
////
|
||||
|
@ -202,16 +202,6 @@
|
|||
4371 VULKAN ANDROID : dEQP-GLES31.functional.shaders.implicit_conversions.es31.arithmetic.input_before_literal.add.int_to_uvec3_vertex = FAIL
|
||||
4371 SWIFTSHADER : dEQP-GLES31.functional.shaders.implicit_conversions.* = FAIL
|
||||
|
||||
// Swiftshader fails to create a correct source/destination srgb8_alpha8_astc image before copy, however 5x4 is correct
|
||||
5275 SWIFTSHADER NOSAN : dEQP-GLES31.functional.copy_image.*rgba*srgb8_alpha8_astc_*_khr.*_to_texture2d* = FAIL
|
||||
5275 SWIFTSHADER NOSAN : dEQP-GLES31.functional.copy_image.*rgba*srgb8_alpha8_astc_*_khr.*_to_cubemap* = FAIL
|
||||
5275 SWIFTSHADER NOSAN : dEQP-GLES31.functional.copy_image.*srgb8_alpha8_astc_*_khr_rgba*.*cubemap_to* = FAIL
|
||||
5275 SWIFTSHADER NOSAN : dEQP-GLES31.functional.copy_image.*srgb8_alpha8_astc_*_khr_rgba*.*texture2d*_to* = FAIL
|
||||
5275 SWIFTSHADER NOSAN : dEQP-GLES31.functional.copy_image.*srgb8_alpha8_astc_5x4_khr.*texture2d*_to_texture2d* = PASS
|
||||
5275 SWIFTSHADER NOSAN : dEQP-GLES31.functional.copy_image.*srgb8_alpha8_astc_5x4_khr.*texture2d*_to_cubemap = PASS
|
||||
5275 SWIFTSHADER NOSAN : dEQP-GLES31.functional.copy_image.*srgb8_alpha8_astc_5x4_khr.*cubemap*_to_texture2d* = PASS
|
||||
5275 SWIFTSHADER NOSAN : dEQP-GLES31.functional.copy_image.*srgb8_alpha8_astc_5x4_khr.*cubemap_to_cubemap = PASS
|
||||
|
||||
// Desktop cards without native etc support, angle emulated format fails
|
||||
5276 AMD VULKAN : dEQP-GLES31.functional.copy_image.compressed.viewclass_eac* = FAIL
|
||||
5276 AMD VULKAN : dEQP-GLES31.functional.copy_image.compressed.viewclass_etc* = FAIL
|
||||
|
@ -275,17 +265,6 @@
|
|||
5990 PIXEL4ORXL VULKAN : dEQP-GLES31.functional.android_extension_pack.extensions.oes_sample_variables = SKIP
|
||||
5990 PIXEL4ORXL VULKAN : dEQP-GLES31.functional.android_extension_pack.shaders.es31.extension_directive.oes_texture_storage_multisample_2d_array = SKIP
|
||||
5990 PIXEL4ORXL VULKAN : dEQP-GLES31.functional.android_extension_pack.shaders.es32.extension_directive.ext_shader_io_blocks = SKIP
|
||||
5990 PIXEL4ORXL VULKAN : dEQP-GLES31.functional.atomic_counter.get_dec.1_counter_100_calls_10_threads = SKIP
|
||||
5990 PIXEL4ORXL VULKAN : dEQP-GLES31.functional.atomic_counter.get_dec.4_counters_5_calls_10_threads = SKIP
|
||||
5990 PIXEL4ORXL VULKAN : dEQP-GLES31.functional.atomic_counter.get_inc_dec.8_counters_5_calls_10_threads = SKIP
|
||||
5990 PIXEL4ORXL VULKAN : dEQP-GLES31.functional.atomic_counter.inc.4_counters_100_calls_1_thread = SKIP
|
||||
5990 PIXEL4ORXL VULKAN : dEQP-GLES31.functional.atomic_counter.inc_branch.8_counters_5_calls_1_thread = SKIP
|
||||
5990 PIXEL4ORXL VULKAN : dEQP-GLES31.functional.atomic_counter.inc_dec_branch.8_counters_5_calls_1_thread = SKIP
|
||||
5990 PIXEL4ORXL VULKAN : dEQP-GLES31.functional.atomic_counter.layout.default_offset_set.get_dec.8_counters_5_calls_1_thread = SKIP
|
||||
5990 PIXEL4ORXL VULKAN : dEQP-GLES31.functional.atomic_counter.layout.default_offset_set.get_inc.8_counters_1_call_1000_threads = SKIP
|
||||
5990 PIXEL4ORXL VULKAN : dEQP-GLES31.functional.atomic_counter.layout.reset_default_offset.inc_dec.8_counters_1_call_1000_threads = SKIP
|
||||
5990 PIXEL4ORXL VULKAN : dEQP-GLES31.functional.atomic_counter.layout.reverse_offset.get_dec.8_counters_1_call_1000_threads = SKIP
|
||||
5990 PIXEL4ORXL VULKAN : dEQP-GLES31.functional.atomic_counter.layout.reverse_offset.inc_dec.8_counters_5_calls_1_thread = SKIP
|
||||
5990 PIXEL4ORXL VULKAN : dEQP-GLES31.functional.blend_equation_advanced.coherent.hsl_hue = SKIP
|
||||
5990 PIXEL4ORXL VULKAN : dEQP-GLES31.functional.blend_equation_advanced.msaa.colordodge = SKIP
|
||||
5990 PIXEL4ORXL VULKAN : dEQP-GLES31.functional.blend_equation_advanced.msaa.screen = SKIP
|
||||
|
@ -605,8 +584,6 @@
|
|||
5990 PIXEL4ORXL VULKAN : dEQP-GLES31.functional.copy_image.non_compressed.viewclass_32_bits.rgba8_snorm_rg16ui.texture2d_to_renderbuffer = SKIP
|
||||
5990 PIXEL4ORXL VULKAN : dEQP-GLES31.functional.copy_image.non_compressed.viewclass_32_bits.rgba8_snorm_rg16ui.texture3d_to_cubemap = SKIP
|
||||
5990 PIXEL4ORXL VULKAN : dEQP-GLES31.functional.copy_image.non_compressed.viewclass_32_bits.rgba8_snorm_rg16ui.texture3d_to_renderbuffer = SKIP
|
||||
5990 PIXEL4ORXL VULKAN : dEQP-GLES31.functional.copy_image.non_compressed.viewclass_32_bits.rgba8_snorm_rgb10_a2.texture2d_to_cubemap = SKIP
|
||||
5990 PIXEL4ORXL VULKAN : dEQP-GLES31.functional.copy_image.non_compressed.viewclass_32_bits.rgba8_snorm_rgb9_e5.cubemap_to_cubemap = SKIP
|
||||
5990 PIXEL4ORXL VULKAN : dEQP-GLES31.functional.copy_image.non_compressed.viewclass_32_bits.rgba8_snorm_rgba8i.texture3d_to_cubemap = SKIP
|
||||
5990 PIXEL4ORXL VULKAN : dEQP-GLES31.functional.copy_image.non_compressed.viewclass_32_bits.rgba8_snorm_rgba8ui.texture2d_array_to_texture2d_array = SKIP
|
||||
5990 PIXEL4ORXL VULKAN : dEQP-GLES31.functional.copy_image.non_compressed.viewclass_32_bits.rgba8i_r32ui.texture2d_array_to_cubemap = SKIP
|
||||
|
@ -733,10 +710,6 @@
|
|||
5990 PIXEL4ORXL VULKAN : dEQP-GLES31.functional.fbo.color.texcubearray.r11f_g11f_b10f = SKIP
|
||||
5990 PIXEL4ORXL VULKAN : dEQP-GLES31.functional.fbo.color.texcubearray.r16f = SKIP
|
||||
5990 PIXEL4ORXL VULKAN : dEQP-GLES31.functional.fbo.color.texcubearray.rgba4 = SKIP
|
||||
5990 PIXEL4ORXL VULKAN : dEQP-GLES31.functional.fbo.no_attachments.npot_size.1025x1025 = SKIP
|
||||
5990 PIXEL4ORXL VULKAN : dEQP-GLES31.functional.fbo.no_attachments.npot_size.31x31 = SKIP
|
||||
5990 PIXEL4ORXL VULKAN : dEQP-GLES31.functional.fbo.no_attachments.size.1024x1024 = SKIP
|
||||
5990 PIXEL4ORXL VULKAN : dEQP-GLES31.functional.fbo.no_attachments.size.256x1024 = SKIP
|
||||
5990 PIXEL4ORXL VULKAN : dEQP-GLES31.functional.geometry_shading.basic.output_max = SKIP
|
||||
5990 PIXEL4ORXL VULKAN : dEQP-GLES31.functional.geometry_shading.basic.primitive_id = SKIP
|
||||
5990 PIXEL4ORXL VULKAN : dEQP-GLES31.functional.geometry_shading.input.basic_primitive.line_strip = SKIP
|
||||
|
@ -757,7 +730,6 @@
|
|||
5990 PIXEL4ORXL VULKAN : dEQP-GLES31.functional.image_load_store.3d.atomic.max_r32ui_return_value = SKIP
|
||||
5990 PIXEL4ORXL VULKAN : dEQP-GLES31.functional.image_load_store.3d.atomic.xor_r32ui_result = SKIP
|
||||
5990 PIXEL4ORXL VULKAN : dEQP-GLES31.functional.image_load_store.3d.format_reinterpret.rgba16i_rgba16f = SKIP
|
||||
5990 PIXEL4ORXL VULKAN : dEQP-GLES31.functional.image_load_store.3d.store.rgba32i_single_layer = SKIP
|
||||
5990 PIXEL4ORXL VULKAN : dEQP-GLES31.functional.image_load_store.3d.store.rgba8_snorm = SKIP
|
||||
5990 PIXEL4ORXL VULKAN : dEQP-GLES31.functional.image_load_store.buffer.atomic.add_r32i_result = SKIP
|
||||
5990 PIXEL4ORXL VULKAN : dEQP-GLES31.functional.image_load_store.buffer.atomic.max_r32ui_result = SKIP
|
||||
|
@ -1381,9 +1353,6 @@
|
|||
// Fails when the expression being interpolated as an indexed varying array.
|
||||
6194 PIXEL4ORXL VULKAN : dEQP-GLES31.functional.shaders.multisample_interpolation.interpolate_at_offset.array_element.* = FAIL
|
||||
|
||||
// Slow tests.
|
||||
6021 : dEQP-GLES31.functional.ssbo.layout.random.all_shared_buffer.36 = TIMEOUT
|
||||
|
||||
// ASAN Test bugs
|
||||
6678 ASAN : dEQP-GLES31.functional.ssbo.array_length.* = SKIP
|
||||
6678 ASAN : dEQP-GLES31.functional.debug.negative_coverage.*.texparameter*v = SKIP
|
||||
|
|
|
@ -296,6 +296,12 @@
|
|||
// Flaky test
|
||||
3305 LINUX OPENGL : dEQP-GLES3.functional.shaders.builtin_functions.common.uintbitstofloat.uint_highp_vertex = FAIL
|
||||
|
||||
// Seems to fail on all desktop GL
|
||||
2960 OPENGL : dEQP-GLES3.functional.fbo.blit.default_framebuffer.srgb8_alpha8 = FAIL
|
||||
2960 OPENGL : dEQP-GLES3.functional.fbo.blit.default_framebuffer.srgb8_alpha8_linear_out_of_bounds_blit_to_default = FAIL
|
||||
2960 OPENGL : dEQP-GLES3.functional.fbo.blit.default_framebuffer.srgb8_alpha8_linear_scale_blit_to_default = FAIL
|
||||
2960 OPENGL : dEQP-GLES3.functional.fbo.blit.default_framebuffer.srgb8_alpha8_nearest_scale_blit_to_default = FAIL
|
||||
|
||||
// Mac failures (overbroad suppresions)
|
||||
3466 MAC OPENGL : dEQP-GLES3.functional.attribute_location.bind_aliasing.cond* = SKIP
|
||||
3466 MAC OPENGL : dEQP-GLES3.functional.attribute_location.bind_aliasing.max_cond* = SKIP
|
||||
|
@ -481,12 +487,6 @@
|
|||
2567 ANDROID GLES : dEQP-GLES3.functional.fbo.completeness.renderable.texture.stencil.red_unsigned_byte = FAIL
|
||||
2567 ANDROID GLES : dEQP-GLES3.functional.fbo.completeness.renderable.texture.stencil.rg_unsigned_byte = FAIL
|
||||
|
||||
// Seems to fail on all desktop GL
|
||||
2960 OPENGL : dEQP-GLES3.functional.fbo.blit.default_framebuffer.srgb8_alpha8 = FAIL
|
||||
2960 OPENGL : dEQP-GLES3.functional.fbo.blit.default_framebuffer.srgb8_alpha8_linear_out_of_bounds_blit_to_default = FAIL
|
||||
2960 OPENGL : dEQP-GLES3.functional.fbo.blit.default_framebuffer.srgb8_alpha8_linear_scale_blit_to_default = FAIL
|
||||
2960 OPENGL : dEQP-GLES3.functional.fbo.blit.default_framebuffer.srgb8_alpha8_nearest_scale_blit_to_default = FAIL
|
||||
|
||||
// Fails on Windows + Linux.
|
||||
2222 OPENGL NVIDIA : dEQP-GLES3.functional.fbo.completeness.samples.rbo2_rbo2_rbo0 = FAIL
|
||||
2222 OPENGL NVIDIA : dEQP-GLES3.functional.fbo.completeness.samples.rbo1_rbo2_rbo0 = FAIL
|
||||
|
|
|
@ -385,14 +385,10 @@ bool GPUTestExpectationsParser::loadAllTestExpectationsFromFile(const std::strin
|
|||
int32_t GPUTestExpectationsParser::getTestExpectationImpl(const GPUTestConfig *config,
|
||||
const std::string &testName)
|
||||
{
|
||||
size_t maxExpectationLen = 0;
|
||||
GPUTestExpectationEntry *foundEntry = nullptr;
|
||||
for (GPUTestExpectationEntry &entry : mEntries)
|
||||
{
|
||||
if (NamesMatchWithWildcard(entry.testName.c_str(), testName.c_str()))
|
||||
{
|
||||
size_t expectationLen = entry.testName.length();
|
||||
|
||||
// Filter by condition first.
|
||||
bool satisfiesConditions = true;
|
||||
if (config)
|
||||
|
@ -407,19 +403,14 @@ int32_t GPUTestExpectationsParser::getTestExpectationImpl(const GPUTestConfig *c
|
|||
}
|
||||
}
|
||||
|
||||
// The longest/most specific matching expectation overrides any others.
|
||||
if (satisfiesConditions && expectationLen > maxExpectationLen)
|
||||
// Use the first matching expectation in the file as the matching expression.
|
||||
if (satisfiesConditions)
|
||||
{
|
||||
maxExpectationLen = expectationLen;
|
||||
foundEntry = &entry;
|
||||
entry.used = true;
|
||||
return entry.testExpectation;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (foundEntry != nullptr)
|
||||
{
|
||||
foundEntry->used = true;
|
||||
return foundEntry->testExpectation;
|
||||
}
|
||||
return kGpuTestPass;
|
||||
}
|
||||
|
||||
|
|
|
@ -362,7 +362,6 @@ TEST_P(GPUTestExpectationsParserTest, GPUTestExpectationsParserMisspelledExpecta
|
|||
}
|
||||
}
|
||||
|
||||
// Wild characters that match groups of expectations can be overridden with more specific lines.
|
||||
// The parse should still compute correctly which lines were used and which were unused.
|
||||
TEST_P(GPUTestExpectationsParserTest, GPUTestExpectationsParserOverrideExpectation)
|
||||
{
|
||||
|
@ -370,20 +369,17 @@ TEST_P(GPUTestExpectationsParserTest, GPUTestExpectationsParserOverrideExpectati
|
|||
std::string line = R"(100 : dEQP-GLES31.functional.layout_binding.* = FAIL
|
||||
100 : dEQP-GLES31.functional.layout_binding.ubo.* = SKIP)";
|
||||
EXPECT_TRUE(load(line));
|
||||
EXPECT_TRUE(parser.getErrorMessages().empty());
|
||||
// Default behavior is to let missing tests pass
|
||||
EXPECT_EQ(get("dEQP-GLES31.functional.layout_binding.ubo.vertex_binding_max"),
|
||||
GPUTestExpectationsParser::kGpuTestSkip);
|
||||
GPUTestExpectationsParser::kGpuTestFail);
|
||||
// The FAIL expectation was unused because it was overridden.
|
||||
EXPECT_EQ(parser.getUnusedExpectationsMessages().size(), 1u);
|
||||
if (parser.getUnusedExpectationsMessages().size() >= 1)
|
||||
{
|
||||
EXPECT_EQ(parser.getUnusedExpectationsMessages()[0], "Line 1: expectation was unused.");
|
||||
}
|
||||
ASSERT_EQ(parser.getUnusedExpectationsMessages().size(), 1u);
|
||||
EXPECT_EQ(parser.getUnusedExpectationsMessages()[0], "Line 2: expectation was unused.");
|
||||
// Now try a test that doesn't match the override criteria
|
||||
EXPECT_EQ(get("dEQP-GLES31.functional.layout_binding.image.test"),
|
||||
GPUTestExpectationsParser::kGpuTestFail);
|
||||
EXPECT_TRUE(parser.getUnusedExpectationsMessages().empty());
|
||||
ASSERT_EQ(parser.getUnusedExpectationsMessages().size(), 1u);
|
||||
EXPECT_EQ(parser.getUnusedExpectationsMessages()[0], "Line 2: expectation was unused.");
|
||||
}
|
||||
|
||||
// This test is the same as GPUTestExpectationsParserOverrideExpectation, but verifying the order
|
||||
|
@ -394,7 +390,6 @@ TEST_P(GPUTestExpectationsParserTest, GPUTestExpectationsParserOverrideExpectati
|
|||
std::string line = R"(100 : dEQP-GLES31.functional.layout_binding.ubo.* = SKIP
|
||||
100 : dEQP-GLES31.functional.layout_binding.* = FAIL)";
|
||||
EXPECT_TRUE(load(line));
|
||||
EXPECT_TRUE(parser.getErrorMessages().empty());
|
||||
// Default behavior is to let missing tests pass
|
||||
EXPECT_EQ(get("dEQP-GLES31.functional.layout_binding.ubo.vertex_binding_max"),
|
||||
GPUTestExpectationsParser::kGpuTestSkip);
|
||||
|
|
Загрузка…
Ссылка в новой задаче