Rewrite test/Linker tests to use FileCheck instead of grep.

Some translations here are not 1x1 because there are grep|grep
chains that are non-trivial to implement in terms of FileCheck features. I
made an effort for the tests to remain as similar as possible; do let me know
if you notice anything fishy. The good news are that some buggy tests were
fixed (grep | not grep - a bug waiting to happen).



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@179102 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Eli Bendersky 2013-04-09 16:51:13 +00:00
parent f6cfc15705
commit d7170ea5a8
25 changed files with 57 additions and 34 deletions

View File

@ -3,7 +3,8 @@
; RUN: echo "define internal i32 @foo() { ret i32 7 } " | llvm-as > %t.1.bc ; RUN: echo "define internal i32 @foo() { ret i32 7 } " | llvm-as > %t.1.bc
; RUN: llvm-as %s -o %t.2.bc ; RUN: llvm-as %s -o %t.2.bc
; RUN: llvm-link %t.1.bc %t.2.bc -S | grep "@foo()" | grep -v internal ; RUN: llvm-link %t.1.bc %t.2.bc -S | FileCheck %s
; CHECK: internal{{.*}}@foo{{[0-9]}}()
define i32 @foo() { ret i32 0 } define i32 @foo() { ret i32 0 }

View File

@ -3,8 +3,9 @@
; RUN: echo "%%Ty = type opaque @GV = external global %%Ty*" | llvm-as > %t.1.bc ; RUN: echo "%%Ty = type opaque @GV = external global %%Ty*" | llvm-as > %t.1.bc
; RUN: llvm-as < %s > %t.2.bc ; RUN: llvm-as < %s > %t.2.bc
; RUN: llvm-link %t.1.bc %t.2.bc -S | grep "%%Ty " | not grep opaque ; RUN: llvm-link %t.1.bc %t.2.bc -S | FileCheck %s
; CHECK: = global %Ty
%Ty = type {i32} %Ty = type {i32}
@GV = global %Ty* null @GV = global %Ty* null

View File

@ -4,7 +4,8 @@
; RUN: echo " define linkonce void @foo() { ret void } " | \ ; RUN: echo " define linkonce void @foo() { ret void } " | \
; RUN: llvm-as -o %t.2.bc ; RUN: llvm-as -o %t.2.bc
; RUN: llvm-as %s -o %t.1.bc ; RUN: llvm-as %s -o %t.1.bc
; RUN: llvm-link %t.1.bc %t.2.bc -S | grep foo | grep linkonce ; RUN: llvm-link %t.1.bc %t.2.bc -S | FileCheck %s
; CHECK: linkonce{{.*}}foo
declare void @foo() declare void @foo()

View File

@ -6,7 +6,8 @@
; RUN: echo " define internal i32 @foo() { ret i32 7 } " | llvm-as > %t.1.bc ; RUN: echo " define internal i32 @foo() { ret i32 7 } " | llvm-as > %t.1.bc
; RUN: llvm-as < %s > %t.2.bc ; RUN: llvm-as < %s > %t.2.bc
; RUN: llvm-link %t.1.bc %t.2.bc -S | grep internal | not grep "@foo(" ; RUN: llvm-link %t.1.bc %t.2.bc -S | FileCheck %s
; CHECK: internal {{.*}} @foo{{[0-9]}}(
declare i32 @foo() declare i32 @foo()

View File

@ -1,7 +1,8 @@
; RUN: llvm-as < %s > %t.out1.bc ; RUN: llvm-as < %s > %t.out1.bc
; RUN: echo "%%T1 = type opaque %%T2 = type opaque @S = external global { i32, %%T1* } declare void @F(%%T2*)"\ ; RUN: echo "%%T1 = type opaque %%T2 = type opaque @S = external global { i32, %%T1* } declare void @F(%%T2*)"\
; RUN: | llvm-as > %t.out2.bc ; RUN: | llvm-as > %t.out2.bc
; RUN: llvm-link %t.out1.bc %t.out2.bc -S | not grep opaque ; RUN: llvm-link %t.out1.bc %t.out2.bc -S | FileCheck %s
; CHECK-NOT: opaque
; After linking this testcase, there should be no opaque types left. The two ; After linking this testcase, there should be no opaque types left. The two
; S's should cause the opaque type to be resolved to 'int'. ; S's should cause the opaque type to be resolved to 'int'.

View File

@ -3,7 +3,8 @@
; RUN: llvm-as < %s > %t.out1.bc ; RUN: llvm-as < %s > %t.out1.bc
; RUN: echo "" | llvm-as > %t.out2.bc ; RUN: echo "" | llvm-as > %t.out2.bc
; RUN: llvm-link %t.out1.bc %t.out2.bc 2>&1 | not grep warning ; RUN: llvm-link %t.out1.bc %t.out2.bc 2>&1 | FileCheck %s
; CHECK-NOT: warning
target datalayout = "e-p:64:64" target datalayout = "e-p:64:64"

View File

@ -1,7 +1,8 @@
; RUN: echo "@G = weak global {{{{double}}}} zeroinitializer " | \ ; RUN: echo "@G = weak global {{{{double}}}} zeroinitializer " | \
; RUN: llvm-as > %t.out2.bc ; RUN: llvm-as > %t.out2.bc
; RUN: llvm-as < %s > %t.out1.bc ; RUN: llvm-as < %s > %t.out1.bc
; RUN: llvm-link %t.out1.bc %t.out2.bc -S | not grep "}" ; RUN: llvm-link %t.out1.bc %t.out2.bc -S | FileCheck %s
; CHECK-NOT: }
; When linked, the global above should be eliminated, being merged with the ; When linked, the global above should be eliminated, being merged with the
; global below. ; global below.

View File

@ -3,6 +3,7 @@
; RUN: echo "@X = external constant i32" | llvm-as > %t.2.bc ; RUN: echo "@X = external constant i32" | llvm-as > %t.2.bc
; RUN: llvm-as < %s > %t.1.bc ; RUN: llvm-as < %s > %t.1.bc
; RUN: llvm-link %t.1.bc %t.2.bc -S | grep "global i32 7" ; RUN: llvm-link %t.1.bc %t.2.bc -S | FileCheck %s
; CHECK: global i32 7
@X = global i32 7 @X = global i32 7

View File

@ -3,6 +3,7 @@
; RUN: echo "@X = global i32 7" | llvm-as > %t.2.bc ; RUN: echo "@X = global i32 7" | llvm-as > %t.2.bc
; RUN: llvm-as < %s > %t.1.bc ; RUN: llvm-as < %s > %t.1.bc
; RUN: llvm-link %t.1.bc %t.2.bc -S | grep "global i32 7" ; RUN: llvm-link %t.1.bc %t.2.bc -S | FileCheck %s
; CHECK: global i32 7
@X = external constant i32 ; <i32*> [#uses=0] @X = external constant i32 ; <i32*> [#uses=0]

View File

@ -1,7 +1,8 @@
; RUN: echo " @G = appending global [0 x i32] zeroinitializer " | \ ; RUN: echo " @G = appending global [0 x i32] zeroinitializer " | \
; RUN: llvm-as > %t.out2.bc ; RUN: llvm-as > %t.out2.bc
; RUN: llvm-as < %s > %t.out1.bc ; RUN: llvm-as < %s > %t.out1.bc
; RUN: llvm-link %t.out1.bc %t.out2.bc -S | grep "@G =" ; RUN: llvm-link %t.out1.bc %t.out2.bc -S | FileCheck %s
; CHECK: @G =
; When linked, the globals should be merged, and the result should still ; When linked, the globals should be merged, and the result should still
; be named '@G'. ; be named '@G'.

View File

@ -2,6 +2,7 @@
; RUN: echo "@X = global i32 7, align 8" | llvm-as > %t.2.bc ; RUN: echo "@X = global i32 7, align 8" | llvm-as > %t.2.bc
; RUN: llvm-as < %s > %t.1.bc ; RUN: llvm-as < %s > %t.1.bc
; RUN: llvm-link %t.1.bc %t.2.bc -S | grep "align 8" ; RUN: llvm-link %t.1.bc %t.2.bc -S | FileCheck %s
; CHECK: align 8
@X = weak global i32 7, align 4 @X = weak global i32 7, align 4

View File

@ -1,7 +1,8 @@
; RUN: llvm-as < %s > %t.bc ; RUN: llvm-as < %s > %t.bc
; RUN: llvm-as < %p/2008-03-07-DroppedSection_b.ll > %t2.bc ; RUN: llvm-as < %p/2008-03-07-DroppedSection_b.ll > %t2.bc
; RUN: llvm-link %t.bc %t2.bc -o %t3.bc ; RUN: llvm-link %t.bc %t2.bc -o %t3.bc
; RUN: llvm-dis < %t3.bc | grep ".data.init_task" ; RUN: llvm-dis < %t3.bc | FileCheck %s
; CHECK: .data.init_task
; ModuleID = 't.bc' ; ModuleID = 't.bc'
target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:32:32" target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:32:32"

View File

@ -1,7 +1,8 @@
; RUN: llvm-as < %s > %t.bc ; RUN: llvm-as < %s > %t.bc
; RUN: llvm-as < %p/2008-03-07-DroppedSection_a.ll > %t2.bc ; RUN: llvm-as < %p/2008-03-07-DroppedSection_a.ll > %t2.bc
; RUN: llvm-link %t.bc %t2.bc -o %t3.bc ; RUN: llvm-link %t.bc %t2.bc -o %t3.bc
; RUN: llvm-dis < %t3.bc | grep ".data.init_task" ; RUN: llvm-dis < %t3.bc | FileCheck %s
; CHECK: .data.init_task
; ModuleID = 'u.bc' ; ModuleID = 'u.bc'
target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:32:32" target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:32:32"

View File

@ -2,8 +2,9 @@
; in different modules. ; in different modules.
; RUN: llvm-as %s -o %t.foo1.bc ; RUN: llvm-as %s -o %t.foo1.bc
; RUN: echo | llvm-as -o %t.foo2.bc ; RUN: echo | llvm-as -o %t.foo2.bc
; RUN: llvm-link %t.foo2.bc %t.foo1.bc -S | grep "addrspace(2)" ; RUN: llvm-link %t.foo2.bc %t.foo1.bc -S | FileCheck %s
; RUN: llvm-link %t.foo1.bc %t.foo2.bc -S | grep "addrspace(2)" ; RUN: llvm-link %t.foo1.bc %t.foo2.bc -S | FileCheck %s
; CHECK: addrspace(2)
; rdar://6038021 ; rdar://6038021
@G = addrspace(2) global i32 256 @G = addrspace(2) global i32 256

View File

@ -1,4 +1,6 @@
; RUN: llvm-link %s %p/2011-08-18-unique-class-type2.ll -S -o - | grep DW_TAG_class_type | count 1 ; RUN: llvm-link %s %p/2011-08-18-unique-class-type2.ll -S -o - | FileCheck %s
; CHECK: DW_TAG_class_type
; CHECK-NOT: DW_TAG_class_type
; Test to check there is only one MDNode for class A after linking. ; Test to check there is only one MDNode for class A after linking.
target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64" target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64"

View File

@ -1,6 +1,6 @@
; RUN: llvm-link %s %p/2011-08-18-unique-debug-type2.ll -S -o - | FileCheck %s
; RUN: llvm-link %s %p/2011-08-18-unique-debug-type2.ll -S -o - | grep "int" | grep -v "^; ModuleID" | count 1
; Test to check only one MDNode for "int" after linking. ; Test to check only one MDNode for "int" after linking.
; CHECK: !"int"
target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64" target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64"
target triple = "x86_64-apple-macosx10.7.0" target triple = "x86_64-apple-macosx10.7.0"

View File

@ -3,7 +3,8 @@
; RUN: echo "@X = appending global [1 x i32] [i32 8] " | \ ; RUN: echo "@X = appending global [1 x i32] [i32 8] " | \
; RUN: llvm-as > %t.2.bc ; RUN: llvm-as > %t.2.bc
; RUN: llvm-as < %s > %t.1.bc ; RUN: llvm-as < %s > %t.1.bc
; RUN: llvm-link %t.1.bc %t.2.bc -S | grep 7 | grep 4 | grep 8 ; RUN: llvm-link %t.1.bc %t.2.bc -S | FileCheck %s
; CHECK: [i32 7, i32 4, i32 8]
@X = appending global [2 x i32] [ i32 7, i32 4 ] ; <[2 x i32]*> [#uses=2] @X = appending global [2 x i32] [ i32 7, i32 4 ] ; <[2 x i32]*> [#uses=2]
@Y = global i32* getelementptr ([2 x i32]* @X, i64 0, i64 0) ; <i32**> [#uses=0] @Y = global i32* getelementptr ([2 x i32]* @X, i64 0, i64 0) ; <i32**> [#uses=0]

View File

@ -3,6 +3,7 @@
; RUN: echo "@X = appending global [1 x i32] [i32 8] " | \ ; RUN: echo "@X = appending global [1 x i32] [i32 8] " | \
; RUN: llvm-as > %t.2.bc ; RUN: llvm-as > %t.2.bc
; RUN: llvm-as < %s > %t.1.bc ; RUN: llvm-as < %s > %t.1.bc
; RUN: llvm-link %t.1.bc %t.2.bc -S | grep 7 | grep 8 ; RUN: llvm-link %t.1.bc %t.2.bc -S | FileCheck %s
; CHECK: [i32 7, i32 8]
@X = appending global [1 x i32] [ i32 7 ] ; <[1 x i32]*> [#uses=0] @X = appending global [1 x i32] [ i32 7 ] ; <[1 x i32]*> [#uses=0]

View File

@ -3,7 +3,8 @@
; RUN: echo "@X = constant [1 x i32] [i32 8] " | \ ; RUN: echo "@X = constant [1 x i32] [i32 8] " | \
; RUN: llvm-as > %t.2.bc ; RUN: llvm-as > %t.2.bc
; RUN: llvm-as < %s > %t.1.bc ; RUN: llvm-as < %s > %t.1.bc
; RUN: llvm-link %t.1.bc %t.2.bc -S | grep constant ; RUN: llvm-link %t.1.bc %t.2.bc -S | FileCheck %s
; CHECK: constant
@X = external global [1 x i32] ; <[1 x i32]*> [#uses=0] @X = external global [1 x i32] ; <[1 x i32]*> [#uses=0]

View File

@ -3,7 +3,8 @@
; RUN: echo "@X = external global [1 x i32] " | \ ; RUN: echo "@X = external global [1 x i32] " | \
; RUN: llvm-as > %t.2.bc ; RUN: llvm-as > %t.2.bc
; RUN: llvm-as < %s > %t.1.bc ; RUN: llvm-as < %s > %t.1.bc
; RUN: llvm-link %t.1.bc %t.2.bc -S | grep constant ; RUN: llvm-link %t.1.bc %t.2.bc -S | FileCheck %s
; CHECK: constant
@X = constant [1 x i32] [ i32 12 ] ; <[1 x i32]*> [#uses=0] @X = constant [1 x i32] [ i32 12 ] ; <[1 x i32]*> [#uses=0]

View File

@ -3,6 +3,7 @@
; RUN: echo "@X = external constant [1 x i32] " | \ ; RUN: echo "@X = external constant [1 x i32] " | \
; RUN: llvm-as > %t.2.bc ; RUN: llvm-as > %t.2.bc
; RUN: llvm-as < %s > %t.1.bc ; RUN: llvm-as < %s > %t.1.bc
; RUN: llvm-link %t.1.bc %t.2.bc -S | grep constant ; RUN: llvm-link %t.1.bc %t.2.bc -S | FileCheck %s
; CHECK: constant
@X = external global [1 x i32] ; <[1 x i32]*> [#uses=0] @X = external global [1 x i32] ; <[1 x i32]*> [#uses=0]

View File

@ -1,7 +1,8 @@
; RUN: llvm-as %s -o %t1.bc ; RUN: llvm-as %s -o %t1.bc
; RUN: echo "declare void @__eprintf(i8*, i8*, i32, i8*) noreturn define void @foo() { tail call void @__eprintf( i8* undef, i8* undef, i32 4, i8* null ) noreturn nounwind unreachable }" | llvm-as -o %t2.bc ; RUN: echo "declare void @__eprintf(i8*, i8*, i32, i8*) noreturn define void @foo() { tail call void @__eprintf( i8* undef, i8* undef, i32 4, i8* null ) noreturn nounwind unreachable }" | llvm-as -o %t2.bc
; RUN: llvm-link %t2.bc %t1.bc -S | grep __eprintf ; RUN: llvm-link %t2.bc %t1.bc -S | FileCheck %s
; RUN: llvm-link %t1.bc %t2.bc -S | grep __eprintf ; RUN: llvm-link %t1.bc %t2.bc -S | FileCheck %s
; CHECK: __eprintf
; rdar://6072702 ; rdar://6072702

View File

@ -1,6 +1,7 @@
; RUN: llvm-as < %s > %t.bc ; RUN: llvm-as < %s > %t.bc
; RUN: llvm-as < %p/linknamedmdnode2.ll > %t2.bc ; RUN: llvm-as < %p/linknamedmdnode2.ll > %t2.bc
; RUN: llvm-link %t.bc %t2.bc -S | grep "!llvm.stuff = !{!0, !1}" ; RUN: llvm-link %t.bc %t2.bc -S | FileCheck %s
; CHECK: !llvm.stuff = !{!0, !1}
!0 = metadata !{i32 42} !0 = metadata !{i32 42}
!llvm.stuff = !{!0} !llvm.stuff = !{!0}

View File

@ -3,8 +3,7 @@
; RUN: llvm-as %s -o %t.foo1.bc ; RUN: llvm-as %s -o %t.foo1.bc
; RUN: llvm-as %s -o %t.foo2.bc ; RUN: llvm-as %s -o %t.foo2.bc
; RUN: echo "define void @foo(i32 %x) { ret void }" | llvm-as -o %t.foo3.bc ; RUN: echo "define void @foo(i32 %x) { ret void }" | llvm-as -o %t.foo3.bc
; RUN: not llvm-link %t.foo1.bc %t.foo2.bc -o %t.bc 2>&1 | \ ; RUN: not llvm-link %t.foo1.bc %t.foo2.bc -o %t.bc 2>&1 | FileCheck %s
; RUN: grep "symbol multiply defined" ; RUN: not llvm-link %t.foo1.bc %t.foo3.bc -o %t.bc 2>&1 | FileCheck %s
; RUN: not llvm-link %t.foo1.bc %t.foo3.bc -o %t.bc 2>&1 | \ ; CHECK: symbol multiply defined
; RUN: grep "symbol multiply defined"
define void @foo() { ret void } define void @foo() { ret void }

View File

@ -1,9 +1,10 @@
; RUN: llvm-as < %s > %t.bc ; RUN: llvm-as < %s > %t.bc
; RUN: llvm-as < %p/testlink1.ll > %t2.bc ; RUN: llvm-as < %p/testlink1.ll > %t2.bc
; RUN: llvm-link %t.bc %t.bc %t2.bc -o %t1.bc ; RUN: llvm-link %t.bc %t.bc %t2.bc -o %t1.bc
; RUN: llvm-dis < %t1.bc | grep "kallsyms_names = extern_weak" ; RUN: llvm-dis < %t1.bc | FileCheck %s
; RUN: llvm-dis < %t1.bc | grep "MyVar = external global i32" ; CHECK: kallsyms_names = extern_weak
; RUN: llvm-dis < %t1.bc | grep "Inte = global i32" ; CHECK: Inte = global i32
; CHECK: MyVar = external global i32
@kallsyms_names = extern_weak global [0 x i8] ; <[0 x i8]*> [#uses=0] @kallsyms_names = extern_weak global [0 x i8] ; <[0 x i8]*> [#uses=0]
@MyVar = extern_weak global i32 ; <i32*> [#uses=0] @MyVar = extern_weak global i32 ; <i32*> [#uses=0]