[Piglit] [PATCH 2/2] arb_shading_language_420pack: Added some few more struct initializing tests

Andres Gomez agomez at igalia.com
Fri Aug 5 14:43:25 UTC 2016


This set focus on checking invalid structs
initializations. Specifically, adds a test to check that only implicit
conversions are perform and vector conversions of the type vec3 to
vec2 through dropping the z component are not allowed.
---
 ...e-initializer-struct-wrong-bool-type-struct.frag | 20 ++++++++++++++++++++
 ...e-initializer-struct-wrong-struct-type-bool.frag | 20 ++++++++++++++++++++
 ...initializer-struct-wrong-struct-type-struct.frag | 21 +++++++++++++++++++++
 ...ate-initializer-struct-wrong-vec2-type-vec3.frag | 18 ++++++++++++++++++
 4 files changed, 79 insertions(+)
 create mode 100644 tests/spec/arb_shading_language_420pack/compiler/illegal-aggregate-initializer-struct-wrong-bool-type-struct.frag
 create mode 100644 tests/spec/arb_shading_language_420pack/compiler/illegal-aggregate-initializer-struct-wrong-struct-type-bool.frag
 create mode 100644 tests/spec/arb_shading_language_420pack/compiler/illegal-aggregate-initializer-struct-wrong-struct-type-struct.frag
 create mode 100644 tests/spec/arb_shading_language_420pack/compiler/illegal-aggregate-initializer-struct-wrong-vec2-type-vec3.frag

diff --git a/tests/spec/arb_shading_language_420pack/compiler/illegal-aggregate-initializer-struct-wrong-bool-type-struct.frag b/tests/spec/arb_shading_language_420pack/compiler/illegal-aggregate-initializer-struct-wrong-bool-type-struct.frag
new file mode 100644
index 0000000..57ec89c
--- /dev/null
+++ b/tests/spec/arb_shading_language_420pack/compiler/illegal-aggregate-initializer-struct-wrong-bool-type-struct.frag
@@ -0,0 +1,20 @@
+/* [config]
+ * expect_result: fail
+ * glsl_version: 1.30
+ * require_extensions: GL_ARB_shading_language_420pack
+ * [end config]
+ */
+
+#version 130
+#extension GL_ARB_shading_language_420pack: enable
+
+struct s { bool f; };
+
+void main() {
+    // Illegal since e.b is bool, but struct given as initializer
+    struct {
+        float a;
+        bool b;
+    } e = { 1.2, s(true) };
+    gl_FragColor = vec4(1.0);
+}
diff --git a/tests/spec/arb_shading_language_420pack/compiler/illegal-aggregate-initializer-struct-wrong-struct-type-bool.frag b/tests/spec/arb_shading_language_420pack/compiler/illegal-aggregate-initializer-struct-wrong-struct-type-bool.frag
new file mode 100644
index 0000000..739835d
--- /dev/null
+++ b/tests/spec/arb_shading_language_420pack/compiler/illegal-aggregate-initializer-struct-wrong-struct-type-bool.frag
@@ -0,0 +1,20 @@
+/* [config]
+ * expect_result: fail
+ * glsl_version: 1.30
+ * require_extensions: GL_ARB_shading_language_420pack
+ * [end config]
+ */
+
+#version 130
+#extension GL_ARB_shading_language_420pack: enable
+
+struct s { float f; };
+
+void main() {
+    // Illegal since e.b is struct s, but bool given as initializer
+    struct {
+        float a;
+        s b;
+    } e = { 1.2, true };
+    gl_FragColor = vec4(1.0);
+}
diff --git a/tests/spec/arb_shading_language_420pack/compiler/illegal-aggregate-initializer-struct-wrong-struct-type-struct.frag b/tests/spec/arb_shading_language_420pack/compiler/illegal-aggregate-initializer-struct-wrong-struct-type-struct.frag
new file mode 100644
index 0000000..ab72dfc
--- /dev/null
+++ b/tests/spec/arb_shading_language_420pack/compiler/illegal-aggregate-initializer-struct-wrong-struct-type-struct.frag
@@ -0,0 +1,21 @@
+/* [config]
+ * expect_result: fail
+ * glsl_version: 1.30
+ * require_extensions: GL_ARB_shading_language_420pack
+ * [end config]
+ */
+
+#version 130
+#extension GL_ARB_shading_language_420pack: enable
+
+struct s1 { float f; };
+struct s2 { bool f; bool g; };
+
+void main() {
+    // Illegal since e.b is struct s1, but a struct s2 given as initializer
+    struct {
+        float a;
+        s1 b;
+    } e = { 1.2, s2(true, false) };
+    gl_FragColor = vec4(1.0);
+}
diff --git a/tests/spec/arb_shading_language_420pack/compiler/illegal-aggregate-initializer-struct-wrong-vec2-type-vec3.frag b/tests/spec/arb_shading_language_420pack/compiler/illegal-aggregate-initializer-struct-wrong-vec2-type-vec3.frag
new file mode 100644
index 0000000..0648f05
--- /dev/null
+++ b/tests/spec/arb_shading_language_420pack/compiler/illegal-aggregate-initializer-struct-wrong-vec2-type-vec3.frag
@@ -0,0 +1,18 @@
+/* [config]
+ * expect_result: fail
+ * glsl_version: 1.30
+ * require_extensions: GL_ARB_shading_language_420pack
+ * [end config]
+ */
+
+#version 130
+#extension GL_ARB_shading_language_420pack: enable
+
+void main() {
+    // Illegal since e.b is vec2, but a vec3 given as initializer and only “Implicit Conversions.” are allowed
+    struct {
+        float a;
+        vec2 b;
+    } e = { 1.2, vec3(1.0, 0.0, 1.0) };
+    gl_FragColor = vec4(1.0);
+}
-- 
2.8.1



More information about the Piglit mailing list