summaryrefslogtreecommitdiff
path: root/test/LLVMC
diff options
context:
space:
mode:
authorMikhail Glushenkov <foldr@codedgers.com>2008-12-07 16:41:50 +0000
committerMikhail Glushenkov <foldr@codedgers.com>2008-12-07 16:41:50 +0000
commit15dcc2a15ba97359093410ba7d4f76c53cddf938 (patch)
tree86a54fd9357f5c7cec2b128f1ed331377fb363dc /test/LLVMC
parentf915253dfcfbe772ee04872544a4f012c6f851be (diff)
downloadllvm-15dcc2a15ba97359093410ba7d4f76c53cddf938.tar.gz
llvm-15dcc2a15ba97359093410ba7d4f76c53cddf938.tar.bz2
llvm-15dcc2a15ba97359093410ba7d4f76c53cddf938.tar.xz
Add tests for tblgen's LLVMC backend.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60657 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/LLVMC')
-rw-r--r--test/LLVMC/EmptyCompilationGraph.td6
-rw-r--r--test/LLVMC/ExternOptions.td20
-rw-r--r--test/LLVMC/MultipleCompilationGraphs.td8
-rw-r--r--test/LLVMC/NoActions.td12
-rw-r--r--test/LLVMC/NoCompilationGraph.td4
-rw-r--r--test/LLVMC/TestWarnings.td8
-rw-r--r--test/LLVMC/llvmc.exp1
7 files changed, 59 insertions, 0 deletions
diff --git a/test/LLVMC/EmptyCompilationGraph.td b/test/LLVMC/EmptyCompilationGraph.td
new file mode 100644
index 0000000000..f4a304730c
--- /dev/null
+++ b/test/LLVMC/EmptyCompilationGraph.td
@@ -0,0 +1,6 @@
+// Check that the compilation graph can be empty.
+// RUN: tblgen -I $srcroot/include --gen-llvmc %s
+
+include "llvm/CompilerDriver/Common.td"
+
+def Graph : CompilationGraph<[]>;
diff --git a/test/LLVMC/ExternOptions.td b/test/LLVMC/ExternOptions.td
new file mode 100644
index 0000000000..d38675c55e
--- /dev/null
+++ b/test/LLVMC/ExternOptions.td
@@ -0,0 +1,20 @@
+// Check that extern options work.
+// The dummy tool and graph are required to silence warnings.
+// RUN: tblgen -I $srcroot/include --gen-llvmc %s | grep extern
+
+include "llvm/CompilerDriver/Common.td"
+
+def OptList : OptionList<[(extern_switch "Wall"),
+ (extern_parameter "std"), (extern_list "L")]>;
+
+def dummy_tool : Tool<[
+(cmd_line "dummy_cmd"),
+(in_language "dummy"),
+(out_language "dummy"),
+(actions (case
+ (switch_on "Wall"), (stop_compilation),
+ (not_empty "std"), (stop_compilation),
+ (not_empty "L"), (stop_compilation)))
+]>;
+
+def DummyGraph : CompilationGraph<[SimpleEdge<"root", "dummy_tool">]>;
diff --git a/test/LLVMC/MultipleCompilationGraphs.td b/test/LLVMC/MultipleCompilationGraphs.td
new file mode 100644
index 0000000000..3305fc6121
--- /dev/null
+++ b/test/LLVMC/MultipleCompilationGraphs.td
@@ -0,0 +1,8 @@
+// Check that multiple compilation graphs are allowed.
+// RUN: tblgen -I $srcroot/include --gen-llvmc %s
+
+include "llvm/CompilerDriver/Common.td"
+
+def Graph1 : CompilationGraph<[]>;
+def Graph2 : CompilationGraph<[]>;
+def Graph3 : CompilationGraph<[]>;
diff --git a/test/LLVMC/NoActions.td b/test/LLVMC/NoActions.td
new file mode 100644
index 0000000000..43fd0079ee
--- /dev/null
+++ b/test/LLVMC/NoActions.td
@@ -0,0 +1,12 @@
+// Check that tools without associated actions are accepted.
+// RUN: tblgen -I $srcroot/include --gen-llvmc %s | grep dummy_tool
+
+include "llvm/CompilerDriver/Common.td"
+
+def dummy_tool : Tool<[
+(cmd_line "dummy_cmd"),
+(in_language "dummy"),
+(out_language "dummy")
+]>;
+
+def DummyGraph : CompilationGraph<[SimpleEdge<"root", "dummy_tool">]>;
diff --git a/test/LLVMC/NoCompilationGraph.td b/test/LLVMC/NoCompilationGraph.td
new file mode 100644
index 0000000000..6476a371cf
--- /dev/null
+++ b/test/LLVMC/NoCompilationGraph.td
@@ -0,0 +1,4 @@
+// Check that the compilation graph is not required.
+// RUN: tblgen -I $srcroot/include --gen-llvmc %s
+
+include "llvm/CompilerDriver/Common.td"
diff --git a/test/LLVMC/TestWarnings.td b/test/LLVMC/TestWarnings.td
new file mode 100644
index 0000000000..5010c61b6a
--- /dev/null
+++ b/test/LLVMC/TestWarnings.td
@@ -0,0 +1,8 @@
+// Check that the compiler warns about unused options!.
+// RUN: tblgen -I $srcroot/include --gen-llvmc %s | grep extern
+// XFAIL: *
+
+include "llvm/CompilerDriver/Common.td"
+
+def OptList : OptionList<[(extern_switch "Wall"),
+ (extern_parameter "std"), (extern_list "L")]>;
diff --git a/test/LLVMC/llvmc.exp b/test/LLVMC/llvmc.exp
index a2e44b9985..8354097ed8 100644
--- a/test/LLVMC/llvmc.exp
+++ b/test/LLVMC/llvmc.exp
@@ -8,3 +8,4 @@ if [ llvm_gcc_supports c++ ] then {
RunLLVMTests [lsort [glob -nocomplain $srcdir/$subdir/*.{cpp}]]
}
+RunLLVMTests [lsort [glob -nocomplain $srcdir/$subdir/*.{td}]]