[Piglit] [PATCH] glsl-1.10 Adds tests on how void functions are handled
Chris Forbes
chrisf at ijw.co.nz
Tue Jul 7 19:29:08 PDT 2015
Reviewed-by: Chis Forbes <chrisf at ijw.co.nz>
On Wed, Jul 8, 2015 at 7:52 AM, Renaud Gaubert <renaud at lse.epita.fr> wrote:
> Mesa currently doesn't handle void functions and segfaults on
> almost all of the test cases.
>
> This also references the bug 85252 Segfault in compiler while
> processing ternary operator with void arguments:
>
> This will be fixed with the following commit sent to mesa-dev:
> [PATCH] glsl: fix Bug 85252 - Segfault in compiler while processing
> ternary operator with void arguments
>
> Signed-off-by: Renaud Gaubert <renaud at lse.epita.fr>
> CC: Gabriel Laskar <gabriel at lse.epita.fr>
> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=85252
> ---
> .../glsl-1.10/compiler/void/void-array_subscript.vert | 15 +++++++++++++++
> tests/spec/glsl-1.10/compiler/void/void-assignment.vert | 15 +++++++++++++++
> tests/spec/glsl-1.10/compiler/void/void-equal.vert | 16 ++++++++++++++++
> .../glsl-1.10/compiler/void/void-field_selection.vert | 15 +++++++++++++++
> tests/spec/glsl-1.10/compiler/void/void-logical_and.vert | 15 +++++++++++++++
> tests/spec/glsl-1.10/compiler/void/void-logical_or.vert | 15 +++++++++++++++
> tests/spec/glsl-1.10/compiler/void/void-logical_xor.vert | 15 +++++++++++++++
> tests/spec/glsl-1.10/compiler/void/void-lt.vert | 16 ++++++++++++++++
> tests/spec/glsl-1.10/compiler/void/void-plus.vert | 15 +++++++++++++++
> tests/spec/glsl-1.10/compiler/void/void-plus_assign.vert | 16 ++++++++++++++++
> .../glsl-1.10/compiler/void/void-postfix_increment.vert | 15 +++++++++++++++
> .../glsl-1.10/compiler/void/void-prefix_increment.vert | 15 +++++++++++++++
> tests/spec/glsl-1.10/compiler/void/void-unary_plus.vert | 15 +++++++++++++++
> tests/spec/glsl-1.30/compiler/void/void-and_assign.vert | 16 ++++++++++++++++
> tests/spec/glsl-1.30/compiler/void/void-bitwise_and.vert | 15 +++++++++++++++
> tests/spec/glsl-1.30/compiler/void/void-lshift.vert | 15 +++++++++++++++
> tests/spec/glsl-1.30/compiler/void/void-mod.vert | 15 +++++++++++++++
> tests/spec/glsl-1.30/compiler/void/void-mod_assign.vert | 16 ++++++++++++++++
> tests/spec/glsl-1.30/compiler/void/void-rshift.vert | 15 +++++++++++++++
> .../spec/glsl-1.30/compiler/void/void-shift_assign.vert | 16 ++++++++++++++++
> tests/spec/glsl-1.30/compiler/void/void-unary_not.vert | 15 +++++++++++++++
> tests/spec/glsl-1.30/compiler/void/void-unary_tilde.vert | 15 +++++++++++++++
> 22 files changed, 336 insertions(+)
> create mode 100644 tests/spec/glsl-1.10/compiler/void/void-array_subscript.vert
> create mode 100644 tests/spec/glsl-1.10/compiler/void/void-assignment.vert
> create mode 100644 tests/spec/glsl-1.10/compiler/void/void-equal.vert
> create mode 100644 tests/spec/glsl-1.10/compiler/void/void-field_selection.vert
> create mode 100644 tests/spec/glsl-1.10/compiler/void/void-logical_and.vert
> create mode 100644 tests/spec/glsl-1.10/compiler/void/void-logical_or.vert
> create mode 100644 tests/spec/glsl-1.10/compiler/void/void-logical_xor.vert
> create mode 100644 tests/spec/glsl-1.10/compiler/void/void-lt.vert
> create mode 100644 tests/spec/glsl-1.10/compiler/void/void-plus.vert
> create mode 100644 tests/spec/glsl-1.10/compiler/void/void-plus_assign.vert
> create mode 100644 tests/spec/glsl-1.10/compiler/void/void-postfix_increment.vert
> create mode 100644 tests/spec/glsl-1.10/compiler/void/void-prefix_increment.vert
> create mode 100644 tests/spec/glsl-1.10/compiler/void/void-unary_plus.vert
> create mode 100644 tests/spec/glsl-1.30/compiler/void/void-and_assign.vert
> create mode 100644 tests/spec/glsl-1.30/compiler/void/void-bitwise_and.vert
> create mode 100644 tests/spec/glsl-1.30/compiler/void/void-lshift.vert
> create mode 100644 tests/spec/glsl-1.30/compiler/void/void-mod.vert
> create mode 100644 tests/spec/glsl-1.30/compiler/void/void-mod_assign.vert
> create mode 100644 tests/spec/glsl-1.30/compiler/void/void-rshift.vert
> create mode 100644 tests/spec/glsl-1.30/compiler/void/void-shift_assign.vert
> create mode 100644 tests/spec/glsl-1.30/compiler/void/void-unary_not.vert
> create mode 100644 tests/spec/glsl-1.30/compiler/void/void-unary_tilde.vert
>
> diff --git a/tests/spec/glsl-1.10/compiler/void/void-array_subscript.vert b/tests/spec/glsl-1.10/compiler/void/void-array_subscript.vert
> new file mode 100644
> index 0000000..0cf3de6
> --- /dev/null
> +++ b/tests/spec/glsl-1.10/compiler/void/void-array_subscript.vert
> @@ -0,0 +1,15 @@
> +/*[config]
> + * expect_result: fail
> + * glsl_version: 1.10
> + * [end config]
> + */
> +
> +#version 110
> +
> +void f(void)
> +{}
> +
> +void main()
> +{
> + f()[0];
> +}
> diff --git a/tests/spec/glsl-1.10/compiler/void/void-assignment.vert b/tests/spec/glsl-1.10/compiler/void/void-assignment.vert
> new file mode 100644
> index 0000000..da889bd
> --- /dev/null
> +++ b/tests/spec/glsl-1.10/compiler/void/void-assignment.vert
> @@ -0,0 +1,15 @@
> +/*[config]
> + * expect_result: fail
> + * glsl_version: 1.10
> + * [end config]
> + */
> +
> +#version 110
> +
> +void f(void)
> +{}
> +
> +void main()
> +{
> + float y = f();
> +}
> diff --git a/tests/spec/glsl-1.10/compiler/void/void-equal.vert b/tests/spec/glsl-1.10/compiler/void/void-equal.vert
> new file mode 100644
> index 0000000..a107600
> --- /dev/null
> +++ b/tests/spec/glsl-1.10/compiler/void/void-equal.vert
> @@ -0,0 +1,16 @@
> +/*[config]
> + * expect_result: fail
> + * glsl_version: 1.10
> + * [end config]
> + */
> +
> +#version 110
> +
> +void f(void)
> +{}
> +
> +void main()
> +{
> + if (f() == f())
> + f();
> +}
> diff --git a/tests/spec/glsl-1.10/compiler/void/void-field_selection.vert b/tests/spec/glsl-1.10/compiler/void/void-field_selection.vert
> new file mode 100644
> index 0000000..2165d7c
> --- /dev/null
> +++ b/tests/spec/glsl-1.10/compiler/void/void-field_selection.vert
> @@ -0,0 +1,15 @@
> +/*[config]
> + * expect_result: fail
> + * glsl_version: 1.10
> + * [end config]
> + */
> +
> +#version 110
> +
> +void f(void)
> +{}
> +
> +void main()
> +{
> + f().test;
> +}
> diff --git a/tests/spec/glsl-1.10/compiler/void/void-logical_and.vert b/tests/spec/glsl-1.10/compiler/void/void-logical_and.vert
> new file mode 100644
> index 0000000..fe7bfb1
> --- /dev/null
> +++ b/tests/spec/glsl-1.10/compiler/void/void-logical_and.vert
> @@ -0,0 +1,15 @@
> +/*[config]
> + * expect_result: fail
> + * glsl_version: 1.10
> + * [end config]
> + */
> +
> +#version 110
> +
> +void f(void)
> +{}
> +
> +void main()
> +{
> + f() && f();
> +}
> diff --git a/tests/spec/glsl-1.10/compiler/void/void-logical_or.vert b/tests/spec/glsl-1.10/compiler/void/void-logical_or.vert
> new file mode 100644
> index 0000000..260e58c
> --- /dev/null
> +++ b/tests/spec/glsl-1.10/compiler/void/void-logical_or.vert
> @@ -0,0 +1,15 @@
> +/*[config]
> + * expect_result: fail
> + * glsl_version: 1.10
> + * [end config]
> + */
> +
> +#version 110
> +
> +void f(void)
> +{}
> +
> +void main()
> +{
> + f() || 1;
> +}
> diff --git a/tests/spec/glsl-1.10/compiler/void/void-logical_xor.vert b/tests/spec/glsl-1.10/compiler/void/void-logical_xor.vert
> new file mode 100644
> index 0000000..1935909
> --- /dev/null
> +++ b/tests/spec/glsl-1.10/compiler/void/void-logical_xor.vert
> @@ -0,0 +1,15 @@
> +/*[config]
> + * expect_result: fail
> + * glsl_version: 1.10
> + * [end config]
> + */
> +
> +#version 110
> +
> +void f(void)
> +{}
> +
> +void main()
> +{
> + f() ^^ 1;
> +}
> diff --git a/tests/spec/glsl-1.10/compiler/void/void-lt.vert b/tests/spec/glsl-1.10/compiler/void/void-lt.vert
> new file mode 100644
> index 0000000..aca4c72
> --- /dev/null
> +++ b/tests/spec/glsl-1.10/compiler/void/void-lt.vert
> @@ -0,0 +1,16 @@
> +/*[config]
> + * expect_result: fail
> + * glsl_version: 1.10
> + * [end config]
> + */
> +
> +#version 110
> +
> +void f(void)
> +{}
> +
> +void main()
> +{
> + if (f() < f())
> + f();
> +}
> diff --git a/tests/spec/glsl-1.10/compiler/void/void-plus.vert b/tests/spec/glsl-1.10/compiler/void/void-plus.vert
> new file mode 100644
> index 0000000..a5c6466
> --- /dev/null
> +++ b/tests/spec/glsl-1.10/compiler/void/void-plus.vert
> @@ -0,0 +1,15 @@
> +/*[config]
> + * expect_result: fail
> + * glsl_version: 1.10
> + * [end config]
> + */
> +
> +#version 110
> +
> +void f(void)
> +{}
> +
> +void main()
> +{
> + f() + f();
> +}
> diff --git a/tests/spec/glsl-1.10/compiler/void/void-plus_assign.vert b/tests/spec/glsl-1.10/compiler/void/void-plus_assign.vert
> new file mode 100644
> index 0000000..4e59b27
> --- /dev/null
> +++ b/tests/spec/glsl-1.10/compiler/void/void-plus_assign.vert
> @@ -0,0 +1,16 @@
> +/*[config]
> + * expect_result: fail
> + * glsl_version: 1.10
> + * [end config]
> + */
> +
> +#version 110
> +
> +void f(void)
> +{}
> +
> +void main()
> +{
> + float y = 1.0;
> + y *= f();
> +}
> diff --git a/tests/spec/glsl-1.10/compiler/void/void-postfix_increment.vert b/tests/spec/glsl-1.10/compiler/void/void-postfix_increment.vert
> new file mode 100644
> index 0000000..153d534
> --- /dev/null
> +++ b/tests/spec/glsl-1.10/compiler/void/void-postfix_increment.vert
> @@ -0,0 +1,15 @@
> +/*[config]
> + * expect_result: fail
> + * glsl_version: 1.10
> + * [end config]
> + */
> +
> +#version 110
> +
> +void f(void)
> +{}
> +
> +void main()
> +{
> + f()++;
> +}
> diff --git a/tests/spec/glsl-1.10/compiler/void/void-prefix_increment.vert b/tests/spec/glsl-1.10/compiler/void/void-prefix_increment.vert
> new file mode 100644
> index 0000000..6aa9332
> --- /dev/null
> +++ b/tests/spec/glsl-1.10/compiler/void/void-prefix_increment.vert
> @@ -0,0 +1,15 @@
> +/*[config]
> + * expect_result: fail
> + * glsl_version: 1.10
> + * [end config]
> + */
> +
> +#version 110
> +
> +void f(void)
> +{}
> +
> +void main()
> +{
> + ++f();
> +}
> diff --git a/tests/spec/glsl-1.10/compiler/void/void-unary_plus.vert b/tests/spec/glsl-1.10/compiler/void/void-unary_plus.vert
> new file mode 100644
> index 0000000..7bea0b1
> --- /dev/null
> +++ b/tests/spec/glsl-1.10/compiler/void/void-unary_plus.vert
> @@ -0,0 +1,15 @@
> +/*[config]
> + * expect_result: fail
> + * glsl_version: 1.10
> + * [end config]
> + */
> +
> +#version 110
> +
> +void f(void)
> +{}
> +
> +void main()
> +{
> + +f();
> +}
> diff --git a/tests/spec/glsl-1.30/compiler/void/void-and_assign.vert b/tests/spec/glsl-1.30/compiler/void/void-and_assign.vert
> new file mode 100644
> index 0000000..027ae1d
> --- /dev/null
> +++ b/tests/spec/glsl-1.30/compiler/void/void-and_assign.vert
> @@ -0,0 +1,16 @@
> +/*[config]
> + * expect_result: fail
> + * glsl_version: 1.30
> + * [end config]
> + */
> +
> +#version 130
> +
> +void f(void)
> +{}
> +
> +void main()
> +{
> + int y = 1;
> + y &= f();
> +}
> diff --git a/tests/spec/glsl-1.30/compiler/void/void-bitwise_and.vert b/tests/spec/glsl-1.30/compiler/void/void-bitwise_and.vert
> new file mode 100644
> index 0000000..6bd3635
> --- /dev/null
> +++ b/tests/spec/glsl-1.30/compiler/void/void-bitwise_and.vert
> @@ -0,0 +1,15 @@
> +/*[config]
> + * expect_result: fail
> + * glsl_version: 1.30
> + * [end config]
> + */
> +
> +#version 130
> +
> +void f(void)
> +{}
> +
> +void main()
> +{
> + f() & 1;
> +}
> diff --git a/tests/spec/glsl-1.30/compiler/void/void-lshift.vert b/tests/spec/glsl-1.30/compiler/void/void-lshift.vert
> new file mode 100644
> index 0000000..f50ac1f
> --- /dev/null
> +++ b/tests/spec/glsl-1.30/compiler/void/void-lshift.vert
> @@ -0,0 +1,15 @@
> +/*[config]
> + * expect_result: fail
> + * glsl_version: 1.30
> + * [end config]
> + */
> +
> +#version 130
> +
> +void f(void)
> +{}
> +
> +void main()
> +{
> + f() << f();
> +}
> diff --git a/tests/spec/glsl-1.30/compiler/void/void-mod.vert b/tests/spec/glsl-1.30/compiler/void/void-mod.vert
> new file mode 100644
> index 0000000..6e26a71
> --- /dev/null
> +++ b/tests/spec/glsl-1.30/compiler/void/void-mod.vert
> @@ -0,0 +1,15 @@
> +/*[config]
> + * expect_result: fail
> + * glsl_version: 1.30
> + * [end config]
> + */
> +
> +#version 130
> +
> +void f(void)
> +{}
> +
> +void main()
> +{
> + f() % f();
> +}
> diff --git a/tests/spec/glsl-1.30/compiler/void/void-mod_assign.vert b/tests/spec/glsl-1.30/compiler/void/void-mod_assign.vert
> new file mode 100644
> index 0000000..df7618a
> --- /dev/null
> +++ b/tests/spec/glsl-1.30/compiler/void/void-mod_assign.vert
> @@ -0,0 +1,16 @@
> +/*[config]
> + * expect_result: fail
> + * glsl_version: 1.30
> + * [end config]
> + */
> +
> +#version 130
> +
> +void f(void)
> +{}
> +
> +void main()
> +{
> + int y = 1;
> + y %= f();
> +}
> diff --git a/tests/spec/glsl-1.30/compiler/void/void-rshift.vert b/tests/spec/glsl-1.30/compiler/void/void-rshift.vert
> new file mode 100644
> index 0000000..8410cb5
> --- /dev/null
> +++ b/tests/spec/glsl-1.30/compiler/void/void-rshift.vert
> @@ -0,0 +1,15 @@
> +/*[config]
> + * expect_result: fail
> + * glsl_version: 1.30
> + * [end config]
> + */
> +
> +#version 130
> +
> +void f(void)
> +{}
> +
> +void main()
> +{
> + f() >> f();
> +}
> diff --git a/tests/spec/glsl-1.30/compiler/void/void-shift_assign.vert b/tests/spec/glsl-1.30/compiler/void/void-shift_assign.vert
> new file mode 100644
> index 0000000..c44fd51
> --- /dev/null
> +++ b/tests/spec/glsl-1.30/compiler/void/void-shift_assign.vert
> @@ -0,0 +1,16 @@
> +/*[config]
> + * expect_result: fail
> + * glsl_version: 1.30
> + * [end config]
> + */
> +
> +#version 130
> +
> +void f(void)
> +{}
> +
> +void main()
> +{
> + int y = 1;
> + y <<= f();
> +}
> diff --git a/tests/spec/glsl-1.30/compiler/void/void-unary_not.vert b/tests/spec/glsl-1.30/compiler/void/void-unary_not.vert
> new file mode 100644
> index 0000000..45a8ebb
> --- /dev/null
> +++ b/tests/spec/glsl-1.30/compiler/void/void-unary_not.vert
> @@ -0,0 +1,15 @@
> +/*[config]
> + * expect_result: fail
> + * glsl_version: 1.30
> + * [end config]
> + */
> +
> +#version 130
> +
> +void f(void)
> +{}
> +
> +void main()
> +{
> + !f();
> +}
> diff --git a/tests/spec/glsl-1.30/compiler/void/void-unary_tilde.vert b/tests/spec/glsl-1.30/compiler/void/void-unary_tilde.vert
> new file mode 100644
> index 0000000..05f4e24
> --- /dev/null
> +++ b/tests/spec/glsl-1.30/compiler/void/void-unary_tilde.vert
> @@ -0,0 +1,15 @@
> +/*[config]
> + * expect_result: fail
> + * glsl_version: 1.30
> + * [end config]
> + */
> +
> +#version 130
> +
> +void f(void)
> +{}
> +
> +void main()
> +{
> + ~f();
> +}
> --
> 2.4.5
>
> _______________________________________________
> Piglit mailing list
> Piglit at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/piglit
More information about the Piglit
mailing list