mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-10-19 02:52:53 +02:00
[llvm-nm] Additional lit tests for command line options
Differential Revision: https://reviews.llvm.org/D62955 llvm-svn: 363248
This commit is contained in:
parent
37794d7bd2
commit
d7b24c7030
@ -1,4 +1,3 @@
|
|||||||
RUN: llvm-nm -f sysv %p/Inputs/hello.obj.elf-i386
|
|
||||||
RUN: llvm-nm -f sysv %p/Inputs/hello.obj.elf-i386 | FileCheck %s --strict-whitespace
|
RUN: llvm-nm -f sysv %p/Inputs/hello.obj.elf-i386 | FileCheck %s --strict-whitespace
|
||||||
|
|
||||||
CHECK: Name Value Class Type Size Line Section
|
CHECK: Name Value Class Type Size Line Section
|
5
test/tools/llvm-nm/X86/format-sysv-64-bit.test
Normal file
5
test/tools/llvm-nm/X86/format-sysv-64-bit.test
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
RUN: llvm-nm -f sysv %p/Inputs/hello.obj.elf-x86_64 | FileCheck %s --strict-whitespace
|
||||||
|
|
||||||
|
CHECK: Name Value Class Type Size Line Section
|
||||||
|
CHECK: main |0000000000000000| T | FUNC|0000000000000015| |.text
|
||||||
|
CHECK: puts | | U | NOTYPE| | |*UND*
|
8
test/tools/llvm-nm/X86/macho-format-sysv.test
Normal file
8
test/tools/llvm-nm/X86/macho-format-sysv.test
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
RUN: llvm-nm -f sysv %p/Inputs/hello.obj.macho-x86_64 2>&1 | FileCheck %s --strict-whitespace
|
||||||
|
|
||||||
|
CHECK: Name Value Class Type Size Line Section
|
||||||
|
CHECK: EH_frame0 |0000000000000068| s | |0000000000000000| |
|
||||||
|
CHECK: L_.str |000000000000003b| s | |0000000000000000| |
|
||||||
|
CHECK: _main |0000000000000000| T | |0000000000000000| |
|
||||||
|
CHECK: _main.eh |0000000000000080| S | |0000000000000000| |
|
||||||
|
CHECK: _printf | | U | | | |
|
25
test/tools/llvm-nm/X86/portability.test
Normal file
25
test/tools/llvm-nm/X86/portability.test
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
# RUN: yaml2obj %s > %t.o
|
||||||
|
# RUN: llvm-nm %t.o --portability | FileCheck %s --strict-whitespace --match-full-lines
|
||||||
|
# RUN: llvm-nm %t.o -P | FileCheck %s --strict-whitespace --match-full-lines
|
||||||
|
|
||||||
|
!ELF
|
||||||
|
FileHeader:
|
||||||
|
Class: ELFCLASS64
|
||||||
|
Data: ELFDATA2LSB
|
||||||
|
Type: ET_REL
|
||||||
|
Machine: EM_X86_64
|
||||||
|
Sections:
|
||||||
|
- Name: .text
|
||||||
|
Type: SHT_PROGBITS
|
||||||
|
Symbols:
|
||||||
|
- Name: symbol_a
|
||||||
|
Section: .text
|
||||||
|
Size: 16
|
||||||
|
Value: 0xff
|
||||||
|
- Name: symbol_wider_name
|
||||||
|
Section: .text
|
||||||
|
Size: 256
|
||||||
|
Value: 0xffeedd
|
||||||
|
|
||||||
|
# CHECK:symbol_a n ff 10
|
||||||
|
# CHECK-NEXT:symbol_wider_name n ffeedd 100
|
@ -1,4 +0,0 @@
|
|||||||
# RUN: llvm-nm -P %p/Inputs/hello.obj.elf-x86_64 | FileCheck %s
|
|
||||||
|
|
||||||
CHECK: main T 0 15
|
|
||||||
CHECK: puts U 0 0
|
|
@ -1,13 +0,0 @@
|
|||||||
RUN: llvm-nm -f sysv %p/Inputs/hello.obj.elf-x86_64 | FileCheck %s --check-prefix=ELF --strict-whitespace
|
|
||||||
RUN: llvm-nm -f sysv %p/Inputs/hello.obj.macho-x86_64 2>&1 | FileCheck %s --check-prefix=MACHO --strict-whitespace
|
|
||||||
|
|
||||||
ELF: Name Value Class Type Size Line Section
|
|
||||||
ELF: main |0000000000000000| T | FUNC|0000000000000015| |.text
|
|
||||||
ELF: puts | | U | NOTYPE| | |*UND*
|
|
||||||
|
|
||||||
MACHO: Name Value Class Type Size Line Section
|
|
||||||
MACHO: EH_frame0 |0000000000000068| s | |0000000000000000| |
|
|
||||||
MACHO: L_.str |000000000000003b| s | |0000000000000000| |
|
|
||||||
MACHO: _main |0000000000000000| T | |0000000000000000| |
|
|
||||||
MACHO: _main.eh |0000000000000080| S | |0000000000000000| |
|
|
||||||
MACHO: _printf | | U | | | |
|
|
32
test/tools/llvm-nm/debug-syms.test
Normal file
32
test/tools/llvm-nm/debug-syms.test
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
# RUN: yaml2obj %s > %t.o
|
||||||
|
# RUN: llvm-nm --debug-syms %t.o | FileCheck %s --implicit-check-not U
|
||||||
|
# RUN: llvm-nm -a %t.o | FileCheck %s --implicit-check-not U
|
||||||
|
|
||||||
|
!ELF
|
||||||
|
FileHeader:
|
||||||
|
Class: ELFCLASS64
|
||||||
|
Data: ELFDATA2LSB
|
||||||
|
Type: ET_REL
|
||||||
|
Machine: EM_ARM
|
||||||
|
Sections:
|
||||||
|
- Name: section
|
||||||
|
Type: SHT_PROGBITS
|
||||||
|
Symbols:
|
||||||
|
- Name: ""
|
||||||
|
Type: STT_SECTION
|
||||||
|
Section: section
|
||||||
|
- Name: file_sym
|
||||||
|
Type: STT_FILE
|
||||||
|
Index: SHN_ABS
|
||||||
|
- Name: $d
|
||||||
|
Section: section
|
||||||
|
- Name: $t
|
||||||
|
Section: section
|
||||||
|
- Name: $a
|
||||||
|
Section: section
|
||||||
|
|
||||||
|
# CHECK: $a
|
||||||
|
# CHECK-NEXT: $d
|
||||||
|
# CHECK-NEXT: $t
|
||||||
|
# CHECK-NEXT: file_sym
|
||||||
|
# CHECK-NEXT: section
|
44
test/tools/llvm-nm/format-sysv-binding.test
Normal file
44
test/tools/llvm-nm/format-sysv-binding.test
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
# XFAIL: *
|
||||||
|
# For a symbol in a text section the class character for an unrecognised binding
|
||||||
|
# value is '?' in gnu-nm but llvm-nm prints 'T'. Filed as:
|
||||||
|
# https://bugs.llvm.org/show_bug.cgi?id=41711
|
||||||
|
|
||||||
|
# RUN: yaml2obj %s > %t.o
|
||||||
|
# RUN: llvm-nm %t.o --format=sysv | FileCheck %s
|
||||||
|
|
||||||
|
!ELF
|
||||||
|
FileHeader:
|
||||||
|
Class: ELFCLASS64
|
||||||
|
Data: ELFDATA2LSB
|
||||||
|
Type: ET_REL
|
||||||
|
Machine: EM_X86_64
|
||||||
|
Sections:
|
||||||
|
- Name: .text
|
||||||
|
Type: SHT_PROGBITS
|
||||||
|
Flags: [ SHF_ALLOC, SHF_EXECINSTR ]
|
||||||
|
Symbols:
|
||||||
|
- Name: symbol_local
|
||||||
|
Binding: STB_LOCAL
|
||||||
|
Section: .text
|
||||||
|
Value: 0x101
|
||||||
|
Size: 8
|
||||||
|
- Name: symbol_weak
|
||||||
|
Binding: STB_WEAK
|
||||||
|
Section: .text
|
||||||
|
Value: 0x102
|
||||||
|
Size: 4
|
||||||
|
- Name: symbol_undefined_binding
|
||||||
|
Binding: 5
|
||||||
|
Section: .text
|
||||||
|
Value: 0x1004
|
||||||
|
Size: 32
|
||||||
|
- Name: symbol_global
|
||||||
|
Binding: STB_GLOBAL
|
||||||
|
Section: .text
|
||||||
|
Value: 0x103
|
||||||
|
Size: 16
|
||||||
|
|
||||||
|
# CHECK: symbol_global {{.*}}| T |
|
||||||
|
# CHECK-NEXT: symbol_local {{.*}}| t |
|
||||||
|
# CHECK-NEXT: symbol_unrecognised_binding {{.*}}| ? |
|
||||||
|
# CHECK-NEXT: symbol_weak {{.*}}| W |
|
28
test/tools/llvm-nm/format-sysv-layout.test
Normal file
28
test/tools/llvm-nm/format-sysv-layout.test
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
# RUN: yaml2obj %s > %t.o
|
||||||
|
# RUN: llvm-nm %t.o --debug-syms --format=sysv | FileCheck %s -DFILE=%t.o --strict-whitespace
|
||||||
|
# RUN: llvm-nm %t.o --debug-syms -f=sysv | FileCheck %s -DFILE=%t.o --strict-whitespace
|
||||||
|
|
||||||
|
!ELF
|
||||||
|
FileHeader:
|
||||||
|
Class: ELFCLASS64
|
||||||
|
Data: ELFDATA2LSB
|
||||||
|
Type: ET_REL
|
||||||
|
Machine: EM_X86_64
|
||||||
|
Sections:
|
||||||
|
- Name: .text
|
||||||
|
Type: SHT_PROGBITS
|
||||||
|
Flags: [ SHF_ALLOC, SHF_EXECINSTR ]
|
||||||
|
Symbols:
|
||||||
|
- Name: symbol_with_a_significantly_longer_name
|
||||||
|
Section: .text
|
||||||
|
- Name: symbol
|
||||||
|
Section: .text
|
||||||
|
- Name: symbol_2
|
||||||
|
Type: STT_FUNC
|
||||||
|
|
||||||
|
# CHECK: Symbols from [[FILE]]:
|
||||||
|
# CHECK-EMPTY:
|
||||||
|
# CHECK-NEXT: Name Value Class Type Size Line Section
|
||||||
|
# CHECK-NEXT: symbol |0000000000000000| t | NOTYPE|0000000000000000| |.text
|
||||||
|
# CHECK-NEXT: symbol_2 | | U | FUNC| | |*UND*
|
||||||
|
# CHECK-NEXT: symbol_with_a_significantly_longer_name|0000000000000000| t | NOTYPE|0000000000000000| |.text
|
35
test/tools/llvm-nm/format-sysv-section.test
Normal file
35
test/tools/llvm-nm/format-sysv-section.test
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
# RUN: yaml2obj %s > %t.o
|
||||||
|
# RUN: llvm-nm %t.o --format=sysv | FileCheck %s
|
||||||
|
|
||||||
|
!ELF
|
||||||
|
FileHeader:
|
||||||
|
Class: ELFCLASS64
|
||||||
|
Data: ELFDATA2LSB
|
||||||
|
Type: ET_REL
|
||||||
|
Machine: EM_X86_64
|
||||||
|
Sections:
|
||||||
|
- Name: .text
|
||||||
|
Type: SHT_PROGBITS
|
||||||
|
Flags: [ SHF_ALLOC, SHF_EXECINSTR ]
|
||||||
|
Symbols:
|
||||||
|
- Name: symbol_undefined
|
||||||
|
- Name: symbol
|
||||||
|
Section: .text
|
||||||
|
- Name: symbol_common
|
||||||
|
Index: SHN_COMMON
|
||||||
|
- Name: symbol_absolute
|
||||||
|
Index: SHN_ABS
|
||||||
|
- Name: proc
|
||||||
|
Index: 0xff01
|
||||||
|
- Name: os
|
||||||
|
Index: 0xff21
|
||||||
|
- Name: reserved
|
||||||
|
Index: 0xfffe
|
||||||
|
|
||||||
|
# CHECK: os {{.*}}|
|
||||||
|
# CHECK-NEXT: proc {{.*}}|
|
||||||
|
# CHECK-NEXT: reserved {{.*}}|
|
||||||
|
# CHECK-NEXT: symbol {{.*}}| |.text
|
||||||
|
# CHECK-NEXT: symbol_absolute {{.*}}| |*ABS*
|
||||||
|
# CHECK-NEXT: symbol_common {{.*}}| |*COM*
|
||||||
|
# CHECK-NEXT: symbol_undefined {{.*}}| |*UND*
|
44
test/tools/llvm-nm/format-sysv-type.test
Normal file
44
test/tools/llvm-nm/format-sysv-type.test
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
# RUN: yaml2obj %s > %t.o
|
||||||
|
# RUN: llvm-nm %t.o --debug-syms --format=sysv | FileCheck %s
|
||||||
|
|
||||||
|
!ELF
|
||||||
|
FileHeader:
|
||||||
|
Class: ELFCLASS64
|
||||||
|
Data: ELFDATA2LSB
|
||||||
|
Type: ET_REL
|
||||||
|
Machine: EM_X86_64
|
||||||
|
Symbols:
|
||||||
|
- Name: symbol_notype
|
||||||
|
Type: STT_NOTYPE
|
||||||
|
- Name: symbol_common
|
||||||
|
Type: STT_COMMON
|
||||||
|
- Name: symbol_tls
|
||||||
|
Type: STT_TLS
|
||||||
|
- Name: symbol_file
|
||||||
|
Type: STT_FILE
|
||||||
|
- Name: symbol_obj
|
||||||
|
Type: STT_OBJECT
|
||||||
|
- Name: symbol_func
|
||||||
|
Type: STT_FUNC
|
||||||
|
- Name: symbol_ifunc
|
||||||
|
Type: STT_GNU_IFUNC
|
||||||
|
- Name: os_specific
|
||||||
|
Type: 11
|
||||||
|
- Name: proc_specific
|
||||||
|
Type: 13
|
||||||
|
- Name: unknown
|
||||||
|
Type: 7
|
||||||
|
|
||||||
|
## FIXME: Should not print blank types for unknown, OS-specific and processor-
|
||||||
|
## specific types. See https://bugs.llvm.org/show_bug.cgi?id=41713.
|
||||||
|
|
||||||
|
# CHECK: os_specific {{.*}}| | | |*UND*
|
||||||
|
# CHECK-NEXT: proc_specific {{.*}}| | | |*UND*
|
||||||
|
# CHECK-NEXT: symbol_common {{.*}}| COMMON| | |*COM*
|
||||||
|
# CHECK-NEXT: symbol_file {{.*}}| FILE| | |*UND*
|
||||||
|
# CHECK-NEXT: symbol_func {{.*}}| FUNC| | |*UND*
|
||||||
|
# CHECK-NEXT: symbol_ifunc {{.*}}| IFUNC| | |*UND*
|
||||||
|
# CHECK-NEXT: symbol_notype {{.*}}| NOTYPE| | |*UND*
|
||||||
|
# CHECK-NEXT: symbol_obj {{.*}}| OBJECT| | |*UND*
|
||||||
|
# CHECK-NEXT: symbol_tls {{.*}}| TLS| | |*UND*
|
||||||
|
# CHECK-NEXT: unknown {{.*}}| | | |*UND*
|
40
test/tools/llvm-nm/no-sort.test
Normal file
40
test/tools/llvm-nm/no-sort.test
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
# RUN: yaml2obj %s > %t.o
|
||||||
|
# RUN: llvm-nm %t.o | FileCheck %s --check-prefix=DEFAULT
|
||||||
|
# RUN: llvm-nm --no-sort %t.o | FileCheck %s --check-prefix=NOSORT
|
||||||
|
# RUN: llvm-nm -p %t.o | FileCheck %s --check-prefix=NOSORT
|
||||||
|
|
||||||
|
!ELF
|
||||||
|
FileHeader:
|
||||||
|
Class: ELFCLASS64
|
||||||
|
Data: ELFDATA2LSB
|
||||||
|
Type: ET_REL
|
||||||
|
Machine: EM_X86_64
|
||||||
|
Sections:
|
||||||
|
- Name: .text
|
||||||
|
Type: SHT_PROGBITS
|
||||||
|
Symbols:
|
||||||
|
- Name: symbol_a
|
||||||
|
Section: .text
|
||||||
|
Value: 0x100
|
||||||
|
- Name: symbol_b
|
||||||
|
Section: .text
|
||||||
|
Value: 0x25
|
||||||
|
- Name: symbol_d
|
||||||
|
Section: .text
|
||||||
|
Value: 0x25
|
||||||
|
- Name: symbol_c
|
||||||
|
Section: .text
|
||||||
|
Value: 0x50
|
||||||
|
|
||||||
|
# The default is to sort by symbol name.
|
||||||
|
# DEFAULT: 0000000000000100 n symbol_a
|
||||||
|
# DEFAULT-NEXT: 0000000000000025 n symbol_b
|
||||||
|
# DEFAULT-NEXT: 0000000000000050 n symbol_c
|
||||||
|
# DEFAULT-NEXT: 0000000000000025 n symbol_d
|
||||||
|
|
||||||
|
# When --no-sort is specified then the symbols are output in
|
||||||
|
# symbol table order.
|
||||||
|
# NOSORT: 0000000000000100 n symbol_a
|
||||||
|
# NOSORT-NEXT: 0000000000000025 n symbol_b
|
||||||
|
# NOSORT-NEXT: 0000000000000025 n symbol_d
|
||||||
|
# NOSORT-NEXT: 0000000000000050 n symbol_c
|
44
test/tools/llvm-nm/numeric-sort.test
Normal file
44
test/tools/llvm-nm/numeric-sort.test
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
# RUN: yaml2obj %s > %t.o
|
||||||
|
# RUN: llvm-nm %t.o | FileCheck %s --check-prefix=DEFAULT
|
||||||
|
# RUN: llvm-nm --numeric-sort %t.o | FileCheck %s --check-prefix=NUMERIC
|
||||||
|
# RUN: llvm-nm -n %t.o | FileCheck %s --check-prefix=NUMERIC
|
||||||
|
# RUN: llvm-nm -v %t.o | FileCheck %s --check-prefix=NUMERIC
|
||||||
|
|
||||||
|
!ELF
|
||||||
|
FileHeader:
|
||||||
|
Class: ELFCLASS64
|
||||||
|
Data: ELFDATA2LSB
|
||||||
|
Type: ET_REL
|
||||||
|
Machine: EM_X86_64
|
||||||
|
Sections:
|
||||||
|
- Name: .text
|
||||||
|
Type: SHT_PROGBITS
|
||||||
|
Symbols:
|
||||||
|
- Name: symbol_a
|
||||||
|
Section: .text
|
||||||
|
Binding: STB_LOCAL
|
||||||
|
Value: 0x100
|
||||||
|
- Name: symbol_b
|
||||||
|
Section: .text
|
||||||
|
Binding: STB_LOCAL
|
||||||
|
Value: 0x25
|
||||||
|
- Name: symbol_d
|
||||||
|
Section: .text
|
||||||
|
Binding: STB_LOCAL
|
||||||
|
Value: 0x25
|
||||||
|
- Name: symbol_c
|
||||||
|
Section: .text
|
||||||
|
Binding: STB_LOCAL
|
||||||
|
Value: 0x50
|
||||||
|
|
||||||
|
# The default is to sort by symbol name.
|
||||||
|
# DEFAULT: 0000000000000100 n symbol_a
|
||||||
|
# DEFAULT-NEXT: 0000000000000025 n symbol_b
|
||||||
|
# DEFAULT-NEXT: 0000000000000050 n symbol_c
|
||||||
|
# DEFAULT-NEXT: 0000000000000025 n symbol_d
|
||||||
|
|
||||||
|
# --numeric-sort sorts the symbols by value.
|
||||||
|
# NUMERIC: 0000000000000025 n symbol_b
|
||||||
|
# NUMERIC-NEXT: 0000000000000025 n symbol_d
|
||||||
|
# NUMERIC-NEXT: 0000000000000050 n symbol_c
|
||||||
|
# NUMERIC-NEXT: 0000000000000100 n symbol_a
|
19
test/tools/llvm-nm/print-filename.test
Normal file
19
test/tools/llvm-nm/print-filename.test
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
# RUN: yaml2obj %s > %t.o
|
||||||
|
# RUN: llvm-nm --print-file-name %t.o | FileCheck %s -DFILE=%t.o
|
||||||
|
# RUN: yaml2obj %s > %t.o
|
||||||
|
# RUN: llvm-nm --print-file-name %t.o | FileCheck %s -DFILE=%t.o
|
||||||
|
|
||||||
|
!ELF
|
||||||
|
FileHeader:
|
||||||
|
Class: ELFCLASS64
|
||||||
|
Data: ELFDATA2LSB
|
||||||
|
Type: ET_REL
|
||||||
|
Machine: EM_X86_64
|
||||||
|
Sections:
|
||||||
|
- Name: .text
|
||||||
|
Type: SHT_PROGBITS
|
||||||
|
Symbols:
|
||||||
|
- Name: symbol_a
|
||||||
|
Section: .text
|
||||||
|
|
||||||
|
# CHECK: [[FILE]]: 0000000000000000 n symbol_a
|
19
test/tools/llvm-nm/print-size.test
Normal file
19
test/tools/llvm-nm/print-size.test
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
# RUN: yaml2obj %s > %t.o
|
||||||
|
# RUN: llvm-nm --print-size %t.o | FileCheck %s --strict-whitespace
|
||||||
|
|
||||||
|
!ELF
|
||||||
|
FileHeader:
|
||||||
|
Class: ELFCLASS64
|
||||||
|
Data: ELFDATA2LSB
|
||||||
|
Type: ET_REL
|
||||||
|
Machine: EM_X86_64
|
||||||
|
Sections:
|
||||||
|
- Name: .text
|
||||||
|
Type: SHT_PROGBITS
|
||||||
|
Symbols:
|
||||||
|
- Name: a_symbol
|
||||||
|
Size: 0x123456789abcdef0
|
||||||
|
Section: .text
|
||||||
|
Binding: STB_GLOBAL
|
||||||
|
|
||||||
|
# CHECK: 0000000000000000 123456789abcdef0 N a_symbol
|
20
test/tools/llvm-nm/undefined-only.test
Normal file
20
test/tools/llvm-nm/undefined-only.test
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
# RUN: yaml2obj %s > %t.o
|
||||||
|
# RUN: llvm-nm --undefined-only %t.o | FileCheck %s --implicit-check-not=symbol_defined
|
||||||
|
|
||||||
|
!ELF
|
||||||
|
FileHeader:
|
||||||
|
Class: ELFCLASS64
|
||||||
|
Data: ELFDATA2LSB
|
||||||
|
Type: ET_REL
|
||||||
|
Machine: EM_X86_64
|
||||||
|
Sections:
|
||||||
|
- Name: .text
|
||||||
|
Type: SHT_PROGBITS
|
||||||
|
Symbols:
|
||||||
|
- Name: symbol_undefined_a
|
||||||
|
- Name: symbol_defined
|
||||||
|
Section: .text
|
||||||
|
- Name: symbol_undefined_b
|
||||||
|
|
||||||
|
# CHECK: U symbol_undefined_a
|
||||||
|
# CHECK-NEXT: U symbol_undefined_b
|
Loading…
Reference in New Issue
Block a user