1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-21 20:12:56 +02:00
llvm-mirror/test/Object/readobj-shared-object.test
George Rimar 47eaa06265 [Object/llvm-readobj] - Cleanup testing of the dynamic objects.
This patch touches a few test cases:

It removes dtflags.elf-x86-64 binary and elf-dtflags.test.
elf-dtflags.test is excessive because we have the
elf-dynamic-tags.test which test all non-machine specific tags.

It removes testing of --dynamic-table from test\Object\readobj-shared-object.test
(we have the elf-dynamic-tags.test for that), and simplifies this test case.

It moves testing of the headers from readobj-shared-object.test
to elf-file-headers.test.

Adds test/tools/llvm-readobj/elf-file-types.test and test/tools/llvm-readobj/elf-loadname.test.

It opens road for removing the readobj-shared-object.test completely soon.

Differential revision: https://reviews.llvm.org/D65068

llvm-svn: 366895
2019-07-24 12:20:42 +00:00

289 lines
6.8 KiB
Plaintext

# RUN: llvm-readobj --sections --symbols --dyn-syms --needed-libs \
# RUN: %p/Inputs/shared-object-test.elf-i386 | FileCheck %s
# RUN: llvm-readobj --sections --symbols --dyn-syms --needed-libs \
# RUN: %p/Inputs/shared-object-test.elf-x86-64 | FileCheck %s
# CHECK: Sections [
# CHECK: Section {
# CHECK: Name: (0)
# CHECK: Type: SHT_NULL
# CHECK: Flags [ (0x0)
# CHECK: ]
# CHECK: }
# CHECK: Section {
# CHECK: Name: .hash
# CHECK: Type: SHT_HASH
# CHECK: Flags [ (0x2)
# CHECK: SHF_ALLOC
# CHECK: ]
# CHECK: }
# CHECK: Section {
# CHECK: Name: .dynsym
# CHECK: Type: SHT_DYNSYM
# CHECK: Flags [ (0x2)
# CHECK: SHF_ALLOC
# CHECK: ]
# CHECK: }
# CHECK: Section {
# CHECK: Name: .dynstr
# CHECK: Type: SHT_STRTAB
# CHECK: Flags [ (0x2)
# CHECK: SHF_ALLOC
# CHECK: ]
# CHECK: }
# CHECK: Section {
# CHECK: Name: .text
# CHECK: Type: SHT_PROGBITS
# CHECK: Flags [ (0x6)
# CHECK: SHF_ALLOC
# CHECK: SHF_EXECINSTR
# CHECK: ]
# CHECK: }
# CHECK: Section {
# CHECK: Name: .eh_frame
# CHECK: Type: SHT_PROGBITS
# CHECK: Flags [ (0x2)
# CHECK: SHF_ALLOC
# CHECK: ]
# CHECK: }
# CHECK: Section {
# CHECK: Name: .tdata
# CHECK: Type: SHT_PROGBITS
# CHECK: Flags [ (0x403)
# CHECK: SHF_ALLOC
# CHECK: SHF_TLS
# CHECK: SHF_WRITE
# CHECK: ]
# CHECK: }
# CHECK: Section {
# CHECK: Name: .dynamic
# CHECK: Type: SHT_DYNAMIC
# CHECK: Flags [ (0x3)
# CHECK: SHF_ALLOC
# CHECK: SHF_WRITE
# CHECK: ]
# CHECK: }
# CHECK: Section {
# CHECK: Name: .got.plt
# CHECK: Type: SHT_PROGBITS
# CHECK: Flags [ (0x3)
# CHECK: SHF_ALLOC
# CHECK: SHF_WRITE
# CHECK: ]
# CHECK: }
# CHECK: Section {
# CHECK: Name: .data
# CHECK: Type: SHT_PROGBITS
# CHECK: Flags [ (0x3)
# CHECK: SHF_ALLOC
# CHECK: SHF_WRITE
# CHECK: ]
# CHECK: }
# CHECK: Section {
# CHECK: Name: .bss
# CHECK: Type: SHT_NOBITS
# CHECK: Flags [ (0x3)
# CHECK: SHF_ALLOC
# CHECK: SHF_WRITE
# CHECK: ]
# CHECK: }
# CHECK: Section {
# CHECK: Name: .shstrtab
# CHECK: Type: SHT_STRTAB
# CHECK: Flags [ (0x0)
# CHECK: ]
# CHECK: }
# CHECK: Section {
# CHECK: Name: .symtab
# CHECK: Type: SHT_SYMTAB
# CHECK: Flags [ (0x0)
# CHECK: ]
# CHECK: }
# CHECK: Section {
# CHECK: Name: .strtab
# CHECK: Type: SHT_STRTAB
# CHECK: Flags [ (0x0)
# CHECK: ]
# CHECK: }
# CHECK: ]
# CHECK: Symbols [
# CHECK: Symbol {
# CHECK: Name: .hash (0)
# CHECK: Binding: Local
# CHECK: Type: Section
# CHECK: Section: .hash
# CHECK: }
# CHECK: Symbol {
# CHECK: Name: .dynsym (0)
# CHECK: Binding: Local
# CHECK: Type: Section
# CHECK: Section: .dynsym
# CHECK: }
# CHECK: Symbol {
# CHECK: Name: .dynstr (0)
# CHECK: Binding: Local
# CHECK: Type: Section
# CHECK: Section: .dynstr
# CHECK: }
# CHECK: Symbol {
# CHECK: Name: .text (0)
# CHECK: Binding: Local
# CHECK: Type: Section
# CHECK: Section: .text
# CHECK: }
# CHECK: Symbol {
# CHECK: Name: .eh_frame (0)
# CHECK: Binding: Local
# CHECK: Type: Section
# CHECK: Section: .eh_frame
# CHECK: }
# CHECK: Symbol {
# CHECK: Name: .tdata (0)
# CHECK: Binding: Local
# CHECK: Type: Section
# CHECK: Section: .tdata
# CHECK: }
# CHECK: Symbol {
# CHECK: Name: .dynamic (0)
# CHECK: Binding: Local
# CHECK: Type: Section
# CHECK: Section: .dynamic
# CHECK: }
# CHECK: Symbol {
# CHECK: Name: .got.plt (0)
# CHECK: Binding: Local
# CHECK: Type: Section
# CHECK: Section: .got.plt
# CHECK: }
# CHECK: Symbol {
# CHECK: Name: .data (0)
# CHECK: Binding: Local
# CHECK: Type: Section
# CHECK: Section: .data
# CHECK: }
# CHECK: Symbol {
# CHECK: Name: .bss (0)
# CHECK: Binding: Local
# CHECK: Type: Section
# CHECK: Section: .bss
# CHECK: }
# CHECK: Symbol {
# CHECK: Name: shared.ll
# CHECK: Binding: Local
# CHECK: Type: File
# CHECK: Section: Absolute (0xFFF1)
# CHECK: }
# CHECK: Symbol {
# CHECK: Name: local_func
# CHECK: Binding: Local
# CHECK: Type: Function
# CHECK: Section: .text
# CHECK: }
# CHECK: Symbol {
# CHECK: Name: _GLOBAL_OFFSET_TABLE_
# CHECK: Binding: Local
# CHECK: Type: Object
# CHECK: Section: Absolute (0xFFF1)
# CHECK: }
# CHECK: Symbol {
# CHECK: Name: _DYNAMIC
# CHECK: Binding: Local
# CHECK: Type: Object
# CHECK: Section: Absolute (0xFFF1)
# CHECK: }
# CHECK: Symbol {
# CHECK: Name: common_sym
# CHECK: Binding: Global
# CHECK: Type: Object
# CHECK: Section: .bss
# CHECK: }
# CHECK: Symbol {
# CHECK: Name: tls_sym
# CHECK: Binding: Global
# CHECK: Type: TLS
# CHECK: Section: .tdata
# CHECK: }
# CHECK: Symbol {
# CHECK: Name: defined_sym
# CHECK: Binding: Global
# CHECK: Type: Object
# CHECK: Section: .data
# CHECK: }
# CHECK: Symbol {
# CHECK: Name: __bss_start
# CHECK: Binding: Global
# CHECK: Type: None
# CHECK: Section: Absolute (0xFFF1)
# CHECK: }
# CHECK: Symbol {
# CHECK: Name: _end
# CHECK: Binding: Global
# CHECK: Type: None
# CHECK: Section: Absolute (0xFFF1)
# CHECK: }
# CHECK: Symbol {
# CHECK: Name: global_func
# CHECK: Binding: Global
# CHECK: Type: Function
# CHECK: Section: .text
# CHECK: }
# CHECK: Symbol {
# CHECK: Name: _edata
# CHECK: Binding: Global
# CHECK: Type: None
# CHECK: Section: Absolute (0xFFF1)
# CHECK: }
# CHECK: ]
# CHECK: DynamicSymbols [
# CHECK: Symbol {
# CHECK: Name: common_sym
# CHECK: Binding: Global
# CHECK: Type: Object
# CHECK: Section: .bss
# CHECK: }
# CHECK: Symbol {
# CHECK: Name: tls_sym
# CHECK: Binding: Global
# CHECK: Type: TLS
# CHECK: Section: .tdata
# CHECK: }
# CHECK: Symbol {
# CHECK: Name: defined_sym
# CHECK: Binding: Global
# CHECK: Type: Object
# CHECK: Section: .data
# CHECK: }
# CHECK: Symbol {
# CHECK: Name: __bss_start
# CHECK: Binding: Global
# CHECK: Type: None
# CHECK: Section: Absolute (0xFFF1)
# CHECK: }
# CHECK: Symbol {
# CHECK: Name: _end
# CHECK: Binding: Global
# CHECK: Type: None
# CHECK: Section: Absolute (0xFFF1)
# CHECK: }
# CHECK: Symbol {
# CHECK: Name: global_func
# CHECK: Binding: Global
# CHECK: Type: Function
# CHECK: Section: .text
# CHECK: }
# CHECK: Symbol {
# CHECK: Name: _edata
# CHECK: Binding: Global
# CHECK: Type: None
# CHECK: Section: Absolute (0xFFF1)
# CHECK: }
# CHECK: ]
# CHECK: NeededLibraries [
# CHECK-NEXT: libc.so.6
# CHECK-NEXT: libm.so.6
# CHECK-NEXT: ]