Switch a bunch of Linker tests from using elaborate echo productions to
authorChandler Carruth <chandlerc@gmail.com>
Mon, 2 Jul 2012 10:18:06 +0000 (10:18 +0000)
committerChandler Carruth <chandlerc@gmail.com>
Mon, 2 Jul 2012 10:18:06 +0000 (10:18 +0000)
just provide and reference separate input files from an Inputs
subdirectory. This pattern works very well in the Clang tree and is
easier to understand in my opinion. It also has fewer limitations and
will remove one particularly annoying use of TCL-style {} quoting from
the testsuite.

Also teach the LLVM lit configuration to avoid recursing into 'Inputs'
subdirectories. This wasn't required for the previous 'Inputs'
subdirectories used due to fortuitous suffix patterns.

This is the first step to completely removing support for TCL-style tests.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159520 91177308-0d34-0410-b5e6-96231b3b80d8

14 files changed:
test/Linker/2003-04-21-Linkage.ll [deleted file]
test/Linker/Inputs/PR11464.a.ll [new file with mode: 0644]
test/Linker/Inputs/PR11464.b.ll [new file with mode: 0644]
test/Linker/Inputs/PR8300.a.ll [new file with mode: 0644]
test/Linker/Inputs/PR8300.b.ll [new file with mode: 0644]
test/Linker/Inputs/basiclink.a.ll [new file with mode: 0644]
test/Linker/Inputs/basiclink.b.ll [new file with mode: 0644]
test/Linker/Inputs/linkage.a.ll [new file with mode: 0644]
test/Linker/Inputs/linkage.b.ll [new file with mode: 0644]
test/Linker/PR8300.ll
test/Linker/basiclink.ll
test/Linker/linkage.ll [new file with mode: 0644]
test/Linker/multiple-merged-structs.ll
test/lit.cfg

diff --git a/test/Linker/2003-04-21-Linkage.ll b/test/Linker/2003-04-21-Linkage.ll
deleted file mode 100644 (file)
index f6d4c4b..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-; RUN: echo {@X = linkonce global i32 5 \
-; RUN:   define linkonce i32 @foo() \{ ret i32 7 \} } | llvm-as > %t.1.bc
-; RUN: llvm-as %s -o %t.2.bc
-; RUN: llvm-link %t.1.bc  %t.2.bc
-@X = external global i32 
-
-declare i32 @foo() 
-
-define void @bar() {
-       load i32* @X
-       call i32 @foo()
-       ret void
-}
-
diff --git a/test/Linker/Inputs/PR11464.a.ll b/test/Linker/Inputs/PR11464.a.ll
new file mode 100644 (file)
index 0000000..25a9350
--- /dev/null
@@ -0,0 +1,3 @@
+%bug_type = type opaque
+declare i32 @bug_a(%bug_type*)
+declare i32 @bug_b(%bug_type*)
diff --git a/test/Linker/Inputs/PR11464.b.ll b/test/Linker/Inputs/PR11464.b.ll
new file mode 100644 (file)
index 0000000..7ef5a36
--- /dev/null
@@ -0,0 +1,13 @@
+%bug_type = type { %bug_type* }
+%bar = type { i32 }
+
+define i32 @bug_a(%bug_type* %fp) nounwind uwtable {
+entry:
+  %d_stream = getelementptr inbounds %bug_type* %fp, i64 0, i32 0
+  ret i32 0
+}
+
+define i32 @bug_b(%bar* %a) nounwind uwtable {
+entry:
+  ret i32 0
+}
diff --git a/test/Linker/Inputs/PR8300.a.ll b/test/Linker/Inputs/PR8300.a.ll
new file mode 100644 (file)
index 0000000..c705db3
--- /dev/null
@@ -0,0 +1,2 @@
+%foo2 = type { [8 x i8] }
+declare void @zed(%foo2*)
diff --git a/test/Linker/Inputs/PR8300.b.ll b/test/Linker/Inputs/PR8300.b.ll
new file mode 100644 (file)
index 0000000..9e538f5
--- /dev/null
@@ -0,0 +1,9 @@
+%foo = type { [8 x i8] }
+%bar = type { [9 x i8] }
+
+@zed = alias bitcast (void (%bar*)* @xyz to void (%foo*)*)
+
+define void @xyz(%bar* %this) {
+entry:
+  ret void
+}
diff --git a/test/Linker/Inputs/basiclink.a.ll b/test/Linker/Inputs/basiclink.a.ll
new file mode 100644 (file)
index 0000000..997932d
--- /dev/null
@@ -0,0 +1,2 @@
+define i32* @foo(i32 %x) { ret i32* @baz }
+@baz = external global i32
diff --git a/test/Linker/Inputs/basiclink.b.ll b/test/Linker/Inputs/basiclink.b.ll
new file mode 100644 (file)
index 0000000..0d2abc7
--- /dev/null
@@ -0,0 +1,6 @@
+declare i32* @foo(...)
+define i32* @bar() {
+       %ret = call i32* (...)* @foo( i32 123 )
+       ret i32* %ret
+}
+@baz = global i32 0
diff --git a/test/Linker/Inputs/linkage.a.ll b/test/Linker/Inputs/linkage.a.ll
new file mode 100644 (file)
index 0000000..8a156f6
--- /dev/null
@@ -0,0 +1,2 @@
+@X = linkonce global i32 5
+define linkonce i32 @foo() { ret i32 7 }
diff --git a/test/Linker/Inputs/linkage.b.ll b/test/Linker/Inputs/linkage.b.ll
new file mode 100644 (file)
index 0000000..0ada3f4
--- /dev/null
@@ -0,0 +1,10 @@
+@X = external global i32 
+
+declare i32 @foo() 
+
+define void @bar() {
+       load i32* @X
+       call i32 @foo()
+       ret void
+}
+
index f0fc1e7a5cc4de06b56143b4829dd8789b291d17..7c03d5bb4ee0e5becc1e593287f98070e793c397 100644 (file)
@@ -1,13 +1 @@
-; RUN: echo {%foo2 = type \{ \[8 x i8\] \} \
-; RUN:       declare void @zed(%foo2*) } > %t.ll
-; RUN: llvm-link %t.ll %s -o %t.bc
-
-%foo = type { [8 x i8] }
-%bar = type { [9 x i8] }
-
-@zed = alias bitcast (void (%bar*)* @xyz to void (%foo*)*)
-
-define void @xyz(%bar* %this) {
-entry:
-  ret void
-}
+; RUN: llvm-link %S/Inputs/PR8300.a.ll %S/Inputs/PR8300.b.ll -o %t.bc
index afe0320ba92f0fe648b039c6b1536383a8be531b..804329a49c9e63655d6ae90fd081d32abaa114df 100644 (file)
@@ -1,13 +1,6 @@
 ; Test linking two functions with different prototypes and two globals 
 ; in different modules. This is for PR411
-; RUN: llvm-as %s -o %t.bar.bc
-; RUN: echo {define i32* @foo(i32 %x) \{ ret i32* @baz \} \
-; RUN:   @baz = external global i32 } | llvm-as -o %t.foo.bc
-; RUN: llvm-link %t.bar.bc %t.foo.bc -o %t.bc
+; RUN: llvm-as %S/Inputs/basiclink.a.ll -o %t.foo.bc
+; RUN: llvm-as %S/Inputs/basiclink.b.ll -o %t.bar.bc
 ; RUN: llvm-link %t.foo.bc %t.bar.bc -o %t.bc
-declare i32* @foo(...)
-define i32* @bar() {
-       %ret = call i32* (...)* @foo( i32 123 )
-       ret i32* %ret
-}
-@baz = global i32 0
+; RUN: llvm-link %t.bar.bc %t.foo.bc -o %t.bc
diff --git a/test/Linker/linkage.ll b/test/Linker/linkage.ll
new file mode 100644 (file)
index 0000000..c7309aa
--- /dev/null
@@ -0,0 +1,3 @@
+; RUN: llvm-as %S/Inputs/linkage.a.ll -o %t.1.bc
+; RUN: llvm-as %S/Inputs/linkage.b.ll -o %t.2.bc
+; RUN: llvm-link %t.1.bc  %t.2.bc
index 348cd89bbc4c7bb540914bc07c48b7a4eecb15ad..aa8204dfebbde86951f3c1e70cecbd165b4cf818 100644 (file)
@@ -1,19 +1,2 @@
-; RUN: echo {%bug_type = type opaque \
-; RUN:     declare i32 @bug_a(%bug_type*) \
-; RUN:     declare i32 @bug_b(%bug_type*) } > %t.ll
-; RUN: llvm-link %t.ll %s
+; RUN: llvm-link %S/Inputs/PR11464.a.ll %S/Inputs/PR11464.b.ll
 ; PR11464
-
-%bug_type = type { %bug_type* }
-%bar = type { i32 }
-
-define i32 @bug_a(%bug_type* %fp) nounwind uwtable {
-entry:
-  %d_stream = getelementptr inbounds %bug_type* %fp, i64 0, i32 0
-  ret i32 0
-}
-
-define i32 @bug_b(%bar* %a) nounwind uwtable {
-entry:
-  ret i32 0
-}
index 93360c7c7c2bab491b42d8158282d481271046e1..d4836451906ea792b1c70b4372f29e3d222c4029 100644 (file)
@@ -19,6 +19,11 @@ config.test_format = lit.formats.TclTest()
 # set by on_clone().
 config.suffixes = []
 
+# excludes: A list of directories to exclude from the testsuite. The 'Inputs'
+# subdirectories contain auxiliary inputs for various tests in their parent
+# directories.
+config.excludes = ['Inputs']
+
 # test_source_root: The root path where tests are located.
 config.test_source_root = os.path.dirname(__file__)