[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