From 9682dfa1bbcfe4f08d4a96117ee29a45953e45e3 Mon Sep 17 00:00:00 2001 From: Danylo Piliaiev Date: Wed, 19 Sep 2018 19:02:35 +0300 Subject: 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 Reviewed-by: Timothy Arceri Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=107547 --- ...tialization-incompatible-type-propagation-1.frag | 17 +++++++++++++++++ ...tialization-incompatible-type-propagation-2.frag | 21 +++++++++++++++++++++ ...tialization-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; +} -- cgit v1.2.3