diff options
| author | James Henderson <jh7370@my.bristol.ac.uk> | 2019-01-31 14:04:47 +0000 |
|---|---|---|
| committer | James Henderson <jh7370@my.bristol.ac.uk> | 2019-01-31 14:04:47 +0000 |
| commit | ca8f3cb27c0e569d8b2a2a23aabf2feb5fe6333f (patch) | |
| tree | fed582352513a624e2c679072987d7f50f866be8 /llvm/test/tools/llvm-symbolizer | |
| parent | 63f3383ece25efa625eab4d0cd75b4225a3f034c (diff) | |
| download | bcm5719-llvm-ca8f3cb27c0e569d8b2a2a23aabf2feb5fe6333f.tar.gz bcm5719-llvm-ca8f3cb27c0e569d8b2a2a23aabf2feb5fe6333f.zip | |
[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
Diffstat (limited to 'llvm/test/tools/llvm-symbolizer')
| -rw-r--r-- | llvm/test/tools/llvm-symbolizer/coff-dwarf.test | 12 | ||||
| -rw-r--r-- | llvm/test/tools/llvm-symbolizer/coff-exports.test | 19 | ||||
| -rw-r--r-- | llvm/test/tools/llvm-symbolizer/fat.test | 10 | ||||
| -rw-r--r-- | llvm/test/tools/llvm-symbolizer/padding-x86_64.ll | 6 | ||||
| -rw-r--r-- | llvm/test/tools/llvm-symbolizer/pdb/missing_pdb.test | 6 | ||||
| -rw-r--r-- | llvm/test/tools/llvm-symbolizer/pdb/pdb.test | 30 | ||||
| -rw-r--r-- | llvm/test/tools/llvm-symbolizer/ppc64.test | 2 | ||||
| -rw-r--r-- | llvm/test/tools/llvm-symbolizer/print_context.c | 2 |
8 files changed, 33 insertions, 54 deletions
diff --git a/llvm/test/tools/llvm-symbolizer/coff-dwarf.test b/llvm/test/tools/llvm-symbolizer/coff-dwarf.test index ac3d3bd689f..790763a2ddf 100644 --- a/llvm/test/tools/llvm-symbolizer/coff-dwarf.test +++ b/llvm/test/tools/llvm-symbolizer/coff-dwarf.test @@ -1,19 +1,13 @@ -RUN: grep '^ADDR:' %s | sed -s 's/ADDR: //' \ -RUN: | llvm-symbolizer --inlining --relative-address -obj="%p/Inputs/coff-dwarf.exe" \ +RUN: llvm-symbolizer 0x5009 0x5038 --inlining --relative-address -obj="%p/Inputs/coff-dwarf.exe" \ RUN: | FileCheck %s -RUN: grep '^ADDR:' %s | sed -s 's/ADDR: //' \ -RUN: | llvm-symbolizer --inlines --relative-address -obj="%p/Inputs/coff-dwarf.exe" \ +RUN: llvm-symbolizer 0x5009 0x5038 --inlines --relative-address -obj="%p/Inputs/coff-dwarf.exe" \ RUN: | FileCheck %s -RUN: grep '^ADDR:' %s | sed -s 's/ADDR: //' \ -RUN: | llvm-symbolizer -i --relative-address -obj="%p/Inputs/coff-dwarf.exe" \ +RUN: llvm-symbolizer 0x5009 0x5038 -i --relative-address -obj="%p/Inputs/coff-dwarf.exe" \ RUN: | FileCheck %s This test relies on UnDecorateSymbolName, which is Windows-only. REQUIRES: target-windows, system-windows -ADDR: 0x5009 -ADDR: 0x5038 - CHECK: foo(void) CHECK: coff-dwarf.cpp:7 CHECK: bar(void) diff --git a/llvm/test/tools/llvm-symbolizer/coff-exports.test b/llvm/test/tools/llvm-symbolizer/coff-exports.test index 470d198a415..8678aae2960 100644 --- a/llvm/test/tools/llvm-symbolizer/coff-exports.test +++ b/llvm/test/tools/llvm-symbolizer/coff-exports.test @@ -1,22 +1,15 @@ -RUN: grep '^ADDR:' %s | sed -s 's/ADDR: //' \ -RUN: | llvm-symbolizer --inlining --relative-address -obj="%p/Inputs/coff-exports.exe" \ -RUN: | FileCheck %s -RUN: grep '^ADDR:' %s | sed -s 's/ADDR: //' \ -RUN: | llvm-symbolizer --inlines --relative-address -obj="%p/Inputs/coff-exports.exe" \ -RUN: | FileCheck %s -RUN: grep '^ADDR:' %s | sed -s 's/ADDR: //' \ -RUN: | llvm-symbolizer -i --relative-address -obj="%p/Inputs/coff-exports.exe" \ -RUN: | FileCheck %s +RUN: llvm-symbolizer 0x500A 0x5038 0x504B --inlining --relative-address -obj="%p/Inputs/coff-exports.exe" \ +RUN: | FileCheck %s +RUN: llvm-symbolizer 0x500A 0x5038 0x504B --inlines --relative-address -obj="%p/Inputs/coff-exports.exe" \ +RUN: | FileCheck %s +RUN: llvm-symbolizer 0x500A 0x5038 0x504B -i --relative-address -obj="%p/Inputs/coff-exports.exe" \ +RUN: | FileCheck %s This test relies on UnDecorateSymbolName, which is Win32-only. REQUIRES: system-windows REQUIRES: target-windows FIXME: This test depends on host, not target. -ADDR: 0x500A -ADDR: 0x5038 -ADDR: 0x504B - We get the expected stack trace, except 'foo' appears for the 'bar' frame because 'bar' isn't in the export table. diff --git a/llvm/test/tools/llvm-symbolizer/fat.test b/llvm/test/tools/llvm-symbolizer/fat.test index 1ecd1abb356..4596b4e079d 100644 --- a/llvm/test/tools/llvm-symbolizer/fat.test +++ b/llvm/test/tools/llvm-symbolizer/fat.test @@ -1,8 +1,8 @@ -RUN: echo 0 | llvm-symbolizer -obj=%p/Inputs/fat.o -default-arch=x86_64 | FileCheck --check-prefix=X86_64 %s -RUN: echo 0 | llvm-symbolizer -obj=%p/Inputs/fat.o -default-arch=x86_64h | FileCheck --check-prefix=X86_64H %s -RUN: echo 0 | llvm-symbolizer -obj=%p/Inputs/fat.o -default-arch=armv7 | FileCheck --check-prefix=ARMV7 %s -RUN: echo 0 | llvm-symbolizer -obj=%p/Inputs/fat.o -default-arch=armv7em | FileCheck --check-prefix=ARMV7EM %s -RUN: echo 0 | llvm-symbolizer -obj=%p/Inputs/fat.o -default-arch=armv7m | FileCheck --check-prefix=ARMV7M %s +RUN: llvm-symbolizer 0 -obj=%p/Inputs/fat.o -default-arch=x86_64 | FileCheck --check-prefix=X86_64 %s +RUN: llvm-symbolizer 0 -obj=%p/Inputs/fat.o -default-arch=x86_64h | FileCheck --check-prefix=X86_64H %s +RUN: llvm-symbolizer 0 -obj=%p/Inputs/fat.o -default-arch=armv7 | FileCheck --check-prefix=ARMV7 %s +RUN: llvm-symbolizer 0 -obj=%p/Inputs/fat.o -default-arch=armv7em | FileCheck --check-prefix=ARMV7EM %s +RUN: llvm-symbolizer 0 -obj=%p/Inputs/fat.o -default-arch=armv7m | FileCheck --check-prefix=ARMV7M %s X86_64: x86_64_function X86_64H: x86_64h_function diff --git a/llvm/test/tools/llvm-symbolizer/padding-x86_64.ll b/llvm/test/tools/llvm-symbolizer/padding-x86_64.ll index 1d3d6d8b689..7b2cff8b276 100644 --- a/llvm/test/tools/llvm-symbolizer/padding-x86_64.ll +++ b/llvm/test/tools/llvm-symbolizer/padding-x86_64.ll @@ -2,9 +2,9 @@ ; Checks if symbolizer can correctly symbolize address in the padding between ; functions. ; RUN: llc -o %t.o -filetype=obj -mtriple=x86_64-pc-linux %s -; RUN: echo 0x5 | llvm-symbolizer -obj=%t.o | FileCheck %s --check-prefix=FOO -; RUN: echo 0xd | llvm-symbolizer -obj=%t.o | FileCheck %s --check-prefix=PADDING -; RUN: echo 0x10 | llvm-symbolizer -obj=%t.o | FileCheck %s --check-prefix=MAIN +; RUN: llvm-symbolizer 0x5 -obj=%t.o | FileCheck %s --check-prefix=FOO +; RUN: llvm-symbolizer 0xd -obj=%t.o | FileCheck %s --check-prefix=PADDING +; RUN: llvm-symbolizer 0x10 -obj=%t.o | FileCheck %s --check-prefix=MAIN ;FOO: foo ;PADDING: ?? diff --git a/llvm/test/tools/llvm-symbolizer/pdb/missing_pdb.test b/llvm/test/tools/llvm-symbolizer/pdb/missing_pdb.test index e5282f30fa6..b83b46a7521 100644 --- a/llvm/test/tools/llvm-symbolizer/pdb/missing_pdb.test +++ b/llvm/test/tools/llvm-symbolizer/pdb/missing_pdb.test @@ -1,11 +1,7 @@ -RUN: grep '^ADDR:' %s | sed -s 's/ADDR: //' \ -RUN: | llvm-symbolizer -obj="%p/Inputs/missing_pdb.exe" 2>%t.err \ +RUN: llvm-symbolizer 0x401000 0x401001 -obj="%p/Inputs/missing_pdb.exe" 2>%t.err \ RUN: | FileCheck %s RUN: FileCheck --check-prefix=ERROR %s < %t.err -ADDR: 0x401000 -ADDR: 0x401001 - llvm-symbolizer should print one error and two unknown line info records. ERROR: LLVMSymbolizer: error reading file: {{.*}}: {{N|n}}o such file or directory diff --git a/llvm/test/tools/llvm-symbolizer/pdb/pdb.test b/llvm/test/tools/llvm-symbolizer/pdb/pdb.test index a97b35eab9c..062c0409895 100644 --- a/llvm/test/tools/llvm-symbolizer/pdb/pdb.test +++ b/llvm/test/tools/llvm-symbolizer/pdb/pdb.test @@ -1,27 +1,23 @@ -RUN: grep '^ADDR:' %s | sed -s 's/ADDR: //' \ -RUN: | llvm-symbolizer -obj="%p/Inputs/test.exe" \ +RUN: echo 0x401380 > %t.input +RUN: echo 0x401390 >> %t.input +RUN: echo 0x4013A0 >> %t.input +RUN: echo 0x4013C0 >> %t.input +RUN: echo 0x4013D0 >> %t.input +RUN: echo 0x4013E0 >> %t.input +RUN: echo 0x4013F0 >> %t.input +RUN: echo 0x401420 >> %t.input +RUN: llvm-symbolizer -obj="%p/Inputs/test.exe" < %t.input \ RUN: | FileCheck %s -RUN: grep '^ADDR:' %s | sed -s 's/ADDR: //' \ -RUN: | llvm-symbolizer -obj="%p/Inputs/test.exe" -demangle=false \ -RUN: | FileCheck %s --check-prefix=CHECK-NO-DEMANGLE +RUN: llvm-symbolizer -obj="%p/Inputs/test.exe" -demangle=false < %t.input \ +RUN: | FileCheck %s --check-prefix=CHECK-NO-DEMANGLE Subtract ImageBase from all the offsets and run the test again with --relative-address. -RUN: grep '^ADDR:' %s | sed -s 's/ADDR: //' \ -RUN: | %python -c 'import sys;print("\n".join([hex(int(x, 16) - 0x400000) for x in sys.stdin]))' \ -RUN: | llvm-symbolizer -obj="%p/Inputs/test.exe" -demangle=false --relative-address \ +RUN: %python -c 'import sys;print("\n".join([hex(int(x, 16) - 0x400000) for x in sys.stdin]))' < %t.input \ +RUN: | llvm-symbolizer -obj="%p/Inputs/test.exe" -demangle=false --relative-address \ RUN: | FileCheck %s --check-prefix=CHECK-NO-DEMANGLE -ADDR: 0x401380 -ADDR: 0x401390 -ADDR: 0x4013A0 -ADDR: 0x4013C0 -ADDR: 0x4013D0 -ADDR: 0x4013E0 -ADDR: 0x4013F0 -ADDR: 0x401420 - CHECK: foo(void) CHECK-NEXT: test.cpp:10 CHECK: {{^private_symbol$}} diff --git a/llvm/test/tools/llvm-symbolizer/ppc64.test b/llvm/test/tools/llvm-symbolizer/ppc64.test index fc8e4ffc7e2..681557cd2e5 100644 --- a/llvm/test/tools/llvm-symbolizer/ppc64.test +++ b/llvm/test/tools/llvm-symbolizer/ppc64.test @@ -4,7 +4,7 @@ int foo() { return 0; } int bar() { return foo(); } int _start() { return bar(); } -RUN: %python -c "print('0x1000014c\n0x1000018c\n0x100001cc')" | llvm-symbolizer -obj=%p/Inputs/ppc64 | FileCheck %s +RUN: llvm-symbolizer 0x1000014c 0x1000018c 0x100001cc -obj=%p/Inputs/ppc64 | FileCheck %s CHECK: foo CHECK: bar diff --git a/llvm/test/tools/llvm-symbolizer/print_context.c b/llvm/test/tools/llvm-symbolizer/print_context.c index fe8747c8dfd..5b80054416d 100644 --- a/llvm/test/tools/llvm-symbolizer/print_context.c +++ b/llvm/test/tools/llvm-symbolizer/print_context.c @@ -13,7 +13,7 @@ int main() { // RUN: cp %s %t/ // RUN: cp %p/Inputs/print_context.o %t // RUN: cd %t -// RUN: echo "%t/print_context.o 0x0" | llvm-symbolizer -print-source-context-lines=5 | FileCheck %s +// RUN: llvm-symbolizer -obj=%t/print_context.o 0x0 -print-source-context-lines=5 | FileCheck %s // Inputs/print_context.o built with plain -g -c from this source file // Specifying -Xclang -fdebug-compilation-dir -Xclang . to make the debug info |

