[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