brintos

brintos / llvm-project-archived public Read only

0
0
Text · 6.6 KiB · e15f934 Raw
199 lines · plain
1## Check incompatible options.2# RUN: not llvm-objcopy --remove-note=1 --remove-section=.test - 2>&1 | FileCheck %s --check-prefix=ERR-REMSEC3# RUN: not llvm-objcopy --remove-note=1 --add-section=.test=%s - 2>&1 | FileCheck %s --check-prefix=ERR-ADDSEC4# RUN: not llvm-objcopy --remove-note=1 --update-section=.test=%s - 2>&1 | FileCheck %s --check-prefix=ERR-UPDSEC5 6# ERR-REMSEC: error: cannot specify both --remove-note and --remove-section7# ERR-ADDSEC: error: cannot specify both --remove-note and --add-section8# ERR-UPDSEC: error: cannot specify both --remove-note and --update-section9 10## Check invalid argument formats.11# RUN: not llvm-objcopy --remove-note= - 2>&1 | FileCheck %s --check-prefix=ERR-NOTYPEID12# RUN: not llvm-objcopy --remove-note=CORE/ - 2>&1 | FileCheck %s --check-prefix=ERR-NOTYPEID13# RUN: not llvm-objcopy --remove-note=/1 - 2>&1 | FileCheck %s --check-prefix=ERR-EMPTYNAME14# RUN: not llvm-objcopy --remove-note=CORE/1/2 - 2>&1 | FileCheck %s --check-prefix=ERR-INVNUM115# RUN: not llvm-objcopy --remove-note=Notanumber - 2>&1 | FileCheck %s --check-prefix=ERR-INVNUM216# RUN: not llvm-objcopy --remove-note=CORE/Notanumber - 2>&1 | FileCheck %s --check-prefix=ERR-INVNUM217 18# ERR-NOTYPEID: error: bad format for --remove-note, missing type_id19# ERR-EMPTYNAME: error: bad format for --remove-note, note name is empty20# ERR-INVNUM1: error: bad note type_id for --remove-note: '1/2'21# ERR-INVNUM2: error: bad note type_id for --remove-note: 'Notanumber'22 23## Check deleting notes:24## * --remove-note=1 will remove note "CORE/1" and "LINUX/1",25## * --remove-note=DUMMY/2 will not remove any notes because there are no notes with this owner,26## * --remove-note=CORE/3 will remove "CORE/3" but preserve "LINUX/3".27# RUN: yaml2obj --docnum=1 -D ALIGN=8 -D ELFCLASS=64 -D ENDIANNESS=LSB %s -o %t8.64.lsb28# RUN: llvm-objcopy --remove-note=0x01 --remove-note=DUMMY/2 --remove-note=CORE/0x03 %t8.64.lsb %t8.64.lsb.o29# RUN: llvm-readobj --segments --sections --notes %t8.64.lsb.o | \30# RUN:   FileCheck %s -D#SIZE0=32 -D#SIZE1=6431 32# RUN: yaml2obj --docnum=1 -D ALIGN=4 -D ELFCLASS=64 -D ENDIANNESS=MSB %s -o %t4.64.msb33# RUN: llvm-objcopy --remove-note=0x01 --remove-note=DUMMY/0x02 --remove-note=CORE/3 %t4.64.msb %t4.64.msb.o34# RUN: llvm-readobj --segments --sections --notes %t4.64.msb.o | \35# RUN:   FileCheck %s -D#SIZE0=24 -D#SIZE1=4836 37# RUN: yaml2obj --docnum=1 -D ALIGN=4 -D ELFCLASS=32 -D ENDIANNESS=LSB %s -o %t4.32.lsb38# RUN: llvm-objcopy --remove-note=1 --remove-note=DUMMY/0x02 --remove-note=CORE/3 %t4.32.lsb %t4.32.lsb.o39# RUN: llvm-readobj --segments --sections --notes %t4.32.lsb.o | \40# RUN:   FileCheck %s -D#SIZE0=24 -D#SIZE1=4841 42# CHECK:      Sections [43# CHECK:        Section {44# CHECK:          Name: .note045# CHECK-NEXT:     Type: SHT_NOTE46# CHECK-NEXT:     Flags [47# CHECK-NEXT:     ]48# CHECK-NEXT:     Address:49# CHECK-NEXT:     Offset:50# CHECK-NEXT:     Size: [[#%d,SIZE0]]51# CHECK:          Name: .note152# CHECK-NEXT:     Type: SHT_NOTE53# CHECK-NEXT:     Flags [54# CHECK-NEXT:     ]55# CHECK-NEXT:     Address:56# CHECK-NEXT:     Offset:57# CHECK-NEXT:     Size: [[#%d,SIZE1]]58# CHECK:          Name: .note259# CHECK-NEXT:     Type: SHT_NOTE60# CHECK-NEXT:     Flags [61# CHECK-NEXT:     ]62# CHECK-NEXT:     Address:63# CHECK-NEXT:     Offset:64# CHECK-NEXT:     Size: 065 66# CHECK:      NoteSections [67# CHECK-NEXT:   NoteSection {68# CHECK-NEXT:     Name: .note069# CHECK-NEXT:     Offset:70# CHECK-NEXT:     Size: 0x[[#%X,SIZE0]]71# CHECK-NEXT:     Notes [72# CHECK-NEXT:       {73# CHECK-NEXT:         Owner: CORE74# CHECK-NEXT:         Data size: 0x275# CHECK-NEXT:         Type: NT_ARCH76# CHECK-NEXT:         Description data (77# CHECK-NEXT:           0000: 020178# CHECK-NEXT:         )79# CHECK-NEXT:       }80# CHECK-NEXT:     ]81# CHECK-NEXT:   }82# CHECK-NEXT:   NoteSection {83# CHECK-NEXT:     Name: .note184# CHECK-NEXT:     Offset:85# CHECK-NEXT:     Size: 0x[[#%X,SIZE1]]86# CHECK-NEXT:     Notes [87# CHECK-NEXT:       {88# CHECK-NEXT:         Owner: LINUX89# CHECK-NEXT:         Data size: 0x290# CHECK-NEXT:         Type: Unknown (0x00000003)91# CHECK-NEXT:         Description data (92# CHECK-NEXT:           0000: 030193# CHECK-NEXT:         )94# CHECK-NEXT:       }95# CHECK-NEXT:       {96# CHECK-NEXT:         Owner: CORE97# CHECK-NEXT:         Data size: 0x298# CHECK-NEXT:         Type: Unknown (0x00000004)99# CHECK-NEXT:         Description data (100# CHECK-NEXT:           0000: 0401101# CHECK-NEXT:         )102# CHECK-NEXT:       }103# CHECK-NEXT:     ]104# CHECK-NEXT:   }105# CHECK-NEXT:   NoteSection {106# CHECK-NEXT:     Name: .note2107# CHECK-NEXT:     Offset:108# CHECK-NEXT:     Size: 0x0109# CHECK-NEXT:     Notes [110# CHECK-NEXT:     ]111# CHECK-NEXT:   }112 113--- !ELF114FileHeader:115  Class:          ELFCLASS[[ELFCLASS]]116  Data:           ELFDATA2[[ENDIANNESS]]117  Type:           ET_REL118  Machine:        EM_X86_64119Sections:120  - Name:         .note0121    Type:         SHT_NOTE122    AddressAlign: [[ALIGN]]123    Notes:124      - Name:   CORE125        Type:   0x01126        Desc:   0101127      - Name:   CORE128        Type:   0x02129        Desc:   0201130  - Name:         .note1131    Type:         SHT_NOTE132    AddressAlign: [[ALIGN]]133    Notes:134      - Name:   LINUX135        Type:   0x03136        Desc:   0301137      - Name:   CORE138        Type:   0x03139        Desc:   0302140      - Name:   CORE141        Type:   0x04142        Desc:   0401143  - Name:         .note2144    Type:         SHT_NOTE145    AddressAlign: [[ALIGN]]146    Notes:147      - Name:   LINUX148        Type:   0x01149        Desc:   0102150 151# RUN: yaml2obj --docnum=2 %s -o %t2152# RUN: llvm-objcopy --remove-note=1 %t2 %t2o 2>&1 | FileCheck %s --check-prefix=TEST2153# TEST2: warning: note segments are not supported154# TEST2-NOT: note segments are not supported155 156--- !ELF157FileHeader:158  Class:          ELFCLASS64159  Data:           ELFDATA2LSB160  Type:           ET_CORE161  Machine:        EM_X86_64162ProgramHeaders:163  - Type:         PT_NOTE164    FirstSec:     .data0165    LastSec:      .data0166  - Type:         PT_NOTE167    FirstSec:     .data1168    LastSec:      .data1169Sections:170  - Name:         .data0171    Type:         Fill172    Size:         8173  - Name:         .data1174    Type:         Fill175    Size:         8176 177# RUN: yaml2obj --docnum=3 %s -o %t3178# RUN: llvm-objcopy --remove-note=1 %t3 %t3o 2>&1 | FileCheck %s --check-prefix=TEST3179# TEST3: warning: cannot remove note(s) from .note: sections in segments are not supported180 181--- !ELF182FileHeader:183  Class:          ELFCLASS64184  Data:           ELFDATA2LSB185  Type:           ET_EXEC186  Machine:        EM_X86_64187ProgramHeaders:188  - Type:         PT_LOAD189    FirstSec:     .note190    LastSec:      .note191Sections:192  - Name:         .note193    Type:         SHT_NOTE194    AddressAlign: 4195    Notes:196      - Name:     ABC197        Type:     1198        Desc:     0102199