[Piglit] [PATCH] glsl-1.10 Adds tests on how void functions are handled

Renaud Gaubert renaud at lse.epita.fr
Tue Jul 7 12:52:10 PDT 2015


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



More information about the Piglit mailing list