diff --git a/src/tests/angle_end2end_tests_expectations.txt b/src/tests/angle_end2end_tests_expectations.txt index 5ebffd6f1..b36bf4add 100644 --- a/src/tests/angle_end2end_tests_expectations.txt +++ b/src/tests/angle_end2end_tests_expectations.txt @@ -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 diff --git a/src/tests/deqp_support/README.md b/src/tests/deqp_support/README.md index dd59bc82a..c34c94064 100644 --- a/src/tests/deqp_support/README.md +++ b/src/tests/deqp_support/README.md @@ -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: diff --git a/src/tests/deqp_support/deqp_egl_test_expectations.txt b/src/tests/deqp_support/deqp_egl_test_expectations.txt index d25074561..60a3d9a5f 100644 --- a/src/tests/deqp_support/deqp_egl_test_expectations.txt +++ b/src/tests/deqp_support/deqp_egl_test_expectations.txt @@ -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 diff --git a/src/tests/deqp_support/deqp_gles2_test_expectations.txt b/src/tests/deqp_support/deqp_gles2_test_expectations.txt index 75935a0d1..6cbe80c0d 100644 --- a/src/tests/deqp_support/deqp_gles2_test_expectations.txt +++ b/src/tests/deqp_support/deqp_gles2_test_expectations.txt @@ -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 diff --git a/src/tests/deqp_support/deqp_gles31_test_expectations.txt b/src/tests/deqp_support/deqp_gles31_test_expectations.txt index 8ab868c23..abef4acbc 100644 --- a/src/tests/deqp_support/deqp_gles31_test_expectations.txt +++ b/src/tests/deqp_support/deqp_gles31_test_expectations.txt @@ -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 diff --git a/src/tests/deqp_support/deqp_gles3_test_expectations.txt b/src/tests/deqp_support/deqp_gles3_test_expectations.txt index 24bddfcaf..cd6ede68f 100644 --- a/src/tests/deqp_support/deqp_gles3_test_expectations.txt +++ b/src/tests/deqp_support/deqp_gles3_test_expectations.txt @@ -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 diff --git a/src/tests/test_expectations/GPUTestExpectationsParser.cpp b/src/tests/test_expectations/GPUTestExpectationsParser.cpp index 186004ff5..7be218dfb 100644 --- a/src/tests/test_expectations/GPUTestExpectationsParser.cpp +++ b/src/tests/test_expectations/GPUTestExpectationsParser.cpp @@ -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; } diff --git a/src/tests/test_expectations/GPUTestExpectationsParser_unittest.cpp b/src/tests/test_expectations/GPUTestExpectationsParser_unittest.cpp index ffa3aaed1..15e0dcadf 100644 --- a/src/tests/test_expectations/GPUTestExpectationsParser_unittest.cpp +++ b/src/tests/test_expectations/GPUTestExpectationsParser_unittest.cpp @@ -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);