brintos

brintos / llvm-project-archived public Read only

0
0
Text · 9.5 KiB · 97ab9f0 Raw
236 lines · plain
1# RUN: yaml2obj %s --docnum=1 -o %t.i3862# RUN: llvm-readobj -h %t.i386 | FileCheck %s --strict-whitespace --match-full-lines -DFILE=%t.i386 --check-prefix I3863# RUN: llvm-readobj --file-header %t.i386 | FileCheck %s --strict-whitespace --match-full-lines -DFILE=%t.i386 --check-prefix I3864# RUN: llvm-readobj --file-headers %t.i386 | FileCheck %s --strict-whitespace --match-full-lines -DFILE=%t.i386 --check-prefix I3865 6#      I386:File: [[FILE]]7# I386-NEXT:Format: elf32-i3868# I386-NEXT:Arch: i3869# I386-NEXT:AddressSize: 32bit10# I386-NEXT:LoadName: <Not found>11# I386-NEXT:ElfHeader {12# I386-NEXT:  Ident {13# I386-NEXT:    Magic: (7F 45 4C 46)14# I386-NEXT:    Class: 32-bit (0x1)15# I386-NEXT:    DataEncoding: LittleEndian (0x1)16# I386-NEXT:    FileVersion: 117# I386-NEXT:    OS/ABI: GNU/Linux (0x3)18# I386-NEXT:    ABIVersion: 019# I386-NEXT:    Unused: (00 00 00 00 00 00 00)20# I386-NEXT:  }21# I386-NEXT:  Type: Relocatable (0x1)22# I386-NEXT:  Machine: EM_386 (0x3)23# I386-NEXT:  Version: 124# I386-NEXT:  Entry: 0x025# I386-NEXT:  ProgramHeaderOffset: 0x026# I386-NEXT:  SectionHeaderOffset: 0x4827# I386-NEXT:  Flags [ (0x0)28# I386-NEXT:  ]29# I386-NEXT:  HeaderSize: 5230# I386-NEXT:  ProgramHeaderEntrySize: 031# I386-NEXT:  ProgramHeaderCount: 032# I386-NEXT:  SectionHeaderEntrySize: 4033# I386-NEXT:  SectionHeaderCount: 334# I386-NEXT:  StringTableSectionIndex: 235# I386-NEXT:}36# I386-NOT:{{.}}37 38--- !ELF39FileHeader:40  Class:   ELFCLASS3241  Data:    ELFDATA2LSB42  OSABI:   ELFOSABI_GNU43  Type:    ET_REL44  Machine: EM_38645 46# RUN: yaml2obj %s --docnum=2 -o %t.x86-6447# RUN: llvm-readobj -h %t.x86-64 \48# RUN:  | FileCheck %s --strict-whitespace --match-full-lines -DFILE=%t.x86-64 --check-prefix X86-6449# RUN: llvm-readobj --file-header %t.x86-64 \50# RUN:  | FileCheck %s --strict-whitespace --match-full-lines -DFILE=%t.x86-64 --check-prefix X86-6451# RUN: llvm-readobj --file-headers %t.x86-64 \52# RUN:  | FileCheck %s --strict-whitespace --match-full-lines -DFILE=%t.x86-64 --check-prefix X86-6453 54#      X86-64:File: [[FILE]]55# X86-64-NEXT:Format: elf64-x86-6456# X86-64-NEXT:Arch: x86_6457# X86-64-NEXT:AddressSize: 64bit58# X86-64-NEXT:LoadName: <Not found>59# X86-64-NEXT:ElfHeader {60# X86-64-NEXT:  Ident {61# X86-64-NEXT:    Magic: (7F 45 4C 46)62# X86-64-NEXT:    Class: 64-bit (0x2)63# X86-64-NEXT:    DataEncoding: LittleEndian (0x1)64# X86-64-NEXT:    FileVersion: 165# X86-64-NEXT:    OS/ABI: GNU/Linux (0x3)66# X86-64-NEXT:    ABIVersion: 067# X86-64-NEXT:    Unused: (00 00 00 00 00 00 00)68# X86-64-NEXT:  }69# X86-64-NEXT:  Type: Relocatable (0x1)70# X86-64-NEXT:  Machine: EM_X86_64 (0x3E)71# X86-64-NEXT:  Version: 172# X86-64-NEXT:  Entry: 0x073# X86-64-NEXT:  ProgramHeaderOffset: 0x074# X86-64-NEXT:  SectionHeaderOffset: 0x5875# X86-64-NEXT:  Flags [ (0x0)76# X86-64-NEXT:  ]77# X86-64-NEXT:  HeaderSize: 6478# X86-64-NEXT:  ProgramHeaderEntrySize: 079# X86-64-NEXT:  ProgramHeaderCount: 080# X86-64-NEXT:  SectionHeaderEntrySize: 6481# X86-64-NEXT:  SectionHeaderCount: 382# X86-64-NEXT:  StringTableSectionIndex: 283# X86-64-NEXT:}84# X86-64-NOT:{{.}}85 86--- !ELF87FileHeader:88  Class:   ELFCLASS6489  Data:    ELFDATA2LSB90  OSABI:   ELFOSABI_GNU91  Type:    ET_REL92  Machine: EM_X86_6493 94# RUN: yaml2obj %s --docnum=3 -o %t.lanai95# RUN: llvm-readobj -h %t.lanai \96# RUN:  | FileCheck %s --strict-whitespace --match-full-lines -DFILE=%t.lanai --check-prefix LANAI97# RUN: llvm-readobj --file-header %t.lanai \98# RUN:  | FileCheck %s --strict-whitespace --match-full-lines -DFILE=%t.lanai --check-prefix LANAI99# RUN: llvm-readobj --file-headers %t.lanai \100# RUN:  | FileCheck %s --strict-whitespace --match-full-lines -DFILE=%t.lanai --check-prefix LANAI101 102--- !ELF103FileHeader:104  Class:   ELFCLASS32105  Data:    ELFDATA2MSB106  Type:    ET_REL107  Machine: EM_LANAI108 109#      LANAI:File: [[FILE]]110# LANAI-NEXT:Format: elf32-lanai111# LANAI-NEXT:Arch: lanai112# LANAI-NEXT:AddressSize: 32bit113# LANAI-NEXT:LoadName: <Not found>114# LANAI-NEXT:ElfHeader {115# LANAI-NEXT:  Ident {116# LANAI-NEXT:    Magic: (7F 45 4C 46)117# LANAI-NEXT:    Class: 32-bit (0x1)118# LANAI-NEXT:    DataEncoding: BigEndian (0x2)119# LANAI-NEXT:    FileVersion: 1120# LANAI-NEXT:    OS/ABI: SystemV (0x0)121# LANAI-NEXT:    ABIVersion: 0122# LANAI-NEXT:    Unused: (00 00 00 00 00 00 00)123# LANAI-NEXT:  }124# LANAI-NEXT:  Type: Relocatable (0x1)125# LANAI-NEXT:  Machine: EM_LANAI (0xF4)126# LANAI-NEXT:  Version: 1127# LANAI-NEXT:  Entry: 0x0128# LANAI-NEXT:  ProgramHeaderOffset: 0x0129# LANAI-NEXT:  SectionHeaderOffset: 0x48130# LANAI-NEXT:  Flags [ (0x0)131# LANAI-NEXT:  ]132# LANAI-NEXT:  HeaderSize: 52133# LANAI-NEXT:  ProgramHeaderEntrySize: 0134# LANAI-NEXT:  ProgramHeaderCount: 0135# LANAI-NEXT:  SectionHeaderEntrySize: 40136# LANAI-NEXT:  SectionHeaderCount: 3137# LANAI-NEXT:  StringTableSectionIndex: 2138# LANAI-NEXT:}139# LANAI-NOT:{{.}}140 141## Check we are able to dump the file header when the section header table can't be read.142 143# RUN: yaml2obj %s --docnum=4 -o %t.invalid1144# RUN: not llvm-readobj --file-headers %t.invalid1 2>&1 \145# RUN:  | FileCheck %s --implicit-check-not=warning: -DFILE=%t.invalid1 \146# RUN:    -DSECHDRCOUNT=8192 -DSECHDRSTRTABINDEX=12288 --check-prefix=INVALID-LLVM147# RUN: not llvm-readelf --file-headers %t.invalid1 2>&1 \148# RUN:  | FileCheck %s --implicit-check-not=warning: -DFILE=%t.invalid1 \149# RUN:    -DSECHDRCOUNT=8192 -DSECHDRSTRTABINDEX=12288 --check-prefix=INVALID-GNU150 151# INVALID-LLVM:      File: [[FILE]]152# INVALID-LLVM-NEXT: Format: elf64-unknown153# INVALID-LLVM-NEXT: Arch: unknown154# INVALID-LLVM-NEXT: AddressSize: 64bit155# INVALID-LLVM-NEXT: LoadName: <Not found>156# INVALID-LLVM-NEXT: ElfHeader {157# INVALID-LLVM-NEXT:   Ident {158# INVALID-LLVM-NEXT:     Magic: (7F 45 4C 46)159# INVALID-LLVM-NEXT:     Class: 64-bit (0x2)160# INVALID-LLVM-NEXT:     DataEncoding: LittleEndian (0x1)161# INVALID-LLVM-NEXT:     FileVersion: 1162# INVALID-LLVM-NEXT:     OS/ABI: SystemV (0x0)163# INVALID-LLVM-NEXT:     ABIVersion: 0164# INVALID-LLVM-NEXT:     Unused: (00 00 00 00 00 00 00)165# INVALID-LLVM-NEXT:   }166# INVALID-LLVM-NEXT:   Type: Relocatable (0x1)167# INVALID-LLVM-NEXT:   Machine: EM_NONE (0x0)168# INVALID-LLVM-NEXT:   Version: 1169# INVALID-LLVM-NEXT:   Entry: 0x0170# INVALID-LLVM-NEXT:   ProgramHeaderOffset: 0x0171# INVALID-LLVM-NEXT:   SectionHeaderOffset: 0x1000172# INVALID-LLVM-NEXT:   Flags [ (0x0)173# INVALID-LLVM-NEXT:   ]174# INVALID-LLVM-NEXT:   HeaderSize: 64175# INVALID-LLVM-NEXT:   ProgramHeaderEntrySize: 0176# INVALID-LLVM-NEXT:   ProgramHeaderCount: 0177# INVALID-LLVM-NEXT:   SectionHeaderEntrySize: 64178# INVALID-LLVM-NEXT:   SectionHeaderCount: [[SECHDRCOUNT]]179# INVALID-LLVM-NEXT:   StringTableSectionIndex: [[SECHDRSTRTABINDEX]]180# INVALID-LLVM-NEXT: }181# INVALID-LLVM-NEXT: error: '[[FILE]]': unable to continue dumping, the file is corrupt: section header table goes past the end of the file: e_shoff = 0x1000182 183# INVALID-GNU:      ELF Header:184# INVALID-GNU-NEXT:   Magic:   7f 45 4c 46 02 01 01 00 00 00 00 00 00 00 00 00185# INVALID-GNU-NEXT:   Class:                             ELF64186# INVALID-GNU-NEXT:   Data:                              2's complement, little endian187# INVALID-GNU-NEXT:   Version:                           1 (current)188# INVALID-GNU-NEXT:   OS/ABI:                            UNIX - System V189# INVALID-GNU-NEXT:   ABI Version:                       0190# INVALID-GNU-NEXT:   Type:                              REL (Relocatable file)191# INVALID-GNU-NEXT:   Machine:                           None192# INVALID-GNU-NEXT:   Version:                           0x1193# INVALID-GNU-NEXT:   Entry point address:               0x0194# INVALID-GNU-NEXT:   Start of program headers:          0 (bytes into file)195# INVALID-GNU-NEXT:   Start of section headers:          4096 (bytes into file)196# INVALID-GNU-NEXT:   Flags:                             0x0197# INVALID-GNU-NEXT:   Size of this header:               64 (bytes)198# INVALID-GNU-NEXT:   Size of program headers:           0 (bytes)199# INVALID-GNU-NEXT:   Number of program headers:         0200# INVALID-GNU-NEXT:   Size of section headers:           64 (bytes)201# INVALID-GNU-NEXT:   Number of section headers:         [[SECHDRCOUNT]]202# INVALID-GNU-NEXT:   Section header string table index: [[SECHDRSTRTABINDEX]]203# INVALID-GNU-NEXT: error: '[[FILE]]': unable to continue dumping, the file is corrupt: section header table goes past the end of the file: e_shoff = 0x1000204 205--- !ELF206FileHeader:207  Class:     ELFCLASS64208  Data:      ELFDATA2LSB209  Type:      ET_REL210## The section header table offset goes past the EOF.211  EShOff:    0x1000212## The number of section headers is too large, the file is213## too little to contain so many sections.214  EShNum:    [[SHNUM=0x2000]]215## The index of the section name string table is too large.216## The section would be past the EOF.217  EShStrNdx: [[SHSTRNDX=0x3000]]218Sections:219  - Type: SectionHeaderTable220    NoHeaders: true221 222## Check we don't dump anything except the file header when the section header table can't be read.223 224# RUN: not llvm-readobj -a %t.invalid1 2>&1 \225# RUN:  | FileCheck %s -DFILE=%t.invalid1 -DSECHDRCOUNT=8192 -DSECHDRSTRTABINDEX=12288 --check-prefix=INVALID-LLVM226# RUN: not llvm-readelf -a %t.invalid1 2>&1 \227# RUN:  | FileCheck %s -DFILE=%t.invalid1 -DSECHDRCOUNT=8192 -DSECHDRSTRTABINDEX=12288 --check-prefix=INVALID-GNU228 229## Check what we print when e_shnum == 0, e_shstrndx == SHN_XINDEX and the section header table can't be read.230 231# RUN: yaml2obj %s -DSHNUM=0 -DSHSTRNDX=0xffff --docnum=4 -o %t.invalid2232# RUN: not llvm-readobj --file-headers %t.invalid2 2>&1 \233# RUN:  | FileCheck %s -DFILE=%t.invalid2 -DSECHDRCOUNT="<?>" -DSECHDRSTRTABINDEX="<?>" --check-prefix=INVALID-LLVM234# RUN: not llvm-readelf --file-headers %t.invalid2 2>&1 \235# RUN:  | FileCheck %s -DFILE=%t.invalid2 -DSECHDRCOUNT="<?>" -DSECHDRSTRTABINDEX="<?>" --check-prefix=INVALID-GNU236