summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDanylo Piliaiev <danylo.piliaiev@gmail.com>2018-09-19 19:02:35 +0300
committerTimothy Arceri <tarceri@itsqueeze.com>2018-09-20 08:38:14 +1000
commit9682dfa1bbcfe4f08d4a96117ee29a45953e45e3 (patch)
tree47e4600bde2bc88854da0037174648b106547de4
parent1a8e582aadd8b93bf167cf13a5779a21db4770a0 (diff)
glsl-1.10: add a 'initialization-incompatible-type-propagation' test
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) Signed-off-by: Danylo Piliaiev <danylo.piliaiev@globallogic.com> Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=107547
-rw-r--r--tests/spec/glsl-1.10/compiler/initialization-incompatible-type-propagation-1.frag17
-rw-r--r--tests/spec/glsl-1.10/compiler/initialization-incompatible-type-propagation-2.frag21
-rw-r--r--tests/spec/glsl-1.10/compiler/initialization-incompatible-type-propagation-3.frag21
3 files changed, 59 insertions, 0 deletions
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;
+}