glsl: Add glcpp tests for a macro used twice
authorCarl Worth <cworth@cworth.org>
Thu, 2 Feb 2012 19:27:55 +0000 (11:27 -0800)
committerCarl Worth <cworth@cworth.org>
Thu, 2 Feb 2012 20:05:21 +0000 (12:05 -0800)
This test cases exposes a bug as described in this bug report:

"ralloc.c:78: get_header: Assertion `info->canary == 0x5A1106'
failed." when using a macro in GLSL
https://bugs.freedesktop.org/show_bug.cgi?id=45082

Clearly, some memory is getting (incorrectly) freed on the first macro
invocation, leading to problems with the second macro invocation.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
src/glsl/glcpp/tests/101-macros-used-twice.c [new file with mode: 0644]
src/glsl/glcpp/tests/101-macros-used-twice.c.expected [new file with mode: 0644]

diff --git a/src/glsl/glcpp/tests/101-macros-used-twice.c b/src/glsl/glcpp/tests/101-macros-used-twice.c
new file mode 100644 (file)
index 0000000..e169380
--- /dev/null
@@ -0,0 +1,16 @@
+#define object 1
+#define function(x) 1
+
+#if object
+once
+#endif
+#if object
+twice
+#endif
+
+#if function(0)
+once
+#endif
+#if function(0)
+once again
+#endif
diff --git a/src/glsl/glcpp/tests/101-macros-used-twice.c.expected b/src/glsl/glcpp/tests/101-macros-used-twice.c.expected
new file mode 100644 (file)
index 0000000..1a4bf15
--- /dev/null
@@ -0,0 +1,17 @@
+
+
+
+
+once
+
+
+twice
+
+
+
+once
+
+
+once again
+
+