diff options
Diffstat (limited to 'llvm/test/tools/llvm-objcopy/basic-archive-copy.test')
| -rw-r--r-- | llvm/test/tools/llvm-objcopy/basic-archive-copy.test | 99 |
1 files changed, 99 insertions, 0 deletions
diff --git a/llvm/test/tools/llvm-objcopy/basic-archive-copy.test b/llvm/test/tools/llvm-objcopy/basic-archive-copy.test new file mode 100644 index 00000000000..bc050c3c70d --- /dev/null +++ b/llvm/test/tools/llvm-objcopy/basic-archive-copy.test @@ -0,0 +1,99 @@ +# RUN: yaml2obj %s > %t + +# RUN: rm -f %t.a +# RUN: llvm-ar crs %t.a %t +# RUN: cp %t.a %t.copy.a +# RUN: llvm-objcopy %t.a %t2.a +# RUN: llvm-objcopy %t %t2 +# RUN: llvm-ar p %t2.a > %t3 +# RUN: cmp %t2 %t3 + +# RUN: llvm-readobj -sections %t2 | FileCheck %s +# RUN: llvm-nm -print-armap %t.a | FileCheck --check-prefix=INDEX-TABLE %s +# RUN: llvm-nm -print-armap %t2.a | FileCheck --check-prefix=INDEX-TABLE %s +# Verify that llvm-objcopy has not modifed the input. +# RUN: cmp %t.copy.a %t.a + +# INDEX-TABLE: Archive map +# INDEX-TABLE-NEXT: foo in + +# RUN: rm -f %t.no.index.a +# RUN: llvm-ar crS %t.no.index.a %t +# RUN: llvm-objcopy %t.no.index.a %t2.no.index.a +# RUN: llvm-ar p %t2.no.index.a > %t4 + +# RUN: llvm-nm -print-armap %t.no.index.a | FileCheck --check-prefix=NO-INDEX-TABLE %s +# RUN: llvm-nm -print-armap %t2.no.index.a | FileCheck --check-prefix=NO-INDEX-TABLE %s +# RUN: cmp %t2 %t4 + +# NO-INDEX-TABLE-NOT: Archive map +# NO-INDEX-TABLE-NOT: foo in + +!ELF +FileHeader: + Class: ELFCLASS64 + Data: ELFDATA2LSB + Type: ET_EXEC + Machine: EM_X86_64 +Sections: + - Name: .bss + Type: SHT_NOBITS + Flags: [ SHF_ALLOC ] + AddressAlign: 0x0000000000000010 + Size: 64 + - Name: .text + Type: SHT_PROGBITS + Flags: [ SHF_ALLOC, SHF_EXECINSTR ] + AddressAlign: 0x0000000000000010 + Content: "00000000" +Symbols: + Global: + - Name: foo + Type: STT_FUNC + Section: .text + Value: 0x1004 + +# CHECK: Type: SHT_NULL + +# CHECK: Name: .bss +# CHECK-NEXT: Type: SHT_NOBITS +# CHECK-NEXT: Flags [ +# CHECK-NEXT: SHF_ALLOC +# CHECK-NEXT: ] +# CHECK-NEXT: Address: +# CHECK-NEXT: Offset: +# CHECK-NEXT: Size: 64 + +# CHECK: Name: .text +# CHECK-NEXT: Type: SHT_PROGBITS +# CHECK-NEXT: Flags [ +# CHECK-NEXT: SHF_ALLOC +# CHECK-NEXT: SHF_EXECINSTR +# CHECK-NEXT: ] +# CHECK-NEXT: Address: +# CHECK-NEXT: Offset: +# CHECK-NEXT: Size: 4 + +# CHECK: Name: .symtab +# CHECK-NEXT: Type: SHT_SYMTAB +# CHECK-NEXT: Flags [ (0x0) +# CHECK-NEXT: ] +# CHECK-NEXT: Address: +# CHECK-NEXT: Offset: +# CHECK-NEXT: Size: 48 + +# CHECK: Name: .strtab +# CHECK-NEXT: Type: SHT_STRTAB +# CHECK-NEXT: Flags [ (0x0) +# CHECK-NEXT: ] +# CHECK-NEXT: Address: +# CHECK-NEXT: Offset: +# CHECK-NEXT: Size: 6 + +# CHECK: Name: .shstrtab +# CHECK-NEXT: Type: SHT_STRTAB +# CHECK-NEXT: Flags [ +# CHECK-NEXT: ] +# CHECK-NEXT: Address: +# CHECK-NEXT: Offset: +# CHECK-NEXT: Size: 38 |

