diff options
author | Danylo Piliaiev <danylo.piliaiev@gmail.com> | 2018-09-19 19:02:35 +0300 |
---|---|---|
committer | Timothy Arceri <tarceri@itsqueeze.com> | 2018-09-20 08:38:14 +1000 |
commit | 9682dfa1bbcfe4f08d4a96117ee29a45953e45e3 (patch) | |
tree | 47e4600bde2bc88854da0037174648b106547de4 | |
parent | 1a8e582aadd8b93bf167cf13a5779a21db4770a0 (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
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; +} |