Mesa (glsl2): glcpp: Add several tests for diagnostics.

Carl Worth cworth at kemper.freedesktop.org
Wed Aug 11 21:38:10 UTC 2010


Module: Mesa
Branch: glsl2
Commit: cb5ea0c79bd74ea6263d54302ed19c243ceb05de
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=cb5ea0c79bd74ea6263d54302ed19c243ceb05de

Author: Carl Worth <cworth at cworth.org>
Date:   Wed Aug 11 13:48:13 2010 -0700

glcpp: Add several tests for diagnostics.

Which are proving to be useful since some of these tests are not yet
acting as desired, (in particular, the unterminated if test is not
generating any diagnostic).

---

 .../tests/070-undefined-macro-in-expression.c      |    2 ++
 .../070-undefined-macro-in-expression.c.expected   |    2 ++
 src/glsl/glcpp/tests/077-else-without-if.c         |    1 +
 .../glcpp/tests/077-else-without-if.c.expected     |    4 ++++
 src/glsl/glcpp/tests/078-elif-without-if.c         |    1 +
 .../glcpp/tests/078-elif-without-if.c.expected     |    4 ++++
 src/glsl/glcpp/tests/079-endif-without-if.c        |    1 +
 .../glcpp/tests/079-endif-without-if.c.expected    |    4 ++++
 src/glsl/glcpp/tests/080-if-without-expression.c   |    4 ++++
 .../tests/080-if-without-expression.c.expected     |    3 +++
 src/glsl/glcpp/tests/081-elif-without-expression.c |    3 +++
 .../tests/081-elif-without-expression.c.expected   |    6 ++++++
 src/glsl/glcpp/tests/082-invalid-paste.c           |    2 ++
 src/glsl/glcpp/tests/082-invalid-paste.c.expected  |    5 +++++
 src/glsl/glcpp/tests/083-unterminated-if.c         |    2 ++
 src/glsl/glcpp/tests/084-unbalanced-parentheses.c  |    2 ++
 .../glcpp/tests/085-incorrect-argument-count.c     |    5 +++++
 .../tests/085-incorrect-argument-count.c.expected  |   12 ++++++++++++
 src/glsl/glcpp/tests/086-reserved-macro-names.c    |    2 ++
 .../tests/086-reserved-macro-names.c.expected      |    7 +++++++
 20 files changed, 72 insertions(+), 0 deletions(-)

diff --git a/src/glsl/glcpp/tests/070-undefined-macro-in-expression.c b/src/glsl/glcpp/tests/070-undefined-macro-in-expression.c
new file mode 100644
index 0000000..b6dc2ba
--- /dev/null
+++ b/src/glsl/glcpp/tests/070-undefined-macro-in-expression.c
@@ -0,0 +1,2 @@
+#if UNDEFINED_MACRO
+#endif
diff --git a/src/glsl/glcpp/tests/070-undefined-macro-in-expression.c.expected b/src/glsl/glcpp/tests/070-undefined-macro-in-expression.c.expected
new file mode 100644
index 0000000..2bb38a1
--- /dev/null
+++ b/src/glsl/glcpp/tests/070-undefined-macro-in-expression.c.expected
@@ -0,0 +1,2 @@
+0:1(21): preprocessor error: syntax error, unexpected IDENTIFIER
+
diff --git a/src/glsl/glcpp/tests/077-else-without-if.c b/src/glsl/glcpp/tests/077-else-without-if.c
new file mode 100644
index 0000000..81f00bf
--- /dev/null
+++ b/src/glsl/glcpp/tests/077-else-without-if.c
@@ -0,0 +1 @@
+#else
diff --git a/src/glsl/glcpp/tests/077-else-without-if.c.expected b/src/glsl/glcpp/tests/077-else-without-if.c.expected
new file mode 100644
index 0000000..d289b36
--- /dev/null
+++ b/src/glsl/glcpp/tests/077-else-without-if.c.expected
@@ -0,0 +1,4 @@
+0:1(2): preprocessor error: else without #if
+
+
+
diff --git a/src/glsl/glcpp/tests/078-elif-without-if.c b/src/glsl/glcpp/tests/078-elif-without-if.c
new file mode 100644
index 0000000..60466b3
--- /dev/null
+++ b/src/glsl/glcpp/tests/078-elif-without-if.c
@@ -0,0 +1 @@
+#elif defined FOO
diff --git a/src/glsl/glcpp/tests/078-elif-without-if.c.expected b/src/glsl/glcpp/tests/078-elif-without-if.c.expected
new file mode 100644
index 0000000..7d41f0a
--- /dev/null
+++ b/src/glsl/glcpp/tests/078-elif-without-if.c.expected
@@ -0,0 +1,4 @@
+0:1(2): preprocessor error: elif without #if
+
+
+
diff --git a/src/glsl/glcpp/tests/079-endif-without-if.c b/src/glsl/glcpp/tests/079-endif-without-if.c
new file mode 100644
index 0000000..69331c3
--- /dev/null
+++ b/src/glsl/glcpp/tests/079-endif-without-if.c
@@ -0,0 +1 @@
+#endif
diff --git a/src/glsl/glcpp/tests/079-endif-without-if.c.expected b/src/glsl/glcpp/tests/079-endif-without-if.c.expected
new file mode 100644
index 0000000..08dd335
--- /dev/null
+++ b/src/glsl/glcpp/tests/079-endif-without-if.c.expected
@@ -0,0 +1,4 @@
+0:1(2): preprocessor error: #endif without #if
+
+
+
diff --git a/src/glsl/glcpp/tests/080-if-without-expression.c b/src/glsl/glcpp/tests/080-if-without-expression.c
new file mode 100644
index 0000000..a27ba36
--- /dev/null
+++ b/src/glsl/glcpp/tests/080-if-without-expression.c
@@ -0,0 +1,4 @@
+/* Error message for unskipped #if with no expression. */
+#if
+#endif
+
diff --git a/src/glsl/glcpp/tests/080-if-without-expression.c.expected b/src/glsl/glcpp/tests/080-if-without-expression.c.expected
new file mode 100644
index 0000000..1a3e383
--- /dev/null
+++ b/src/glsl/glcpp/tests/080-if-without-expression.c.expected
@@ -0,0 +1,3 @@
+0:2(1): preprocessor error: #if with no expression
+
+ 
diff --git a/src/glsl/glcpp/tests/081-elif-without-expression.c b/src/glsl/glcpp/tests/081-elif-without-expression.c
new file mode 100644
index 0000000..79c7866
--- /dev/null
+++ b/src/glsl/glcpp/tests/081-elif-without-expression.c
@@ -0,0 +1,3 @@
+#if 0
+#elif
+#endif
diff --git a/src/glsl/glcpp/tests/081-elif-without-expression.c.expected b/src/glsl/glcpp/tests/081-elif-without-expression.c.expected
new file mode 100644
index 0000000..37dcdc3
--- /dev/null
+++ b/src/glsl/glcpp/tests/081-elif-without-expression.c.expected
@@ -0,0 +1,6 @@
+0:2(1): preprocessor error: #elif with no expression
+
+
+
+
+
diff --git a/src/glsl/glcpp/tests/082-invalid-paste.c b/src/glsl/glcpp/tests/082-invalid-paste.c
new file mode 100644
index 0000000..40bf644
--- /dev/null
+++ b/src/glsl/glcpp/tests/082-invalid-paste.c
@@ -0,0 +1,2 @@
+#define PASTE(x,y) x ## y
+PASTE(<,>)
diff --git a/src/glsl/glcpp/tests/082-invalid-paste.c.expected b/src/glsl/glcpp/tests/082-invalid-paste.c.expected
new file mode 100644
index 0000000..2c92440
--- /dev/null
+++ b/src/glsl/glcpp/tests/082-invalid-paste.c.expected
@@ -0,0 +1,5 @@
+0:2(7): preprocessor error: 
+Pasting "<" and ">" does not give a valid preprocessing token.
+
+<
+
diff --git a/src/glsl/glcpp/tests/083-unterminated-if.c b/src/glsl/glcpp/tests/083-unterminated-if.c
new file mode 100644
index 0000000..9180635
--- /dev/null
+++ b/src/glsl/glcpp/tests/083-unterminated-if.c
@@ -0,0 +1,2 @@
+#if 1
+
diff --git a/src/glsl/glcpp/tests/084-unbalanced-parentheses.c b/src/glsl/glcpp/tests/084-unbalanced-parentheses.c
new file mode 100644
index 0000000..0789ba5
--- /dev/null
+++ b/src/glsl/glcpp/tests/084-unbalanced-parentheses.c
@@ -0,0 +1,2 @@
+#define FUNC(x) (2*(x))
+FUNC(23
diff --git a/src/glsl/glcpp/tests/085-incorrect-argument-count.c b/src/glsl/glcpp/tests/085-incorrect-argument-count.c
new file mode 100644
index 0000000..91bea60
--- /dev/null
+++ b/src/glsl/glcpp/tests/085-incorrect-argument-count.c
@@ -0,0 +1,5 @@
+#define MULT(x,y) ((x)*(y))
+MULT()
+MULT(1)
+MULT(1,2,3)
+
diff --git a/src/glsl/glcpp/tests/085-incorrect-argument-count.c.expected b/src/glsl/glcpp/tests/085-incorrect-argument-count.c.expected
new file mode 100644
index 0000000..1df30cb
--- /dev/null
+++ b/src/glsl/glcpp/tests/085-incorrect-argument-count.c.expected
@@ -0,0 +1,12 @@
+0:2(1): preprocessor error: Error: macro MULT invoked with 1 arguments (expected 2)
+
+0:3(1): preprocessor error: Error: macro MULT invoked with 1 arguments (expected 2)
+
+0:4(1): preprocessor error: Error: macro MULT invoked with 3 arguments (expected 2)
+
+
+MULT()
+MULT(1)
+MULT(1,2,3)
+
+
diff --git a/src/glsl/glcpp/tests/086-reserved-macro-names.c b/src/glsl/glcpp/tests/086-reserved-macro-names.c
new file mode 100644
index 0000000..fd0c29f
--- /dev/null
+++ b/src/glsl/glcpp/tests/086-reserved-macro-names.c
@@ -0,0 +1,2 @@
+#define __BAD reserved
+#define GL_ALSO_BAD() also reserved
diff --git a/src/glsl/glcpp/tests/086-reserved-macro-names.c.expected b/src/glsl/glcpp/tests/086-reserved-macro-names.c.expected
new file mode 100644
index 0000000..6a9df68
--- /dev/null
+++ b/src/glsl/glcpp/tests/086-reserved-macro-names.c.expected
@@ -0,0 +1,7 @@
+0:1(10): preprocessor error: Macro names starting with "__" are reserved.
+
+0:2(9): preprocessor error: Macro names starting with "GL_" are reserved.
+
+
+
+




More information about the mesa-commit mailing list