bison
[m6w6/ext-psi] / tests / parser / cpp001.phpt
diff --git a/tests/parser/cpp001.phpt b/tests/parser/cpp001.phpt
new file mode 100644 (file)
index 0000000..ff912a3
--- /dev/null
@@ -0,0 +1,70 @@
+--TEST--
+CPP defines
+--SKIPIF--
+<?php 
+extension_loaded("psi") or die("skip - need ext/psi");
+?>
+--FILE--
+===TEST===
+<?php 
+
+var_dump(psi_validate_string(<<<PSI
+#define FOO
+#ifndef FOO
+# error FOO is not defined
+#endif
+
+#ifdef FOO
+# define BAR 1
+#else
+no error #here, yay!
+#endif
+
+#if BAR
+#      define BAZ
+#endif
+
+#ifndef BAZ
+error
+#endif
+
+#undef BAZ
+#ifdef BAZ
+#      error BAZ is defined
+#endif
+
+#ifndef _1
+# ifndef _2
+#  ifndef _3
+#  else
+    error 3
+#  endif
+# else
+   error 2
+# endif
+#else
+  error 1
+#endif
+
+
+#ifndef _1
+# ifdef _2
+   error 2
+# else
+
+enum a{b};
+
+# endif
+#else
+ error 1
+#endif
+
+enum b{a=b};
+PSI
+));
+?>
+===DONE===
+--EXPECT--
+===TEST===
+bool(true)
+===DONE===