Mesa's GLSL implementation has different paths for these cases. Just make sure we cover them all.
Signed-off-by: Chris Forbes <[email protected]> --- .../interface-blocks-name-reused-globally-2.vert | 26 +++++++++++++++++++ .../interface-blocks-name-reused-globally-3.vert | 26 +++++++++++++++++++ .../interface-blocks-name-reused-globally-4.vert | 28 +++++++++++++++++++++ .../interface-blocks-name-reused-globally-5.vert | 28 +++++++++++++++++++++ .../interface-blocks-name-reused-globally-6.vert | 29 ++++++++++++++++++++++ 5 files changed, 137 insertions(+) create mode 100644 tests/spec/glsl-1.50/compiler/interface-blocks-name-reused-globally-2.vert create mode 100644 tests/spec/glsl-1.50/compiler/interface-blocks-name-reused-globally-3.vert create mode 100644 tests/spec/glsl-1.50/compiler/interface-blocks-name-reused-globally-4.vert create mode 100644 tests/spec/glsl-1.50/compiler/interface-blocks-name-reused-globally-5.vert create mode 100644 tests/spec/glsl-1.50/compiler/interface-blocks-name-reused-globally-6.vert diff --git a/tests/spec/glsl-1.50/compiler/interface-blocks-name-reused-globally-2.vert b/tests/spec/glsl-1.50/compiler/interface-blocks-name-reused-globally-2.vert new file mode 100644 index 0000000..94c6266 --- /dev/null +++ b/tests/spec/glsl-1.50/compiler/interface-blocks-name-reused-globally-2.vert @@ -0,0 +1,26 @@ +// [config] +// expect_result: fail +// glsl_version: 1.50 +// check_link: true +// [end config] +// +// GLSLangSpec.1.50.11, 4.3.7 Interface Blocks: +// "Block names have no other use within a shader beyond interface matching; +// it is an error to use a block name at global scope for anything other than +// as a block name." +// +// Tests that an interface block name may not be reused globally as anything +// other than as a block name. + +#version 150 + +out block { + vec4 a; +} inst; + +vec4 block; + +void main() +{ +} + diff --git a/tests/spec/glsl-1.50/compiler/interface-blocks-name-reused-globally-3.vert b/tests/spec/glsl-1.50/compiler/interface-blocks-name-reused-globally-3.vert new file mode 100644 index 0000000..9ae6c07 --- /dev/null +++ b/tests/spec/glsl-1.50/compiler/interface-blocks-name-reused-globally-3.vert @@ -0,0 +1,26 @@ +// [config] +// expect_result: fail +// glsl_version: 1.50 +// check_link: true +// [end config] +// +// GLSLangSpec.1.50.11, 4.3.7 Interface Blocks: +// "Block names have no other use within a shader beyond interface matching; +// it is an error to use a block name at global scope for anything other than +// as a block name." +// +// Tests that an interface block name may not be reused globally as anything +// other than as a block name. + +#version 150 + +out block { + vec4 a; +} inst; + +vec4 block() { return vec4(0); } + +void main() +{ +} + diff --git a/tests/spec/glsl-1.50/compiler/interface-blocks-name-reused-globally-4.vert b/tests/spec/glsl-1.50/compiler/interface-blocks-name-reused-globally-4.vert new file mode 100644 index 0000000..2a35e7f --- /dev/null +++ b/tests/spec/glsl-1.50/compiler/interface-blocks-name-reused-globally-4.vert @@ -0,0 +1,28 @@ +// [config] +// expect_result: fail +// glsl_version: 1.50 +// check_link: true +// [end config] +// +// GLSLangSpec.1.50.11, 4.3.7 Interface Blocks: +// "Block names have no other use within a shader beyond interface matching; +// it is an error to use a block name at global scope for anything other than +// as a block name." +// +// Tests that an interface block name may not be reused globally as anything +// other than as a block name. + +#version 150 + +out block { + vec4 a; +} inst; + +struct block { + vec4 z; +}; + +void main() +{ +} + diff --git a/tests/spec/glsl-1.50/compiler/interface-blocks-name-reused-globally-5.vert b/tests/spec/glsl-1.50/compiler/interface-blocks-name-reused-globally-5.vert new file mode 100644 index 0000000..c6f2b24 --- /dev/null +++ b/tests/spec/glsl-1.50/compiler/interface-blocks-name-reused-globally-5.vert @@ -0,0 +1,28 @@ +// [config] +// expect_result: fail +// glsl_version: 1.50 +// check_link: true +// [end config] +// +// GLSLangSpec.1.50.11, 4.3.7 Interface Blocks: +// "Block names have no other use within a shader beyond interface matching; +// it is an error to use a block name at global scope for anything other than +// as a block name." +// +// Tests that an interface block name may not be reused globally as anything +// other than as a block name. + +#version 150 + +struct block { + vec4 z; +}; + +out block { + vec4 a; +} inst; + +void main() +{ +} + diff --git a/tests/spec/glsl-1.50/compiler/interface-blocks-name-reused-globally-6.vert b/tests/spec/glsl-1.50/compiler/interface-blocks-name-reused-globally-6.vert new file mode 100644 index 0000000..a2ea8c0 --- /dev/null +++ b/tests/spec/glsl-1.50/compiler/interface-blocks-name-reused-globally-6.vert @@ -0,0 +1,29 @@ +// [config] +// expect_result: fail +// glsl_version: 1.50 +// check_link: true +// [end config] +// +// GLSLangSpec.1.50.11, 4.3.7 Interface Blocks: +// "Block names have no other use within a shader beyond interface matching; +// it is an error to use a block name at global scope for anything other than +// as a block name." +// +// Tests that an interface block name may not be reused globally as anything +// other than as a block name. + +#version 150 + +vec4 block() +{ + return vec4(0); +} + +out block { + vec4 a; +} inst; + +void main() +{ +} + -- 2.1.3 _______________________________________________ Piglit mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/piglit
