Increase negative GLSL coverage
authorPiotr Byszewski <piotr.byszewski@mobica.com>
Thu, 14 Sep 2017 14:06:49 +0000 (16:06 +0200)
committerAlexander Galazin <Alexander.Galazin@arm.com>
Mon, 9 Oct 2017 11:57:09 +0000 (07:57 -0400)
GLSL and ESSL specify that the following are legal declarations:
  int;
  int ,a;
while the following are not:
  struct foo { int; };
  struct bar { int ,a; };
  int a,;

Components: OpenGL

VK-GL-CTS issue: 7

Affects:
KHR-GL33.shaders.declarations.*
KHR-GLES3.shaders.declarations.*

Change-Id: Ib1735ca96e4ce7be60fa0ca91c64f7392b237605

13 files changed:
external/openglcts/data/gl33/declarations.test [new file with mode: 0644]
external/openglcts/data/gles3/declarations.test [new file with mode: 0644]
external/openglcts/data/mustpass/gl/khronos_mustpass/4.6.0.x/gl33-master.txt
external/openglcts/data/mustpass/gl/khronos_mustpass/4.6.0.x/gl40-master.txt
external/openglcts/data/mustpass/gl/khronos_mustpass/4.6.0.x/gl41-master.txt
external/openglcts/data/mustpass/gl/khronos_mustpass/4.6.0.x/gl42-master.txt
external/openglcts/data/mustpass/gl/khronos_mustpass/4.6.0.x/gl43-master.txt
external/openglcts/data/mustpass/gl/khronos_mustpass/4.6.0.x/gl44-master.txt
external/openglcts/data/mustpass/gl/khronos_mustpass/4.6.0.x/gl45-master.txt
external/openglcts/data/mustpass/gl/khronos_mustpass/4.6.0.x/gl46-master.txt
external/openglcts/data/mustpass/gles/khronos_mustpass/master/gles3-khr-master.txt
external/openglcts/modules/gl/gl3cTestPackages.cpp
external/openglcts/modules/gles3/es3cTestPackage.cpp

diff --git a/external/openglcts/data/gl33/declarations.test b/external/openglcts/data/gl33/declarations.test
new file mode 100644 (file)
index 0000000..e1ed76a
--- /dev/null
@@ -0,0 +1,71 @@
+group declarations "Declarations"
+
+       case missing_variable_name
+               version 330
+               both ""
+                       #version 330
+                       ${DECLARATIONS}
+                       void main()
+                       {
+                               int;
+                               ${OUTPUT}
+                       }
+               ""
+       end
+
+       case comma_preceding_variable
+               version 330
+               both ""
+                       #version 330
+                       ${DECLARATIONS}
+                       void main()
+                       {
+                               int ,a;
+                               ${OUTPUT}
+                       }
+               ""
+       end
+
+       case comma_following_variable
+               version 330
+               expect compile_fail
+               both ""
+                       #version 330
+                       ${DECLARATIONS}
+                       void main()
+                       {
+                               int a,;
+                               ${OUTPUT}
+                       }
+               ""
+       end
+
+       case struct_missing_attribute_name
+               version 330
+               expect compile_fail
+               both ""
+                       #version 330
+                       ${DECLARATIONS}
+                       void main()
+                       {
+                               struct Data { int; };
+                               ${OUTPUT}
+                       }
+               ""
+       end
+
+       case struct_comma_preceding_attribute
+               version 330
+               expect compile_fail
+               both ""
+                       #version 330
+                       ${DECLARATIONS}
+                       void main()
+                       {
+                               struct Data { int ,a; };
+                               ${OUTPUT}
+                       }
+               ""
+       end
+
+end # invalid_declarations
diff --git a/external/openglcts/data/gles3/declarations.test b/external/openglcts/data/gles3/declarations.test
new file mode 100644 (file)
index 0000000..ab36693
--- /dev/null
@@ -0,0 +1,76 @@
+group declarations "Declarations"
+
+       case missing_variable_name
+               version 300 es
+               both ""
+                       #version 300 es
+                       precision mediump int;
+                       ${DECLARATIONS}
+                       void main()
+                       {
+                               int;
+                               ${OUTPUT}
+                       }
+               ""
+       end
+
+       case comma_preceding_variable
+               version 300 es
+               both ""
+                       #version 300 es
+                       precision mediump int;
+                       ${DECLARATIONS}
+                       void main()
+                       {
+                               int ,a;
+                               ${OUTPUT}
+                       }
+               ""
+       end
+
+       case comma_following_variable
+               version 300 es
+               expect compile_fail
+               both ""
+                       #version 300 es
+                       precision mediump int;
+                       ${DECLARATIONS}
+                       void main()
+                       {
+                               int a,;
+                               ${OUTPUT}
+                       }
+               ""
+       end
+
+       case struct_missing_attribute_name
+               version 300 es
+               expect compile_fail
+               both ""
+                       #version 300 es
+                       precision mediump int;
+                       ${DECLARATIONS}
+                       void main()
+                       {
+                               struct Data { int; };
+                               ${OUTPUT}
+                       }
+               ""
+       end
+
+       case struct_comma_preceding_attribute
+               version 300 es
+               expect compile_fail
+               both ""
+                       #version 300 es
+                       precision mediump int;
+                       ${DECLARATIONS}
+                       void main()
+                       {
+                               struct Data { int ,a; };
+                               ${OUTPUT}
+                       }
+               ""
+       end
+
+end # invalid_declarations
index 70932ae..01ff2e9 100644 (file)
@@ -327,6 +327,16 @@ KHR-GL33.shaders.arrays.invalid.constructor_c-style1_vertex
 KHR-GL33.shaders.arrays.invalid.constructor_c-style1_fragment
 KHR-GL33.shaders.arrays.invalid.constructor_c-style2_vertex
 KHR-GL33.shaders.arrays.invalid.constructor_c-style2_fragment
+KHR-GL33.shaders.declarations.declarations.missing_variable_name_vertex
+KHR-GL33.shaders.declarations.declarations.missing_variable_name_fragment
+KHR-GL33.shaders.declarations.declarations.comma_preceding_variable_vertex
+KHR-GL33.shaders.declarations.declarations.comma_preceding_variable_fragment
+KHR-GL33.shaders.declarations.declarations.comma_following_variable_vertex
+KHR-GL33.shaders.declarations.declarations.comma_following_variable_fragment
+KHR-GL33.shaders.declarations.declarations.struct_missing_attribute_name_vertex
+KHR-GL33.shaders.declarations.declarations.struct_missing_attribute_name_fragment
+KHR-GL33.shaders.declarations.declarations.struct_comma_preceding_attribute_vertex
+KHR-GL33.shaders.declarations.declarations.struct_comma_preceding_attribute_fragment
 KHR-GL33.shaders.fragdepth.write.no_write
 KHR-GL33.shaders.fragdepth.write.const
 KHR-GL33.shaders.fragdepth.write.uniform
index 8a84d33..c2bb16b 100644 (file)
@@ -327,6 +327,16 @@ KHR-GL40.shaders.arrays.invalid.constructor_c-style1_vertex
 KHR-GL40.shaders.arrays.invalid.constructor_c-style1_fragment
 KHR-GL40.shaders.arrays.invalid.constructor_c-style2_vertex
 KHR-GL40.shaders.arrays.invalid.constructor_c-style2_fragment
+KHR-GL40.shaders.declarations.declarations.missing_variable_name_vertex
+KHR-GL40.shaders.declarations.declarations.missing_variable_name_fragment
+KHR-GL40.shaders.declarations.declarations.comma_preceding_variable_vertex
+KHR-GL40.shaders.declarations.declarations.comma_preceding_variable_fragment
+KHR-GL40.shaders.declarations.declarations.comma_following_variable_vertex
+KHR-GL40.shaders.declarations.declarations.comma_following_variable_fragment
+KHR-GL40.shaders.declarations.declarations.struct_missing_attribute_name_vertex
+KHR-GL40.shaders.declarations.declarations.struct_missing_attribute_name_fragment
+KHR-GL40.shaders.declarations.declarations.struct_comma_preceding_attribute_vertex
+KHR-GL40.shaders.declarations.declarations.struct_comma_preceding_attribute_fragment
 KHR-GL40.shaders.fragdepth.write.no_write
 KHR-GL40.shaders.fragdepth.write.const
 KHR-GL40.shaders.fragdepth.write.uniform
index f4a618b..1668556 100644 (file)
@@ -327,6 +327,16 @@ KHR-GL41.shaders.arrays.invalid.constructor_c-style1_vertex
 KHR-GL41.shaders.arrays.invalid.constructor_c-style1_fragment
 KHR-GL41.shaders.arrays.invalid.constructor_c-style2_vertex
 KHR-GL41.shaders.arrays.invalid.constructor_c-style2_fragment
+KHR-GL41.shaders.declarations.declarations.missing_variable_name_vertex
+KHR-GL41.shaders.declarations.declarations.missing_variable_name_fragment
+KHR-GL41.shaders.declarations.declarations.comma_preceding_variable_vertex
+KHR-GL41.shaders.declarations.declarations.comma_preceding_variable_fragment
+KHR-GL41.shaders.declarations.declarations.comma_following_variable_vertex
+KHR-GL41.shaders.declarations.declarations.comma_following_variable_fragment
+KHR-GL41.shaders.declarations.declarations.struct_missing_attribute_name_vertex
+KHR-GL41.shaders.declarations.declarations.struct_missing_attribute_name_fragment
+KHR-GL41.shaders.declarations.declarations.struct_comma_preceding_attribute_vertex
+KHR-GL41.shaders.declarations.declarations.struct_comma_preceding_attribute_fragment
 KHR-GL41.shaders.fragdepth.write.no_write
 KHR-GL41.shaders.fragdepth.write.const
 KHR-GL41.shaders.fragdepth.write.uniform
index 643345e..d5c0eeb 100644 (file)
@@ -327,6 +327,16 @@ KHR-GL42.shaders.arrays.invalid.constructor_c-style1_vertex
 KHR-GL42.shaders.arrays.invalid.constructor_c-style1_fragment
 KHR-GL42.shaders.arrays.invalid.constructor_c-style2_vertex
 KHR-GL42.shaders.arrays.invalid.constructor_c-style2_fragment
+KHR-GL42.shaders.declarations.declarations.missing_variable_name_vertex
+KHR-GL42.shaders.declarations.declarations.missing_variable_name_fragment
+KHR-GL42.shaders.declarations.declarations.comma_preceding_variable_vertex
+KHR-GL42.shaders.declarations.declarations.comma_preceding_variable_fragment
+KHR-GL42.shaders.declarations.declarations.comma_following_variable_vertex
+KHR-GL42.shaders.declarations.declarations.comma_following_variable_fragment
+KHR-GL42.shaders.declarations.declarations.struct_missing_attribute_name_vertex
+KHR-GL42.shaders.declarations.declarations.struct_missing_attribute_name_fragment
+KHR-GL42.shaders.declarations.declarations.struct_comma_preceding_attribute_vertex
+KHR-GL42.shaders.declarations.declarations.struct_comma_preceding_attribute_fragment
 KHR-GL42.shaders.fragdepth.write.no_write
 KHR-GL42.shaders.fragdepth.write.const
 KHR-GL42.shaders.fragdepth.write.uniform
index d3f41db..95ab4c5 100644 (file)
@@ -327,6 +327,16 @@ KHR-GL43.shaders.arrays.invalid.constructor_c-style1_vertex
 KHR-GL43.shaders.arrays.invalid.constructor_c-style1_fragment
 KHR-GL43.shaders.arrays.invalid.constructor_c-style2_vertex
 KHR-GL43.shaders.arrays.invalid.constructor_c-style2_fragment
+KHR-GL43.shaders.declarations.declarations.missing_variable_name_vertex
+KHR-GL43.shaders.declarations.declarations.missing_variable_name_fragment
+KHR-GL43.shaders.declarations.declarations.comma_preceding_variable_vertex
+KHR-GL43.shaders.declarations.declarations.comma_preceding_variable_fragment
+KHR-GL43.shaders.declarations.declarations.comma_following_variable_vertex
+KHR-GL43.shaders.declarations.declarations.comma_following_variable_fragment
+KHR-GL43.shaders.declarations.declarations.struct_missing_attribute_name_vertex
+KHR-GL43.shaders.declarations.declarations.struct_missing_attribute_name_fragment
+KHR-GL43.shaders.declarations.declarations.struct_comma_preceding_attribute_vertex
+KHR-GL43.shaders.declarations.declarations.struct_comma_preceding_attribute_fragment
 KHR-GL43.shaders.fragdepth.write.no_write
 KHR-GL43.shaders.fragdepth.write.const
 KHR-GL43.shaders.fragdepth.write.uniform
index df8f182..011b6af 100644 (file)
@@ -327,6 +327,16 @@ KHR-GL44.shaders.arrays.invalid.constructor_c-style1_vertex
 KHR-GL44.shaders.arrays.invalid.constructor_c-style1_fragment
 KHR-GL44.shaders.arrays.invalid.constructor_c-style2_vertex
 KHR-GL44.shaders.arrays.invalid.constructor_c-style2_fragment
+KHR-GL44.shaders.declarations.declarations.missing_variable_name_vertex
+KHR-GL44.shaders.declarations.declarations.missing_variable_name_fragment
+KHR-GL44.shaders.declarations.declarations.comma_preceding_variable_vertex
+KHR-GL44.shaders.declarations.declarations.comma_preceding_variable_fragment
+KHR-GL44.shaders.declarations.declarations.comma_following_variable_vertex
+KHR-GL44.shaders.declarations.declarations.comma_following_variable_fragment
+KHR-GL44.shaders.declarations.declarations.struct_missing_attribute_name_vertex
+KHR-GL44.shaders.declarations.declarations.struct_missing_attribute_name_fragment
+KHR-GL44.shaders.declarations.declarations.struct_comma_preceding_attribute_vertex
+KHR-GL44.shaders.declarations.declarations.struct_comma_preceding_attribute_fragment
 KHR-GL44.shaders.fragdepth.write.no_write
 KHR-GL44.shaders.fragdepth.write.const
 KHR-GL44.shaders.fragdepth.write.uniform
index 4f4f6a0..6571a5f 100644 (file)
@@ -327,6 +327,16 @@ KHR-GL45.shaders.arrays.invalid.constructor_c-style1_vertex
 KHR-GL45.shaders.arrays.invalid.constructor_c-style1_fragment
 KHR-GL45.shaders.arrays.invalid.constructor_c-style2_vertex
 KHR-GL45.shaders.arrays.invalid.constructor_c-style2_fragment
+KHR-GL45.shaders.declarations.declarations.missing_variable_name_vertex
+KHR-GL45.shaders.declarations.declarations.missing_variable_name_fragment
+KHR-GL45.shaders.declarations.declarations.comma_preceding_variable_vertex
+KHR-GL45.shaders.declarations.declarations.comma_preceding_variable_fragment
+KHR-GL45.shaders.declarations.declarations.comma_following_variable_vertex
+KHR-GL45.shaders.declarations.declarations.comma_following_variable_fragment
+KHR-GL45.shaders.declarations.declarations.struct_missing_attribute_name_vertex
+KHR-GL45.shaders.declarations.declarations.struct_missing_attribute_name_fragment
+KHR-GL45.shaders.declarations.declarations.struct_comma_preceding_attribute_vertex
+KHR-GL45.shaders.declarations.declarations.struct_comma_preceding_attribute_fragment
 KHR-GL45.shaders.fragdepth.write.no_write
 KHR-GL45.shaders.fragdepth.write.const
 KHR-GL45.shaders.fragdepth.write.uniform
index 008a702..dcc7dec 100644 (file)
@@ -327,6 +327,16 @@ KHR-GL46.shaders.arrays.invalid.constructor_c-style1_vertex
 KHR-GL46.shaders.arrays.invalid.constructor_c-style1_fragment
 KHR-GL46.shaders.arrays.invalid.constructor_c-style2_vertex
 KHR-GL46.shaders.arrays.invalid.constructor_c-style2_fragment
+KHR-GL46.shaders.declarations.declarations.missing_variable_name_vertex
+KHR-GL46.shaders.declarations.declarations.missing_variable_name_fragment
+KHR-GL46.shaders.declarations.declarations.comma_preceding_variable_vertex
+KHR-GL46.shaders.declarations.declarations.comma_preceding_variable_fragment
+KHR-GL46.shaders.declarations.declarations.comma_following_variable_vertex
+KHR-GL46.shaders.declarations.declarations.comma_following_variable_fragment
+KHR-GL46.shaders.declarations.declarations.struct_missing_attribute_name_vertex
+KHR-GL46.shaders.declarations.declarations.struct_missing_attribute_name_fragment
+KHR-GL46.shaders.declarations.declarations.struct_comma_preceding_attribute_vertex
+KHR-GL46.shaders.declarations.declarations.struct_comma_preceding_attribute_fragment
 KHR-GL46.shaders.fragdepth.write.no_write
 KHR-GL46.shaders.fragdepth.write.const
 KHR-GL46.shaders.fragdepth.write.uniform
index 678e772..0e2e637 100644 (file)
@@ -110,6 +110,16 @@ KHR-GLES3.shaders.arrays.invalid.constructor_c-style1_vertex
 KHR-GLES3.shaders.arrays.invalid.constructor_c-style1_fragment
 KHR-GLES3.shaders.arrays.invalid.constructor_c-style2_vertex
 KHR-GLES3.shaders.arrays.invalid.constructor_c-style2_fragment
+KHR-GLES3.shaders.declarations.declarations.missing_variable_name_vertex
+KHR-GLES3.shaders.declarations.declarations.missing_variable_name_fragment
+KHR-GLES3.shaders.declarations.declarations.comma_preceding_variable_vertex
+KHR-GLES3.shaders.declarations.declarations.comma_preceding_variable_fragment
+KHR-GLES3.shaders.declarations.declarations.comma_following_variable_vertex
+KHR-GLES3.shaders.declarations.declarations.comma_following_variable_fragment
+KHR-GLES3.shaders.declarations.declarations.struct_missing_attribute_name_vertex
+KHR-GLES3.shaders.declarations.declarations.struct_missing_attribute_name_fragment
+KHR-GLES3.shaders.declarations.declarations.struct_comma_preceding_attribute_vertex
+KHR-GLES3.shaders.declarations.declarations.struct_comma_preceding_attribute_fragment
 KHR-GLES3.shaders.fragdepth.write.no_write
 KHR-GLES3.shaders.fragdepth.write.const
 KHR-GLES3.shaders.fragdepth.write.uniform
index c3b5a14..262bf0c 100644 (file)
@@ -233,6 +233,8 @@ public:
        void init(void)
        {
                addChild(new deqp::ShaderLibraryGroup(m_context, "arrays", "Array Tests", "gl33/arrays.test"));
+               addChild(
+                       new deqp::ShaderLibraryGroup(m_context, "declarations", "Declaration Tests", "gl33/declarations.test"));
                addChild(new deqp::FragDepthTests(m_context, glu::GLSL_VERSION_330));
                addChild(new deqp::ShaderIndexingTests(m_context, glu::GLSL_VERSION_330));
                addChild(new deqp::ShaderLoopTests(m_context, glu::GLSL_VERSION_330));
index f3cdae8..b14d428 100644 (file)
@@ -126,6 +126,7 @@ public:
        void init(void)
        {
                addChild(new deqp::ShaderLibraryGroup(m_context, "arrays", "Array Tests", "arrays.test"));
+               addChild(new deqp::ShaderLibraryGroup(m_context, "declarations", "Declaration Tests", "declarations.test"));
                addChild(new deqp::FragDepthTests(m_context, glu::GLSL_VERSION_300_ES));
                addChild(new deqp::ShaderIndexingTests(m_context, glu::GLSL_VERSION_300_ES));
                addChild(new deqp::ShaderLoopTests(m_context, glu::GLSL_VERSION_300_ES));