Allow wildcards in waiver vendor strings
authorMika Väinölä <mika.vainola@siru.fi>
Mon, 8 Feb 2021 11:01:23 +0000 (13:01 +0200)
committerJun Xu <jun.xu@arm.com>
Wed, 10 Mar 2021 03:01:31 +0000 (03:01 +0000)
Use wildcard matching instead of exact string comparison for GL
waiver vendor attributes. Use "Google*" prefix for ANGLE XFB
waiver and remove a duplicate ANGLE waiver.

VK-GL-CTS issue: 2770

Components: Framework, OpenGL

Change-Id: I0ffc54af6aaa4c562bf1e8b5077e365da71f9a3e
(cherry picked from commit 074fc201162b347720c4ba3a013101837edf2a8d)

external/openglcts/data/mustpass/waivers/waivers.xml
framework/common/tcuWaiverUtil.cpp

index cb04edc..0237556 100644 (file)
@@ -17,6 +17,7 @@
 */-->
        <!--/*
        Each <waiver> entry must contain vendor and url string attributes.
+       Vendor string can use wildcard *.
        Url should be a full path to gitlab issue(s).
        Waiver tag should contain one <description> child that describes issue.
        Waiver tag should containing one <renderer_list> child.
                <t>KHR-GL45.texture_view.view_classes</t>
                <t>KHR-GL46.texture_view.view_classes</t>
        </waiver>
-
+       <waiver vendor="Google*" url="https://gitlab.khronos.org/Tracker/vk-gl-cts/-/issues/2237">
+               <description>ANGLE is unable to capture individual array elements in transform feedback using VK_EXT_transform_feedback revision 1.</description>
+               <renderer_list>
+                       <r>ANGLE (Vulkan*</r>
+               </renderer_list>
+               <t>dEQP-GLES3.functional.transform_feedback.array_element.*</t>
+               <t>dEQP-GLES3.functional.transform_feedback.random.*</t>
+               <t>dEQP-GLES31.functional.program_interface_query.transform_feedback_varying.*_array_element</t>
+               <t>dEQP-GLES31.functional.program_interface_query.transform_feedback_varying.type.*.array.*</t>
+               <t>KHR-GLES31.core.program_interface_query.transform-feedback-types</t>
+       </waiver>
        <waiver vendor="Intel" url="https://gitlab.khronos.org/Tracker/vk-gl-cts/issues/2601">
                <description>Testing of wide-line attribute interpolation is too strict</description>
                <renderer_list>
                <t>dEQP-GLES3.functional.rasterization.interpolation.projected.lines_wide</t>
        </waiver>
 
-       <waiver vendor="Google Inc." url="https://gitlab.khronos.org/Tracker/vk-gl-cts/-/issues/2237">
-               <description>ANGLE is unable to capture individual array elements in transform feedback using VK_EXT_transform_feedback revision 1.</description>
-               <renderer_list>
-                       <r>ANGLE (Vulkan*</r>
-               </renderer_list>
-               <t>dEQP-GLES3.functional.transform_feedback.array_element.*</t>
-               <t>dEQP-GLES3.functional.transform_feedback.random.*</t>
-               <t>dEQP-GLES31.functional.program_interface_query.transform_feedback_varying.*_array_element</t>
-               <t>dEQP-GLES31.functional.program_interface_query.transform_feedback_varying.type.*.array.*</t>
-               <t>KHR-GLES31.core.program_interface_query.transform-feedback-types</t>
-       </waiver>
-
 </waiver_list>
index facaffe..09a1f19 100644 (file)
@@ -438,7 +438,11 @@ GLWaiverTreeBuilder::GLWaiverTreeBuilder(const std::string&                                waiverFile,
 
 bool GLWaiverTreeBuilder::matchVendor(const std::string& vendor) const
 {
-       return m_currentVendor == vendor;
+       return tcu::matchWildcards(vendor.cbegin(),
+                                                          vendor.cend(),
+                                                          m_currentVendor.cbegin(),
+                                                          m_currentVendor.cend(),
+                                                          false);
 }
 
 bool GLWaiverTreeBuilder::matchDevice(const std::string& device) const