aboutsummaryrefslogtreecommitdiff
path: root/test/Index/format-comment-cdecls.c
diff options
context:
space:
mode:
authorFariborz Jahanian <fjahanian@apple.com>2012-12-18 23:02:59 +0000
committerFariborz Jahanian <fjahanian@apple.com>2012-12-18 23:02:59 +0000
commit88b9521364735a6c9a7ccd23c5bd19d81a80cdd3 (patch)
tree337bba80c937259ad37d0e7a27acc11706e708e5 /test/Index/format-comment-cdecls.c
parent813bc7faa74bda8162db3dede57e07bfe764e86e (diff)
This is the libclang patch providing minimal API to
use clang's formatter. Currently, formatter is used to format declaration tags for xml comments. Since formatter is in flux and its change will break several of the clang comment tests, only a single tests is formatted using this facility. Doug has reviewed and approved it for check-in. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170467 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/Index/format-comment-cdecls.c')
-rw-r--r--test/Index/format-comment-cdecls.c100
1 files changed, 100 insertions, 0 deletions
diff --git a/test/Index/format-comment-cdecls.c b/test/Index/format-comment-cdecls.c
new file mode 100644
index 0000000000..989ce5c022
--- /dev/null
+++ b/test/Index/format-comment-cdecls.c
@@ -0,0 +1,100 @@
+// RUN: rm -rf %t
+// RUN: mkdir %t
+// RUN: env LIBCLANG_ACTIVATE_FORMAT=1 \
+// RUN: c-index-test -test-load-source all -comments-xml-schema=%S/../../bindings/xml/comment-xml-schema.rng -target x86_64-apple-darwin10 %s \
+// RUN: | FileCheck %s
+
+/**
+ * \brief Aaa.
+*/
+int global_function();
+// CHECK: <Declaration>int global_function()</Declaration>
+
+/**
+ * \param x1 Aaa.
+*/
+extern void external_function(int x1);
+// CHECK: <Declaration>extern void external_function(int x1)</Declaration>
+
+/**
+ * \brief global variable;
+*/
+int global_variable;
+// CHECK: <Declaration>int global_variable</Declaration>
+
+/**
+ * \brief local variable;
+*/
+static int static_variable;
+// CHECK: <Declaration>static int static_variable</Declaration>
+
+/**
+ * \brief external variable
+*/
+extern int external_variable;
+// CHECK: <Declaration>extern int external_variable</Declaration>
+
+int global_function() {
+ /**
+ * \brief a local variable
+ */
+ int local = 10;
+ return local;
+}
+// CHECK: <Declaration>int global_function()</Declaration>
+// CHECK: <Declaration>int local = 10</Declaration>
+
+/**
+ * \brief initialized decl.
+*/
+int initialized_global = 100;
+// CHECK: <Declaration>int initialized_global = 100</Declaration>
+
+/**
+ * \brief typedef example
+*/
+typedef int INT_T;
+// CHECK: <Declaration>typedef int INT_T</Declaration>
+
+/**
+ * \brief aggregate type example
+*/
+struct S {
+/**
+ * \brief iS1;
+*/
+ int iS1;
+/**
+ * \brief dS1;
+*/
+ double dS1;
+};
+// CHECK: <Declaration>struct S {\n}</Declaration>
+// CHECK: <Declaration>int iS1</Declaration>
+// CHECK: <Declaration>double dS1</Declaration>
+
+/**
+ * \brief enum e;
+*/
+enum e {
+ One,
+/**
+ * \brief Two;
+*/
+ Two,
+ Three
+};
+// CHECK: <Declaration>enum e {\n}</Declaration>
+// CHECK: <Declaration>Two</Declaration>
+
+/**
+ *\brief block declaration
+*/
+int (^Block) (int i, int j);
+// CHECK: <Declaration>int (^Block)(int, int)</Declaration>
+
+/**
+ *\brief block declaration
+*/
+int (^Block1) (int i, int j) = ^(int i, int j) { return i + j; };
+// CHECK: <Declaration>int (^ Block1) (int, int) = ^ (int i, int j) {\n}</Declaration>