Skip to content

Commit ca8f3cb

Browse files
committed
[llvm-symbolizer][test] Simplify test input reading
This change migrates most llvm-symbolizer tests away from reading input via stdin and instead using --obj + positional arguments for the file and addresses respectively, which makes the tests easier to read. One exception is the test test/tools/llvm-symbolizer/pdb/pdb.test, which was doing some manipulation on the input addresses. This patch simplifies this somewhat, but it still reads from stdin. More changes to follow to simplify/break-up other tests. Reviewed by: dblaikie Differential Revision: https://reviews.llvm.org/D57441 llvm-svn: 352752
1 parent 63f3383 commit ca8f3cb

11 files changed

+37
-67
lines changed

llvm/test/DebugInfo/llvm-symbolizer-split-dwarf-no-skel-address.test

+1-6
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,5 @@
1-
RUN: rm -rf %t && mkdir -p %t
2-
RUN: cd %t
3-
RUN: cp %p/Inputs/split-dwarf-no-skel-address.dwo %t
4-
RUN: echo "%p/Inputs/split-dwarf-no-skel-address.o 0x4" > %t.input
5-
61
RUN: llvm-symbolizer --functions=linkage --inlining --demangle=false \
7-
RUN: --default-arch=i386 < %t.input | FileCheck %s
2+
RUN: --default-arch=i386 --obj=%p/Inputs/split-dwarf-no-skel-address.o 0x4 | FileCheck %s
83

94
Built from the following source:
105
void f1();

llvm/test/DebugInfo/llvm-symbolizer-tu.test

+1-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
1-
RUN: echo "%p/Inputs/llvm-symbolizer-tu.elf-x86-64 0x0" \
2-
RUN: | llvm-symbolizer | FileCheck %s
1+
RUN: llvm-symbolizer --obj=%p/Inputs/llvm-symbolizer-tu.elf-x86-64 0x0 | FileCheck %s
32

43
Built from the following source:
54

Original file line numberDiff line numberDiff line change
@@ -1,10 +1,7 @@
11
REQUIRES: zlib
22

3-
RUN: echo "%p/Inputs/dwarfdump-test-zlib.elf-x86-64 0x4005e9" > %t1.input
4-
RUN: llvm-symbolizer < %t1.input | FileCheck %s
5-
6-
RUN: echo "%p/Inputs/dwarfdump-test-zlibgnu.elf-x86-64 0x4005e9" > %t2.input
7-
RUN: llvm-symbolizer < %t2.input | FileCheck %s
3+
RUN: llvm-symbolizer --obj=%p/Inputs/dwarfdump-test-zlib.elf-x86-64 0x4005e9 | FileCheck %s
4+
RUN: llvm-symbolizer --obj=%p/Inputs/dwarfdump-test-zlibgnu.elf-x86-64 0x4005e9 | FileCheck %s
85

96
CHECK: main
107
CHECK-NEXT: /tmp/dbginfo{{[/\\]}}dwarfdump-test-zlib.cc:16

llvm/test/tools/llvm-symbolizer/coff-dwarf.test

+3-9
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,13 @@
1-
RUN: grep '^ADDR:' %s | sed -s 's/ADDR: //' \
2-
RUN: | llvm-symbolizer --inlining --relative-address -obj="%p/Inputs/coff-dwarf.exe" \
1+
RUN: llvm-symbolizer 0x5009 0x5038 --inlining --relative-address -obj="%p/Inputs/coff-dwarf.exe" \
32
RUN: | FileCheck %s
4-
RUN: grep '^ADDR:' %s | sed -s 's/ADDR: //' \
5-
RUN: | llvm-symbolizer --inlines --relative-address -obj="%p/Inputs/coff-dwarf.exe" \
3+
RUN: llvm-symbolizer 0x5009 0x5038 --inlines --relative-address -obj="%p/Inputs/coff-dwarf.exe" \
64
RUN: | FileCheck %s
7-
RUN: grep '^ADDR:' %s | sed -s 's/ADDR: //' \
8-
RUN: | llvm-symbolizer -i --relative-address -obj="%p/Inputs/coff-dwarf.exe" \
5+
RUN: llvm-symbolizer 0x5009 0x5038 -i --relative-address -obj="%p/Inputs/coff-dwarf.exe" \
96
RUN: | FileCheck %s
107

118
This test relies on UnDecorateSymbolName, which is Windows-only.
129
REQUIRES: target-windows, system-windows
1310

14-
ADDR: 0x5009
15-
ADDR: 0x5038
16-
1711
CHECK: foo(void)
1812
CHECK: coff-dwarf.cpp:7
1913
CHECK: bar(void)

llvm/test/tools/llvm-symbolizer/coff-exports.test

+6-13
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,15 @@
1-
RUN: grep '^ADDR:' %s | sed -s 's/ADDR: //' \
2-
RUN: | llvm-symbolizer --inlining --relative-address -obj="%p/Inputs/coff-exports.exe" \
3-
RUN: | FileCheck %s
4-
RUN: grep '^ADDR:' %s | sed -s 's/ADDR: //' \
5-
RUN: | llvm-symbolizer --inlines --relative-address -obj="%p/Inputs/coff-exports.exe" \
6-
RUN: | FileCheck %s
7-
RUN: grep '^ADDR:' %s | sed -s 's/ADDR: //' \
8-
RUN: | llvm-symbolizer -i --relative-address -obj="%p/Inputs/coff-exports.exe" \
9-
RUN: | FileCheck %s
1+
RUN: llvm-symbolizer 0x500A 0x5038 0x504B --inlining --relative-address -obj="%p/Inputs/coff-exports.exe" \
2+
RUN: | FileCheck %s
3+
RUN: llvm-symbolizer 0x500A 0x5038 0x504B --inlines --relative-address -obj="%p/Inputs/coff-exports.exe" \
4+
RUN: | FileCheck %s
5+
RUN: llvm-symbolizer 0x500A 0x5038 0x504B -i --relative-address -obj="%p/Inputs/coff-exports.exe" \
6+
RUN: | FileCheck %s
107

118
This test relies on UnDecorateSymbolName, which is Win32-only.
129
REQUIRES: system-windows
1310
REQUIRES: target-windows
1411
FIXME: This test depends on host, not target.
1512

16-
ADDR: 0x500A
17-
ADDR: 0x5038
18-
ADDR: 0x504B
19-
2013
We get the expected stack trace, except 'foo' appears for the 'bar' frame
2114
because 'bar' isn't in the export table.
2215

llvm/test/tools/llvm-symbolizer/fat.test

+5-5
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
RUN: echo 0 | llvm-symbolizer -obj=%p/Inputs/fat.o -default-arch=x86_64 | FileCheck --check-prefix=X86_64 %s
2-
RUN: echo 0 | llvm-symbolizer -obj=%p/Inputs/fat.o -default-arch=x86_64h | FileCheck --check-prefix=X86_64H %s
3-
RUN: echo 0 | llvm-symbolizer -obj=%p/Inputs/fat.o -default-arch=armv7 | FileCheck --check-prefix=ARMV7 %s
4-
RUN: echo 0 | llvm-symbolizer -obj=%p/Inputs/fat.o -default-arch=armv7em | FileCheck --check-prefix=ARMV7EM %s
5-
RUN: echo 0 | llvm-symbolizer -obj=%p/Inputs/fat.o -default-arch=armv7m | FileCheck --check-prefix=ARMV7M %s
1+
RUN: llvm-symbolizer 0 -obj=%p/Inputs/fat.o -default-arch=x86_64 | FileCheck --check-prefix=X86_64 %s
2+
RUN: llvm-symbolizer 0 -obj=%p/Inputs/fat.o -default-arch=x86_64h | FileCheck --check-prefix=X86_64H %s
3+
RUN: llvm-symbolizer 0 -obj=%p/Inputs/fat.o -default-arch=armv7 | FileCheck --check-prefix=ARMV7 %s
4+
RUN: llvm-symbolizer 0 -obj=%p/Inputs/fat.o -default-arch=armv7em | FileCheck --check-prefix=ARMV7EM %s
5+
RUN: llvm-symbolizer 0 -obj=%p/Inputs/fat.o -default-arch=armv7m | FileCheck --check-prefix=ARMV7M %s
66

77
X86_64: x86_64_function
88
X86_64H: x86_64h_function

llvm/test/tools/llvm-symbolizer/padding-x86_64.ll

+3-3
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@
22
; Checks if symbolizer can correctly symbolize address in the padding between
33
; functions.
44
; RUN: llc -o %t.o -filetype=obj -mtriple=x86_64-pc-linux %s
5-
; RUN: echo 0x5 | llvm-symbolizer -obj=%t.o | FileCheck %s --check-prefix=FOO
6-
; RUN: echo 0xd | llvm-symbolizer -obj=%t.o | FileCheck %s --check-prefix=PADDING
7-
; RUN: echo 0x10 | llvm-symbolizer -obj=%t.o | FileCheck %s --check-prefix=MAIN
5+
; RUN: llvm-symbolizer 0x5 -obj=%t.o | FileCheck %s --check-prefix=FOO
6+
; RUN: llvm-symbolizer 0xd -obj=%t.o | FileCheck %s --check-prefix=PADDING
7+
; RUN: llvm-symbolizer 0x10 -obj=%t.o | FileCheck %s --check-prefix=MAIN
88

99
;FOO: foo
1010
;PADDING: ??

llvm/test/tools/llvm-symbolizer/pdb/missing_pdb.test

+1-5
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,7 @@
1-
RUN: grep '^ADDR:' %s | sed -s 's/ADDR: //' \
2-
RUN: | llvm-symbolizer -obj="%p/Inputs/missing_pdb.exe" 2>%t.err \
1+
RUN: llvm-symbolizer 0x401000 0x401001 -obj="%p/Inputs/missing_pdb.exe" 2>%t.err \
32
RUN: | FileCheck %s
43
RUN: FileCheck --check-prefix=ERROR %s < %t.err
54

6-
ADDR: 0x401000
7-
ADDR: 0x401001
8-
95
llvm-symbolizer should print one error and two unknown line info records.
106

117
ERROR: LLVMSymbolizer: error reading file: {{.*}}: {{N|n}}o such file or directory

llvm/test/tools/llvm-symbolizer/pdb/pdb.test

+13-17
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,23 @@
1-
RUN: grep '^ADDR:' %s | sed -s 's/ADDR: //' \
2-
RUN: | llvm-symbolizer -obj="%p/Inputs/test.exe" \
1+
RUN: echo 0x401380 > %t.input
2+
RUN: echo 0x401390 >> %t.input
3+
RUN: echo 0x4013A0 >> %t.input
4+
RUN: echo 0x4013C0 >> %t.input
5+
RUN: echo 0x4013D0 >> %t.input
6+
RUN: echo 0x4013E0 >> %t.input
7+
RUN: echo 0x4013F0 >> %t.input
8+
RUN: echo 0x401420 >> %t.input
9+
RUN: llvm-symbolizer -obj="%p/Inputs/test.exe" < %t.input \
310
RUN: | FileCheck %s
4-
RUN: grep '^ADDR:' %s | sed -s 's/ADDR: //' \
5-
RUN: | llvm-symbolizer -obj="%p/Inputs/test.exe" -demangle=false \
6-
RUN: | FileCheck %s --check-prefix=CHECK-NO-DEMANGLE
11+
RUN: llvm-symbolizer -obj="%p/Inputs/test.exe" -demangle=false < %t.input \
12+
RUN: | FileCheck %s --check-prefix=CHECK-NO-DEMANGLE
713

814
Subtract ImageBase from all the offsets and run the test again with
915
--relative-address.
1016

11-
RUN: grep '^ADDR:' %s | sed -s 's/ADDR: //' \
12-
RUN: | %python -c 'import sys;print("\n".join([hex(int(x, 16) - 0x400000) for x in sys.stdin]))' \
13-
RUN: | llvm-symbolizer -obj="%p/Inputs/test.exe" -demangle=false --relative-address \
17+
RUN: %python -c 'import sys;print("\n".join([hex(int(x, 16) - 0x400000) for x in sys.stdin]))' < %t.input \
18+
RUN: | llvm-symbolizer -obj="%p/Inputs/test.exe" -demangle=false --relative-address \
1419
RUN: | FileCheck %s --check-prefix=CHECK-NO-DEMANGLE
1520

16-
ADDR: 0x401380
17-
ADDR: 0x401390
18-
ADDR: 0x4013A0
19-
ADDR: 0x4013C0
20-
ADDR: 0x4013D0
21-
ADDR: 0x4013E0
22-
ADDR: 0x4013F0
23-
ADDR: 0x401420
24-
2521
CHECK: foo(void)
2622
CHECK-NEXT: test.cpp:10
2723
CHECK: {{^private_symbol$}}

llvm/test/tools/llvm-symbolizer/ppc64.test

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ int foo() { return 0; }
44
int bar() { return foo(); }
55
int _start() { return bar(); }
66

7-
RUN: %python -c "print('0x1000014c\n0x1000018c\n0x100001cc')" | llvm-symbolizer -obj=%p/Inputs/ppc64 | FileCheck %s
7+
RUN: llvm-symbolizer 0x1000014c 0x1000018c 0x100001cc -obj=%p/Inputs/ppc64 | FileCheck %s
88

99
CHECK: foo
1010
CHECK: bar

llvm/test/tools/llvm-symbolizer/print_context.c

+1-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ int main() {
1313
// RUN: cp %s %t/
1414
// RUN: cp %p/Inputs/print_context.o %t
1515
// RUN: cd %t
16-
// RUN: echo "%t/print_context.o 0x0" | llvm-symbolizer -print-source-context-lines=5 | FileCheck %s
16+
// RUN: llvm-symbolizer -obj=%t/print_context.o 0x0 -print-source-context-lines=5 | FileCheck %s
1717

1818
// Inputs/print_context.o built with plain -g -c from this source file
1919
// Specifying -Xclang -fdebug-compilation-dir -Xclang . to make the debug info

0 commit comments

Comments
 (0)