[Piglit] [PATCH v2] glsl-1.10: add a 'initialization-incompatible-type-propagation' test

Danylo Piliaiev danylo.piliaiev at gmail.com
Wed Sep 19 16:02:35 UTC 2018


These tests test the case when initialising with incompatible type
changed a type of the variable being initialized.
While main manifestation of the issue is overly verbose and incorrect
error message it did result in a crash in case of second test.

v2: Splitted the test in several ones (Timothy Arceri)

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=107547
Signed-off-by: Danylo Piliaiev <danylo.piliaiev at globallogic.com>
---
 ...ation-incompatible-type-propagation-1.frag | 17 +++++++++++++++
 ...ation-incompatible-type-propagation-2.frag | 21 +++++++++++++++++++
 ...ation-incompatible-type-propagation-3.frag | 21 +++++++++++++++++++
 3 files changed, 59 insertions(+)
 create mode 100644 tests/spec/glsl-1.10/compiler/initialization-incompatible-type-propagation-1.frag
 create mode 100644 tests/spec/glsl-1.10/compiler/initialization-incompatible-type-propagation-2.frag
 create mode 100644 tests/spec/glsl-1.10/compiler/initialization-incompatible-type-propagation-3.frag

diff --git a/tests/spec/glsl-1.10/compiler/initialization-incompatible-type-propagation-1.frag b/tests/spec/glsl-1.10/compiler/initialization-incompatible-type-propagation-1.frag
new file mode 100644
index 000000000..df102c754
--- /dev/null
+++ b/tests/spec/glsl-1.10/compiler/initialization-incompatible-type-propagation-1.frag
@@ -0,0 +1,17 @@
+// [config]
+// expect_result: fail
+// glsl_version: 1.10
+// [end config]
+//
+// Initializing a variable using the variable with a wrong type
+// should not affect the type of the variable being initialized.
+// While we cannot check emitted error message the test at least
+// should not crash, see bug:
+// https://bugs.freedesktop.org/show_bug.cgi?id=107547
+
+#version 110
+
+void f() {
+    vec4 a = vec2(0.0);
+    a.w -= 1.0;
+}
diff --git a/tests/spec/glsl-1.10/compiler/initialization-incompatible-type-propagation-2.frag b/tests/spec/glsl-1.10/compiler/initialization-incompatible-type-propagation-2.frag
new file mode 100644
index 000000000..2ca8df4a3
--- /dev/null
+++ b/tests/spec/glsl-1.10/compiler/initialization-incompatible-type-propagation-2.frag
@@ -0,0 +1,21 @@
+// [config]
+// expect_result: fail
+// glsl_version: 1.10
+// [end config]
+//
+// Initializing a variable using the variable with a wrong type
+// should not affect the type of the variable being initialized.
+// While we cannot check emitted error message the test at least
+// should not crash, see bug:
+// https://bugs.freedesktop.org/show_bug.cgi?id=107547
+
+#version 110
+
+uniform struct {
+    float field;
+} data;
+
+void f() {
+    vec2 a = data;
+    a.x -= 1.0;
+}
diff --git a/tests/spec/glsl-1.10/compiler/initialization-incompatible-type-propagation-3.frag b/tests/spec/glsl-1.10/compiler/initialization-incompatible-type-propagation-3.frag
new file mode 100644
index 000000000..449fab8cd
--- /dev/null
+++ b/tests/spec/glsl-1.10/compiler/initialization-incompatible-type-propagation-3.frag
@@ -0,0 +1,21 @@
+// [config]
+// expect_result: fail
+// glsl_version: 1.10
+// [end config]
+//
+// Initializing a variable using the variable with a wrong type
+// should not affect the type of the variable being initialized.
+// While we cannot check emitted error message the test at least
+// should not crash, see bug:
+// https://bugs.freedesktop.org/show_bug.cgi?id=107547
+
+#version 110
+
+struct Data {
+    float field;
+};
+
+void f() {
+    Data a = vec2(0.0);
+    a.field -= 1.0;
+}
-- 
2.18.0



More information about the Piglit mailing list