[llvm] r352754 - [llvm-symbolizer][test] Extract tests from llvm-symbolizer.test and simplify (#2)
James Henderson via llvm-commits
llvm-commits at lists.llvm.org
Thu Jan 31 06:17:34 PST 2019
Author: jhenderson
Date: Thu Jan 31 06:17:33 2019
New Revision: 352754
URL: http://llvm.org/viewvc/llvm-project?rev=352754&view=rev
Log:
[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
Added:
llvm/trunk/test/DebugInfo/symbolize-demangling.s
llvm/trunk/test/DebugInfo/symbolize-macho-universal-unknown-arch.test
llvm/trunk/test/DebugInfo/symbolize-macho-universal.test
llvm/trunk/test/tools/llvm-symbolizer/demangle.s
Modified:
llvm/trunk/test/DebugInfo/Inputs/llvm-symbolizer-test.c
llvm/trunk/test/DebugInfo/llvm-symbolizer.test
Modified: llvm/trunk/test/DebugInfo/Inputs/llvm-symbolizer-test.c
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/DebugInfo/Inputs/llvm-symbolizer-test.c?rev=352754&r1=352753&r2=352754&view=diff
==============================================================================
--- llvm/trunk/test/DebugInfo/Inputs/llvm-symbolizer-test.c (original)
+++ llvm/trunk/test/DebugInfo/Inputs/llvm-symbolizer-test.c Thu Jan 31 06:17:33 2019
@@ -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>
Modified: llvm/trunk/test/DebugInfo/llvm-symbolizer.test
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/DebugInfo/llvm-symbolizer.test?rev=352754&r1=352753&r2=352754&view=diff
==============================================================================
--- llvm/trunk/test/DebugInfo/llvm-symbolizer.test (original)
+++ llvm/trunk/test/DebugInfo/llvm-symbolizer.test Thu Jan 31 06:17:33 2019
@@ -15,13 +15,10 @@ RUN: cp "%p/Inputs/dwarfdump-test3.elf-x
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\" 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: 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-NEXT: /tmp/dbginfo{{[/\\]}}dwarfdump-test.cc:16
@@ -76,58 +73,7 @@ CHECK-NEXT: /tmp/include{{[/\\]}}dwarfdu
CHECK: _Z3do2v
CHECK-NEXT: /tmp/dbginfo{{[/\\]}}include{{[/\\]}}dwarfdump-test3-decl2.h:1
-CHECK: main
-CHECK: _Z3inci
-CHECK: _Z3inci
-
RUN: echo "unexisting-file 0x1234" > %t.input2
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
-
-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()
Added: llvm/trunk/test/DebugInfo/symbolize-demangling.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/DebugInfo/symbolize-demangling.s?rev=352754&view=auto
==============================================================================
--- llvm/trunk/test/DebugInfo/symbolize-demangling.s (added)
+++ llvm/trunk/test/DebugInfo/symbolize-demangling.s Thu Jan 31 06:17:33 2019
@@ -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, at function
+.type g, at function
+.type baz, at function
+_Z1fv:
+ nop
+g:
+ nop
+baz:
+ nop
Added: llvm/trunk/test/DebugInfo/symbolize-macho-universal-unknown-arch.test
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/DebugInfo/symbolize-macho-universal-unknown-arch.test?rev=352754&view=auto
==============================================================================
--- llvm/trunk/test/DebugInfo/symbolize-macho-universal-unknown-arch.test (added)
+++ llvm/trunk/test/DebugInfo/symbolize-macho-universal-unknown-arch.test Thu Jan 31 06:17:33 2019
@@ -0,0 +1,5 @@
+RUN: llvm-symbolizer --obj=%p/Inputs/macho-universal 0x1f84 | FileCheck %s
+
+CHECK-NOT: main
+CHECK: ??
+CHECK-NOT: main
Added: llvm/trunk/test/DebugInfo/symbolize-macho-universal.test
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/DebugInfo/symbolize-macho-universal.test?rev=352754&view=auto
==============================================================================
--- llvm/trunk/test/DebugInfo/symbolize-macho-universal.test (added)
+++ llvm/trunk/test/DebugInfo/symbolize-macho-universal.test Thu Jan 31 06:17:33 2019
@@ -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
Added: llvm/trunk/test/tools/llvm-symbolizer/demangle.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-symbolizer/demangle.s?rev=352754&view=auto
==============================================================================
--- llvm/trunk/test/tools/llvm-symbolizer/demangle.s (added)
+++ llvm/trunk/test/tools/llvm-symbolizer/demangle.s Thu Jan 31 06:17:33 2019
@@ -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, at 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()
More information about the llvm-commits
mailing list