diff options
Diffstat (limited to 'llvm/test/tools/llvm-readobj/COFF')
-rw-r--r-- | llvm/test/tools/llvm-readobj/COFF/hex-dump.test | 8 | ||||
-rw-r--r-- | llvm/test/tools/llvm-readobj/COFF/relocations.test | 22 | ||||
-rw-r--r-- | llvm/test/tools/llvm-readobj/COFF/sections-ext.test | 63 | ||||
-rw-r--r-- | llvm/test/tools/llvm-readobj/COFF/sections.test | 42 | ||||
-rw-r--r-- | llvm/test/tools/llvm-readobj/COFF/symbols.test | 40 |
5 files changed, 175 insertions, 0 deletions
diff --git a/llvm/test/tools/llvm-readobj/COFF/hex-dump.test b/llvm/test/tools/llvm-readobj/COFF/hex-dump.test new file mode 100644 index 00000000000..d9dd993e29c --- /dev/null +++ b/llvm/test/tools/llvm-readobj/COFF/hex-dump.test @@ -0,0 +1,8 @@ +## Test that --hex-dump/-x can be used to display the contents +## of the indicated section as hexadecimal bytes. + +# RUN: llvm-readobj --hex-dump 1 %p/Inputs/trivial.obj.coff-x86-64 | FileCheck %s +# RUN: llvm-readobj -x 1 %p/Inputs/trivial.obj.coff-x86-64 | FileCheck %s + +# CHECK: 0x00000000 4883ec28 488d0d00 000000e8 00000000 H..(H........... +# CHECK: 0x00000010 e8000000 0031c048 83c428c3 .....1.H..(. diff --git a/llvm/test/tools/llvm-readobj/COFF/relocations.test b/llvm/test/tools/llvm-readobj/COFF/relocations.test new file mode 100644 index 00000000000..5644e734bb0 --- /dev/null +++ b/llvm/test/tools/llvm-readobj/COFF/relocations.test @@ -0,0 +1,22 @@ +## Check how we print relocations. + +# RUN: llvm-readobj -r %p/Inputs/trivial.obj.coff-i386 \ +# RUN: | FileCheck %s --check-prefix COFF +# RUN: llvm-readobj -r %p/Inputs/bad-relocs.obj.coff-i386 \ +# RUN: | FileCheck %s --check-prefix BAD-COFF-RELOCS +# RUN: llvm-readobj -r %p/Inputs/relocs-no-symtab.obj.coff-i386 \ +# RUN: | FileCheck %s --check-prefix BAD-COFF-RELOCS + +# COFF: Relocations [ +# COFF-NEXT: Section (1) .text { +# COFF-NEXT: 0x4 IMAGE_REL_I386_DIR32 .data (4) +# COFF-NEXT: 0x9 IMAGE_REL_I386_REL32 _puts (7) +# COFF-NEXT: 0xE IMAGE_REL_I386_REL32 _SomeOtherFunction (8) +# COFF-NEXT: } +# COFF-NEXT: ] + +# BAD-COFF-RELOCS: Relocations [ +# BAD-COFF-RELOCS-NEXT: Section (1) sec { +# BAD-COFF-RELOCS-NEXT: 0xDEADBEEF IMAGE_REL_I386_ABSOLUTE - +# BAD-COFF-RELOCS-NEXT: } +# BAD-COFF-RELOCS-NEXT: ] diff --git a/llvm/test/tools/llvm-readobj/COFF/sections-ext.test b/llvm/test/tools/llvm-readobj/COFF/sections-ext.test new file mode 100644 index 00000000000..b07347a2b47 --- /dev/null +++ b/llvm/test/tools/llvm-readobj/COFF/sections-ext.test @@ -0,0 +1,63 @@ +## This is a test case for --section-symbols, --section-relocations +## and --section-data command line options and their aliases. + +# RUN: llvm-readobj -S --st --sr --sd %p/Inputs/trivial.obj.coff-i386 | FileCheck %s +# RUN: llvm-readobj -S --section-symbols --section-relocations --section-data \ +# RUN: %p/Inputs/trivial.obj.coff-i386 | FileCheck %s + +# CHECK: Sections [ +# CHECK-NEXT: Section { +# CHECK-NEXT: Number: 1 +# CHECK-NEXT: Name: .text (2E 74 65 78 74 00 00 00) +# CHECK-NEXT: VirtualSize: 0x0 +# CHECK-NEXT: VirtualAddress: 0x0 +# CHECK-NEXT: RawDataSize: 22 +# CHECK-NEXT: PointerToRawData: 0x64 +# CHECK-NEXT: PointerToRelocations: 0x7A +# CHECK-NEXT: PointerToLineNumbers: 0x0 +# CHECK-NEXT: RelocationCount: 3 +# CHECK-NEXT: LineNumberCount: 0 +# CHECK-NEXT: Characteristics [ (0x60500020) +# CHECK-NEXT: IMAGE_SCN_ALIGN_16BYTES (0x500000) +# CHECK-NEXT: IMAGE_SCN_CNT_CODE (0x20) +# CHECK-NEXT: IMAGE_SCN_MEM_EXECUTE (0x20000000) +# CHECK-NEXT: IMAGE_SCN_MEM_READ (0x40000000) +# CHECK-NEXT: ] +# CHECK-NEXT: Relocations [ +# CHECK-NEXT: 0x4 IMAGE_REL_I386_DIR32 .data +# CHECK-NEXT: 0x9 IMAGE_REL_I386_REL32 _puts +# CHECK-NEXT: 0xE IMAGE_REL_I386_REL32 _SomeOtherFunction +# CHECK-NEXT: ] +# CHECK-NEXT: Symbols [ +# CHECK-NEXT: Symbol { +# CHECK-NEXT: Name: .text +# CHECK-NEXT: Value: 0 +# CHECK-NEXT: Section: .text (1) +# CHECK-NEXT: BaseType: Null (0x0) +# CHECK-NEXT: ComplexType: Null (0x0) +# CHECK-NEXT: StorageClass: Static (0x3) +# CHECK-NEXT: AuxSymbolCount: 1 +# CHECK-NEXT: AuxSectionDef { +# CHECK-NEXT: Length: 22 +# CHECK-NEXT: RelocationCount: 3 +# CHECK-NEXT: LineNumberCount: 0 +# CHECK-NEXT: Checksum: 0x0 +# CHECK-NEXT: Number: 1 +# CHECK-NEXT: Selection: 0x0 +# CHECK-NEXT: } +# CHECK-NEXT: } +# CHECK-NEXT: Symbol { +# CHECK-NEXT: Name: _main +# CHECK-NEXT: Value: 0 +# CHECK-NEXT: Section: .text (1) +# CHECK-NEXT: BaseType: Null (0x0) +# CHECK-NEXT: ComplexType: Function (0x2) +# CHECK-NEXT: StorageClass: External (0x2) +# CHECK-NEXT: AuxSymbolCount: 0 +# CHECK-NEXT: } +# CHECK-NEXT: ] +# CHECK-NEXT: SectionData ( +# CHECK-NEXT: 0000: 50C70424 00000000 E8000000 00E80000 |P..$............| +# CHECK-NEXT: 0010: 000031C0 5AC3 |..1.Z.| +# CHECK-NEXT: ) +# CHECK-NEXT: } diff --git a/llvm/test/tools/llvm-readobj/COFF/sections.test b/llvm/test/tools/llvm-readobj/COFF/sections.test new file mode 100644 index 00000000000..826cc60c8be --- /dev/null +++ b/llvm/test/tools/llvm-readobj/COFF/sections.test @@ -0,0 +1,42 @@ +## Check how we print sections. + +# RUN: llvm-readobj --sections %p/Inputs/trivial.obj.coff-i386 | FileCheck %s + +# CHECK: Sections [ +# CHECK-NEXT: Section { +# CHECK-NEXT: Number: 1 +# CHECK-NEXT: Name: .text (2E 74 65 78 74 00 00 00) +# CHECK-NEXT: VirtualSize: 0x0 +# CHECK-NEXT: VirtualAddress: 0x0 +# CHECK-NEXT: RawDataSize: 22 +# CHECK-NEXT: PointerToRawData: 0x64 +# CHECK-NEXT: PointerToRelocations: 0x7A +# CHECK-NEXT: PointerToLineNumbers: 0x0 +# CHECK-NEXT: RelocationCount: 3 +# CHECK-NEXT: LineNumberCount: 0 +# CHECK-NEXT: Characteristics [ (0x60500020) +# CHECK-NEXT: IMAGE_SCN_ALIGN_16BYTES (0x500000) +# CHECK-NEXT: IMAGE_SCN_CNT_CODE (0x20) +# CHECK-NEXT: IMAGE_SCN_MEM_EXECUTE (0x20000000) +# CHECK-NEXT: IMAGE_SCN_MEM_READ (0x40000000) +# CHECK-NEXT: ] +# CHECK-NEXT: } +# CHECK-NEXT: Section { +# CHECK-NEXT: Number: 2 +# CHECK-NEXT: Name: .data (2E 64 61 74 61 00 00 00) +# CHECK-NEXT: VirtualSize: 0x0 +# CHECK-NEXT: VirtualAddress: 0x0 +# CHECK-NEXT: RawDataSize: 13 +# CHECK-NEXT: PointerToRawData: 0x98 +# CHECK-NEXT: PointerToRelocations: 0x0 +# CHECK-NEXT: PointerToLineNumbers: 0x0 +# CHECK-NEXT: RelocationCount: 0 +# CHECK-NEXT: LineNumberCount: 0 +# CHECK-NEXT: Characteristics [ (0xC0300040) +# CHECK-NEXT: IMAGE_SCN_ALIGN_4BYTES (0x300000) +# CHECK-NEXT: IMAGE_SCN_CNT_INITIALIZED_DATA (0x40) +# CHECK-NEXT: IMAGE_SCN_MEM_READ (0x40000000) +# CHECK-NEXT: IMAGE_SCN_MEM_WRITE (0x80000000) +# CHECK-NEXT: ] +# CHECK-NEXT: } +# CHECK-NEXT: ] diff --git a/llvm/test/tools/llvm-readobj/COFF/symbols.test b/llvm/test/tools/llvm-readobj/COFF/symbols.test new file mode 100644 index 00000000000..2e808f33613 --- /dev/null +++ b/llvm/test/tools/llvm-readobj/COFF/symbols.test @@ -0,0 +1,40 @@ +## Test how we print symbols. + +# RUN: llvm-readobj --symbols %p/Inputs/trivial.obj.coff-i386 | FileCheck %s + +# CHECK: Symbols [ +# CHECK-NEXT: Symbol { +# CHECK-NEXT: Name: @comp.id +# CHECK-NEXT: Value: 14766605 +# CHECK-NEXT: Section: IMAGE_SYM_ABSOLUTE (-1) +# CHECK-NEXT: BaseType: Null (0x0) +# CHECK-NEXT: ComplexType: Null (0x0) +# CHECK-NEXT: StorageClass: Static (0x3) +# CHECK-NEXT: AuxSymbolCount: 0 +# CHECK-NEXT: } +# CHECK-NEXT: Symbol { +# CHECK-NEXT: Name: @feat.00 +# CHECK-NEXT: Value: 2147484049 +# CHECK-NEXT: Section: IMAGE_SYM_ABSOLUTE (-1) +# CHECK-NEXT: BaseType: Null (0x0) +# CHECK-NEXT: ComplexType: Null (0x0) +# CHECK-NEXT: StorageClass: Static (0x3) +# CHECK-NEXT: AuxSymbolCount: 0 +# CHECK-NEXT: } +# CHECK-NEXT: Symbol { +# CHECK-NEXT: Name: .text +# CHECK-NEXT: Value: 0 +# CHECK-NEXT: Section: .text (1) +# CHECK-NEXT: BaseType: Null (0x0) +# CHECK-NEXT: ComplexType: Null (0x0) +# CHECK-NEXT: StorageClass: Static (0x3) +# CHECK-NEXT: AuxSymbolCount: 1 +# CHECK-NEXT: AuxSectionDef { +# CHECK-NEXT: Length: 22 +# CHECK-NEXT: RelocationCount: 3 +# CHECK-NEXT: LineNumberCount: 0 +# CHECK-NEXT: Checksum: 0x0 +# CHECK-NEXT: Number: 1 +# CHECK-NEXT: Selection: 0x0 +# CHECK-NEXT: } +# CHECK-NEXT: } |