mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-26 04:32:44 +01:00
[llvm-symbolizer][test] Extract tests from llvm-symbolizer.test and simplify (#2)
This is the third of a series of patches simplifying llvm-symbolizer tests. See r352752 and r352753 for the previous two. This patch splits out a number of distinct test cases from llvm-symbolizer.test into separate tests, and simplifies them in various ways including: 1) using --obj/positional arguments for the input file and addresses instead of stdin, 2) using runtime-generated inputs rather than a pre-canned binary, and 3) testing more specifically (i.e. checking only what is interesting to the behaviour changed in the original commit for that test case). This patch also removes the test case for using --obj. The tools/llvm-symbolizer/basic.s test already tests this case. Finally, this patch adds a simple test case to the demangle switch test case to show that demangling happens by default. See https://bugs.llvm.org/show_bug.cgi?id=40070#c1 for the motivation. Reviewed by: dblaikie Differential Revision: https://reviews.llvm.org/D57446 llvm-svn: 352754
This commit is contained in:
parent
fd2279a200
commit
a090f05f4d
@ -1,18 +0,0 @@
|
|||||||
int f(int a, int b) {
|
|
||||||
return a + b;
|
|
||||||
}
|
|
||||||
|
|
||||||
int g(int a) {
|
|
||||||
return a + 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
int main() {
|
|
||||||
return f(2, g(2));
|
|
||||||
}
|
|
||||||
|
|
||||||
// Built with Clang 3.3:
|
|
||||||
// $ mkdir -p /tmp/dbginfo
|
|
||||||
// $ cp llvm-symbolizer-test.c /tmp/dbginfo
|
|
||||||
// $ cd /tmp/dbginfo
|
|
||||||
// $ clang -g llvm-symbolizer-test.c -o <output>
|
|
@ -15,13 +15,10 @@ RUN: cp "%p/Inputs/dwarfdump-test3.elf-x86-64-space" "%t/dwarfdump-test3.elf-x86
|
|||||||
RUN: echo "\"%t/dwarfdump-test3.elf-x86-64 space\" 0x640" >> %t.input
|
RUN: echo "\"%t/dwarfdump-test3.elf-x86-64 space\" 0x640" >> %t.input
|
||||||
RUN: echo "\"%t/dwarfdump-test3.elf-x86-64 space\" 0x633" >> %t.input
|
RUN: echo "\"%t/dwarfdump-test3.elf-x86-64 space\" 0x633" >> %t.input
|
||||||
RUN: echo "\"%t/dwarfdump-test3.elf-x86-64 space\" 0x62d" >> %t.input
|
RUN: echo "\"%t/dwarfdump-test3.elf-x86-64 space\" 0x62d" >> %t.input
|
||||||
RUN: echo "%p/Inputs/macho-universal 0x1f84" >> %t.input
|
|
||||||
RUN: echo "%p/Inputs/macho-universal:i386 0x1f67" >> %t.input
|
|
||||||
RUN: echo "%p/Inputs/macho-universal:x86_64 0x100000f05" >> %t.input
|
|
||||||
|
|
||||||
RUN: cd %t
|
RUN: cd %t
|
||||||
RUN: llvm-symbolizer --functions=linkage --inlining --demangle=false \
|
RUN: llvm-symbolizer --functions=linkage --inlining --demangle=false \
|
||||||
RUN: --default-arch=i386 < %t.input | FileCheck --check-prefix=CHECK --check-prefix=SPLIT --check-prefix=DWO %s
|
RUN: < %t.input | FileCheck --check-prefix=CHECK --check-prefix=SPLIT --check-prefix=DWO %s
|
||||||
|
|
||||||
CHECK: main
|
CHECK: main
|
||||||
CHECK-NEXT: /tmp/dbginfo{{[/\\]}}dwarfdump-test.cc:16
|
CHECK-NEXT: /tmp/dbginfo{{[/\\]}}dwarfdump-test.cc:16
|
||||||
@ -76,58 +73,7 @@ CHECK-NEXT: /tmp/include{{[/\\]}}dwarfdump-test3-decl.h:7
|
|||||||
CHECK: _Z3do2v
|
CHECK: _Z3do2v
|
||||||
CHECK-NEXT: /tmp/dbginfo{{[/\\]}}include{{[/\\]}}dwarfdump-test3-decl2.h:1
|
CHECK-NEXT: /tmp/dbginfo{{[/\\]}}include{{[/\\]}}dwarfdump-test3-decl2.h:1
|
||||||
|
|
||||||
CHECK: main
|
|
||||||
CHECK: _Z3inci
|
|
||||||
CHECK: _Z3inci
|
|
||||||
|
|
||||||
RUN: echo "unexisting-file 0x1234" > %t.input2
|
RUN: echo "unexisting-file 0x1234" > %t.input2
|
||||||
RUN: llvm-symbolizer < %t.input2 2>&1 | FileCheck %s --check-prefix=MISSING-FILE
|
RUN: llvm-symbolizer < %t.input2 2>&1 | FileCheck %s --check-prefix=MISSING-FILE
|
||||||
|
|
||||||
MISSING-FILE: LLVMSymbolizer: error reading file: {{[Nn]}}o such file or directory
|
MISSING-FILE: LLVMSymbolizer: error reading file: {{[Nn]}}o such file or directory
|
||||||
|
|
||||||
RUN: echo "%p/Inputs/macho-universal 0x1f84" > %t.input3
|
|
||||||
RUN: llvm-symbolizer < %t.input3 | FileCheck %s --check-prefix=UNKNOWN-ARCH
|
|
||||||
|
|
||||||
UNKNOWN-ARCH-NOT: main
|
|
||||||
UNKNOWN-ARCH: ??
|
|
||||||
UNKNOWN-ARCH-NOT: main
|
|
||||||
|
|
||||||
RUN: echo "0x40113f" > %t.input4
|
|
||||||
RUN: echo "0x401020" >> %t.input4
|
|
||||||
RUN: llvm-symbolizer --obj %p/Inputs/dwarfdump-test.elf-x86-64 < %t.input4 \
|
|
||||||
RUN: | FileCheck %s --check-prefix=BINARY
|
|
||||||
|
|
||||||
BINARY: main
|
|
||||||
BINARY-NEXT: /tmp/dbginfo{{[/\\]}}dwarfdump-test.cc:16
|
|
||||||
BINARY: _start
|
|
||||||
|
|
||||||
RUN: echo "0x401140" > %t.input5
|
|
||||||
RUN: echo "0x401020" >> %t.input5
|
|
||||||
RUN: echo "0x401120" >> %t.input5
|
|
||||||
RUN: llvm-symbolizer --obj %p/Inputs/llvm-symbolizer-test.elf-x86-64 < %t.input5 \
|
|
||||||
RUN: | FileCheck %s --check-prefix=BINARY_C
|
|
||||||
|
|
||||||
BINARY_C: main
|
|
||||||
BINARY_C-NEXT: /tmp/dbginfo{{[/\\]}}llvm-symbolizer-test.c:10
|
|
||||||
BINARY_C: _start
|
|
||||||
BINARY_C: {{g$}}
|
|
||||||
|
|
||||||
; Check that the last of --demangle and --no-demangle wins.
|
|
||||||
RUN: echo "%p/Inputs/dwarfdump-test4.elf-x86-64 0x62c" > %t.input7
|
|
||||||
RUN: llvm-symbolizer --demangle < %t.input7 \
|
|
||||||
RUN: | FileCheck %s --check-prefix=DEMANGLED_FUNCTION_NAME
|
|
||||||
RUN: llvm-symbolizer -C < %t.input7 \
|
|
||||||
RUN: | FileCheck %s --check-prefix=DEMANGLED_FUNCTION_NAME
|
|
||||||
RUN: llvm-symbolizer --no-demangle < %t.input7 \
|
|
||||||
RUN: | FileCheck %s --check-prefix=MANGLED_FUNCTION_NAME
|
|
||||||
RUN: llvm-symbolizer --demangle --no-demangle < %t.input7 \
|
|
||||||
RUN: | FileCheck %s --check-prefix=MANGLED_FUNCTION_NAME
|
|
||||||
RUN: llvm-symbolizer -C --no-demangle < %t.input7 \
|
|
||||||
RUN: | FileCheck %s --check-prefix=MANGLED_FUNCTION_NAME
|
|
||||||
RUN: llvm-symbolizer --no-demangle --demangle < %t.input7 \
|
|
||||||
RUN: | FileCheck %s --check-prefix=DEMANGLED_FUNCTION_NAME
|
|
||||||
RUN: llvm-symbolizer --no-demangle -C < %t.input7 \
|
|
||||||
RUN: | FileCheck %s --check-prefix=DEMANGLED_FUNCTION_NAME
|
|
||||||
|
|
||||||
MANGLED_FUNCTION_NAME: _Z1cv
|
|
||||||
DEMANGLED_FUNCTION_NAME: c()
|
|
||||||
|
24
test/DebugInfo/symbolize-demangling.s
Normal file
24
test/DebugInfo/symbolize-demangling.s
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
# REQUIRES: x86-registered-target
|
||||||
|
|
||||||
|
# RUN: llvm-mc --filetype=obj --triple=x86_64-pc-linux %s -o %t.o -g
|
||||||
|
|
||||||
|
# RUN: llvm-symbolizer --obj=%t.o 0 1 2 | FileCheck %s
|
||||||
|
|
||||||
|
# CHECK: f()
|
||||||
|
# CHECK-NEXT: symbolize-demangling.s:20
|
||||||
|
# CHECK-EMPTY:
|
||||||
|
# CHECK-NEXT: {{^g$}}
|
||||||
|
# CHECK-NEXT: symbolize-demangling.s:22
|
||||||
|
# CHECK-EMPTY:
|
||||||
|
# CHECK-NEXT: {{^baz$}}
|
||||||
|
# CHECK-NEXT: symbolize-demangling.s:24
|
||||||
|
|
||||||
|
.type _Z1fv,@function
|
||||||
|
.type g,@function
|
||||||
|
.type baz,@function
|
||||||
|
_Z1fv:
|
||||||
|
nop
|
||||||
|
g:
|
||||||
|
nop
|
||||||
|
baz:
|
||||||
|
nop
|
@ -0,0 +1,5 @@
|
|||||||
|
RUN: llvm-symbolizer --obj=%p/Inputs/macho-universal 0x1f84 | FileCheck %s
|
||||||
|
|
||||||
|
CHECK-NOT: main
|
||||||
|
CHECK: ??
|
||||||
|
CHECK-NOT: main
|
7
test/DebugInfo/symbolize-macho-universal.test
Normal file
7
test/DebugInfo/symbolize-macho-universal.test
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
RUN: llvm-symbolizer --no-demangle --default-arch=i386 --obj=%p/Inputs/macho-universal 0x1f84 | FileCheck %s --check-prefix=DEFAULT
|
||||||
|
RUN: llvm-symbolizer --no-demangle --obj=%p/Inputs/macho-universal:i386 0x1f67 | FileCheck %s --check-prefix=I386
|
||||||
|
RUN: llvm-symbolizer --no-demangle --obj=%p/Inputs/macho-universal:x86_64 0x100000f05 | FileCheck %s --check-prefix=X86-64
|
||||||
|
|
||||||
|
DEFAULT: main
|
||||||
|
I386: _Z3inci
|
||||||
|
X86-64: _Z3inci
|
29
test/tools/llvm-symbolizer/demangle.s
Normal file
29
test/tools/llvm-symbolizer/demangle.s
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
# REQUIRES: x86-registered-target
|
||||||
|
|
||||||
|
# RUN: llvm-mc -filetype=obj -triple=x86_64-pc-linux %s -o %t.o -g
|
||||||
|
|
||||||
|
.type _Z1cv,@function
|
||||||
|
_Z1cv:
|
||||||
|
nop
|
||||||
|
|
||||||
|
# Check the default is to demangle and that the last of --demangle and
|
||||||
|
# --no-demangle wins.
|
||||||
|
# RUN: llvm-symbolizer --obj %t.o 0 \
|
||||||
|
# RUN: | FileCheck %s --check-prefix=DEMANGLED_FUNCTION_NAME
|
||||||
|
# RUN: llvm-symbolizer --demangle --obj %t.o 0 \
|
||||||
|
# RUN: | FileCheck %s --check-prefix=DEMANGLED_FUNCTION_NAME
|
||||||
|
# RUN: llvm-symbolizer -C --obj %t.o 0 \
|
||||||
|
# RUN: | FileCheck %s --check-prefix=DEMANGLED_FUNCTION_NAME
|
||||||
|
# RUN: llvm-symbolizer --no-demangle --obj %t.o 0 \
|
||||||
|
# RUN: | FileCheck %s --check-prefix=MANGLED_FUNCTION_NAME
|
||||||
|
# RUN: llvm-symbolizer --demangle --no-demangle --obj %t.o 0 \
|
||||||
|
# RUN: | FileCheck %s --check-prefix=MANGLED_FUNCTION_NAME
|
||||||
|
# RUN: llvm-symbolizer -C --no-demangle --obj %t.o 0 \
|
||||||
|
# RUN: | FileCheck %s --check-prefix=MANGLED_FUNCTION_NAME
|
||||||
|
# RUN: llvm-symbolizer --no-demangle --demangle --obj %t.o 0 \
|
||||||
|
# RUN: | FileCheck %s --check-prefix=DEMANGLED_FUNCTION_NAME
|
||||||
|
# RUN: llvm-symbolizer --no-demangle -C --obj %t.o 0 \
|
||||||
|
# RUN: | FileCheck %s --check-prefix=DEMANGLED_FUNCTION_NAME
|
||||||
|
|
||||||
|
# MANGLED_FUNCTION_NAME: _Z1cv
|
||||||
|
# DEMANGLED_FUNCTION_NAME: c()
|
Loading…
Reference in New Issue
Block a user