aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorArgyrios Kyrtzidis <akyrtzi@gmail.com>2009-07-05 22:22:35 +0000
committerArgyrios Kyrtzidis <akyrtzi@gmail.com>2009-07-05 22:22:35 +0000
commit7b332d9ada3e2806a4d765000527f739f167791f (patch)
tree5b45f3cdaa38d6acd0f9126dad62fa1479af7eaa /test
parent9eec4ed6ca0dcf098580da9146b97e0841556d12 (diff)
Make use of the Index library through the index-test tool.
'index-test' is now able to provide additional info for a Decl, through multiple AST files: -Find declarations -Find definitions -Find references git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@74803 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test')
-rw-r--r--test/Index/_init.c2
-rw-r--r--test/Index/find-decls.c7
-rw-r--r--test/Index/find-defs.c8
-rw-r--r--test/Index/find-refs.c16
-rw-r--r--test/Index/foo.h4
-rw-r--r--test/Index/t1.c9
-rw-r--r--test/Index/t2.c8
-rwxr-xr-xtest/TestRunner.sh3
8 files changed, 57 insertions, 0 deletions
diff --git a/test/Index/_init.c b/test/Index/_init.c
new file mode 100644
index 0000000000..24caaefcb1
--- /dev/null
+++ b/test/Index/_init.c
@@ -0,0 +1,2 @@
+// RUN: clang-cc -emit-pch %S/t1.c -o %T/t1.ast &&
+// RUN: clang-cc -emit-pch %S/t2.c -o %T/t2.ast
diff --git a/test/Index/find-decls.c b/test/Index/find-decls.c
new file mode 100644
index 0000000000..06b52e96d7
--- /dev/null
+++ b/test/Index/find-decls.c
@@ -0,0 +1,7 @@
+// RUN: index-test %T/t1.ast %T/t2.ast -point-at %S/t1.c:8:7 -print-decls | count 3 &&
+// RUN: index-test %T/t1.ast %T/t2.ast -point-at %S/t1.c:8:7 -print-decls | grep 'foo.h:4:6,' | count 2 &&
+// RUN: index-test %T/t1.ast %T/t2.ast -point-at %S/t1.c:8:7 -print-decls | grep 't2.c:5:6,' &&
+// RUN: index-test %T/t1.ast %T/t2.ast -point-at %S/t1.c:5:47 -print-decls | count 1 &&
+// RUN: index-test %T/t1.ast %T/t2.ast -point-at %S/t1.c:5:47 -print-decls | grep 't1.c:5:12,' &&
+// RUN: index-test %T/t1.ast %T/t2.ast -point-at %S/t1.c:6:20 -print-decls | count 1 &&
+// RUN: index-test %T/t1.ast %T/t2.ast -point-at %S/t1.c:6:20 -print-decls | grep 't1.c:3:19,'
diff --git a/test/Index/find-defs.c b/test/Index/find-defs.c
new file mode 100644
index 0000000000..d17dc0b142
--- /dev/null
+++ b/test/Index/find-defs.c
@@ -0,0 +1,8 @@
+// RUN: index-test %T/t1.ast %T/t2.ast -point-at %S/foo.h:1:14 -print-defs | count 1 &&
+// RUN: index-test %T/t1.ast %T/t2.ast -point-at %S/foo.h:1:14 -print-defs | grep 't2.c:3:5,' &&
+// RUN: index-test %T/t1.ast %T/t2.ast -point-at %S/foo.h:3:9 -print-defs | count 1 &&
+// RUN: index-test %T/t1.ast %T/t2.ast -point-at %S/foo.h:3:9 -print-defs | grep 't1.c:3:6,' &&
+// RUN: index-test %T/t1.ast %T/t2.ast -point-at %S/foo.h:4:9 -print-defs | count 1 &&
+// RUN: index-test %T/t1.ast %T/t2.ast -point-at %S/foo.h:4:9 -print-defs | grep 't2.c:5:6,' &&
+// RUN: index-test %T/t1.ast %T/t2.ast -point-at %S/t1.c:8:7 -print-defs | count 1 &&
+// RUN: index-test %T/t1.ast %T/t2.ast -point-at %S/t1.c:8:7 -print-defs | grep 't2.c:5:6,'
diff --git a/test/Index/find-refs.c b/test/Index/find-refs.c
new file mode 100644
index 0000000000..fea1f752fb
--- /dev/null
+++ b/test/Index/find-refs.c
@@ -0,0 +1,16 @@
+// RUN: index-test %T/t1.ast %T/t2.ast -point-at %S/foo.h:1:14 -print-refs | count 3 &&
+// RUN: index-test %T/t1.ast %T/t2.ast -point-at %S/foo.h:1:14 -print-refs | grep 't1.c:4:19,' &&
+// RUN: index-test %T/t1.ast %T/t2.ast -point-at %S/foo.h:1:14 -print-refs | grep 't2.c:6:3,' &&
+// RUN: index-test %T/t1.ast %T/t2.ast -point-at %S/foo.h:1:14 -print-refs | grep 't2.c:7:12,' &&
+// RUN: index-test %T/t1.ast %T/t2.ast -point-at %S/foo.h:3:9 -print-refs | count 1 &&
+// RUN: index-test %T/t1.ast %T/t2.ast -point-at %S/foo.h:3:9 -print-refs | grep 't2.c:7:3,' &&
+// RUN: index-test %T/t1.ast %T/t2.ast -point-at %S/foo.h:4:9 -print-refs | count 1 &&
+// RUN: index-test %T/t1.ast %T/t2.ast -point-at %S/foo.h:4:9 -print-refs | grep 't1.c:8:3,' &&
+// RUN: index-test %T/t1.ast %T/t2.ast -point-at %S/t1.c:3:22 -print-refs | count 1 &&
+// RUN: index-test %T/t1.ast %T/t2.ast -point-at %S/t1.c:3:22 -print-refs | grep 't1.c:6:17,' &&
+// RUN: index-test %T/t1.ast %T/t2.ast -point-at %S/t1.c:4:11 -print-refs | count 1 &&
+// RUN: index-test %T/t1.ast %T/t2.ast -point-at %S/t1.c:4:11 -print-refs | grep 't1.c:6:5,' &&
+// RUN: index-test %T/t1.ast %T/t2.ast -point-at %S/t1.c:5:30 -print-refs | count 3 &&
+// RUN: index-test %T/t1.ast %T/t2.ast -point-at %S/t1.c:5:30 -print-refs | grep 't1.c:5:27,' &&
+// RUN: index-test %T/t1.ast %T/t2.ast -point-at %S/t1.c:5:30 -print-refs | grep 't1.c:5:44,' &&
+// RUN: index-test %T/t1.ast %T/t2.ast -point-at %S/t1.c:5:30 -print-refs | grep 't1.c:6:26,'
diff --git a/test/Index/foo.h b/test/Index/foo.h
new file mode 100644
index 0000000000..2e3b403dea
--- /dev/null
+++ b/test/Index/foo.h
@@ -0,0 +1,4 @@
+extern int global_var;
+
+void foo_func(int param1);
+void bar_func(void);
diff --git a/test/Index/t1.c b/test/Index/t1.c
new file mode 100644
index 0000000000..1ff89ca34b
--- /dev/null
+++ b/test/Index/t1.c
@@ -0,0 +1,9 @@
+#include "foo.h"
+
+void foo_func(int param1) {
+ int local_var = global_var;
+ for (int for_var = 100; for_var < 500; ++for_var) {
+ local_var = param1 + for_var;
+ }
+ bar_func();
+}
diff --git a/test/Index/t2.c b/test/Index/t2.c
new file mode 100644
index 0000000000..8e405cc367
--- /dev/null
+++ b/test/Index/t2.c
@@ -0,0 +1,8 @@
+#include "foo.h"
+
+int global_var = 10;
+
+void bar_func(void) {
+ global_var += 100;
+ foo_func(global_var);
+}
diff --git a/test/TestRunner.sh b/test/TestRunner.sh
index bb20728578..07451eb485 100755
--- a/test/TestRunner.sh
+++ b/test/TestRunner.sh
@@ -11,6 +11,7 @@
# %S - Replaced with the directory where the input file resides
# %prcontext - prcontext.tcl script
# %t - temporary file name (derived from testcase name)
+# %T - directory of temporary file name
#
FILENAME=$1
@@ -19,6 +20,7 @@ SUBST=$1
FILEDIR=`dirname $TESTNAME`
OUTPUT=Output/$1.out
+OUTPUTDIR=`dirname $OUTPUT`
# create the output directory if it does not already exist
mkdir -p `dirname $OUTPUT` > /dev/null 2>&1
@@ -86,6 +88,7 @@ grep 'RUN:' $FILENAME | \
-e "s|%s|$SUBST|g" \
-e "s|%S|$FILEDIR|g" \
-e "s|%prcontext|prcontext.tcl|g" \
+ -e "s|%T|$OUTPUTDIR|g" \
-e "s|%t|$TEMPOUTPUT|g" > $SCRIPT
IS_XFAIL=0