diff options
author | Fangrui Song <i@maskray.me> | 2025-01-26 22:28:31 -0800 |
---|---|---|
committer | Fangrui Song <i@maskray.me> | 2025-01-26 22:28:31 -0800 |
commit | 6805d7e8aa5f2ecea021acbb8c6b4c29ca432e78 (patch) | |
tree | ae21b6e1457b6e3141fc63c4f55f46afbf5b25b9 | |
parent | b9efbed468ec18044070eea936c694fb8f6e244b (diff) | |
download | llvm-6805d7e8aa5f2ecea021acbb8c6b4c29ca432e78.zip llvm-6805d7e8aa5f2ecea021acbb8c6b4c29ca432e78.tar.gz llvm-6805d7e8aa5f2ecea021acbb8c6b4c29ca432e78.tar.bz2 |
[test] Convert remove-note.test from \r\n to \n after #118739
-rw-r--r-- | llvm/test/tools/llvm-objcopy/ELF/remove-note.test | 396 |
1 files changed, 198 insertions, 198 deletions
diff --git a/llvm/test/tools/llvm-objcopy/ELF/remove-note.test b/llvm/test/tools/llvm-objcopy/ELF/remove-note.test index f8936bf..e15f934 100644 --- a/llvm/test/tools/llvm-objcopy/ELF/remove-note.test +++ b/llvm/test/tools/llvm-objcopy/ELF/remove-note.test @@ -1,198 +1,198 @@ -## Check incompatible options.
-# RUN: not llvm-objcopy --remove-note=1 --remove-section=.test - 2>&1 | FileCheck %s --check-prefix=ERR-REMSEC
-# RUN: not llvm-objcopy --remove-note=1 --add-section=.test=%s - 2>&1 | FileCheck %s --check-prefix=ERR-ADDSEC
-# RUN: not llvm-objcopy --remove-note=1 --update-section=.test=%s - 2>&1 | FileCheck %s --check-prefix=ERR-UPDSEC
-
-# ERR-REMSEC: error: cannot specify both --remove-note and --remove-section
-# ERR-ADDSEC: error: cannot specify both --remove-note and --add-section
-# ERR-UPDSEC: error: cannot specify both --remove-note and --update-section
-
-## Check invalid argument formats.
-# RUN: not llvm-objcopy --remove-note= - 2>&1 | FileCheck %s --check-prefix=ERR-NOTYPEID
-# RUN: not llvm-objcopy --remove-note=CORE/ - 2>&1 | FileCheck %s --check-prefix=ERR-NOTYPEID
-# RUN: not llvm-objcopy --remove-note=/1 - 2>&1 | FileCheck %s --check-prefix=ERR-EMPTYNAME
-# RUN: not llvm-objcopy --remove-note=CORE/1/2 - 2>&1 | FileCheck %s --check-prefix=ERR-INVNUM1
-# RUN: not llvm-objcopy --remove-note=Notanumber - 2>&1 | FileCheck %s --check-prefix=ERR-INVNUM2
-# RUN: not llvm-objcopy --remove-note=CORE/Notanumber - 2>&1 | FileCheck %s --check-prefix=ERR-INVNUM2
-
-# ERR-NOTYPEID: error: bad format for --remove-note, missing type_id
-# ERR-EMPTYNAME: error: bad format for --remove-note, note name is empty
-# ERR-INVNUM1: error: bad note type_id for --remove-note: '1/2'
-# ERR-INVNUM2: error: bad note type_id for --remove-note: 'Notanumber'
-
-## Check deleting notes:
-## * --remove-note=1 will remove note "CORE/1" and "LINUX/1",
-## * --remove-note=DUMMY/2 will not remove any notes because there are no notes with this owner,
-## * --remove-note=CORE/3 will remove "CORE/3" but preserve "LINUX/3".
-# RUN: yaml2obj --docnum=1 -D ALIGN=8 -D ELFCLASS=64 -D ENDIANNESS=LSB %s -o %t8.64.lsb
-# RUN: llvm-objcopy --remove-note=0x01 --remove-note=DUMMY/2 --remove-note=CORE/0x03 %t8.64.lsb %t8.64.lsb.o
-# RUN: llvm-readobj --segments --sections --notes %t8.64.lsb.o | \
-# RUN: FileCheck %s -D#SIZE0=32 -D#SIZE1=64
-
-# RUN: yaml2obj --docnum=1 -D ALIGN=4 -D ELFCLASS=64 -D ENDIANNESS=MSB %s -o %t4.64.msb
-# RUN: llvm-objcopy --remove-note=0x01 --remove-note=DUMMY/0x02 --remove-note=CORE/3 %t4.64.msb %t4.64.msb.o
-# RUN: llvm-readobj --segments --sections --notes %t4.64.msb.o | \
-# RUN: FileCheck %s -D#SIZE0=24 -D#SIZE1=48
-
-# RUN: yaml2obj --docnum=1 -D ALIGN=4 -D ELFCLASS=32 -D ENDIANNESS=LSB %s -o %t4.32.lsb
-# RUN: llvm-objcopy --remove-note=1 --remove-note=DUMMY/0x02 --remove-note=CORE/3 %t4.32.lsb %t4.32.lsb.o
-# RUN: llvm-readobj --segments --sections --notes %t4.32.lsb.o | \
-# RUN: FileCheck %s -D#SIZE0=24 -D#SIZE1=48
-
-# CHECK: Sections [
-# CHECK: Section {
-# CHECK: Name: .note0
-# CHECK-NEXT: Type: SHT_NOTE
-# CHECK-NEXT: Flags [
-# CHECK-NEXT: ]
-# CHECK-NEXT: Address:
-# CHECK-NEXT: Offset:
-# CHECK-NEXT: Size: [[#%d,SIZE0]]
-# CHECK: Name: .note1
-# CHECK-NEXT: Type: SHT_NOTE
-# CHECK-NEXT: Flags [
-# CHECK-NEXT: ]
-# CHECK-NEXT: Address:
-# CHECK-NEXT: Offset:
-# CHECK-NEXT: Size: [[#%d,SIZE1]]
-# CHECK: Name: .note2
-# CHECK-NEXT: Type: SHT_NOTE
-# CHECK-NEXT: Flags [
-# CHECK-NEXT: ]
-# CHECK-NEXT: Address:
-# CHECK-NEXT: Offset:
-# CHECK-NEXT: Size: 0
-
-# CHECK: NoteSections [
-# CHECK-NEXT: NoteSection {
-# CHECK-NEXT: Name: .note0
-# CHECK-NEXT: Offset:
-# CHECK-NEXT: Size: 0x[[#%X,SIZE0]]
-# CHECK-NEXT: Notes [
-# CHECK-NEXT: {
-# CHECK-NEXT: Owner: CORE
-# CHECK-NEXT: Data size: 0x2
-# CHECK-NEXT: Type: NT_ARCH
-# CHECK-NEXT: Description data (
-# CHECK-NEXT: 0000: 0201
-# CHECK-NEXT: )
-# CHECK-NEXT: }
-# CHECK-NEXT: ]
-# CHECK-NEXT: }
-# CHECK-NEXT: NoteSection {
-# CHECK-NEXT: Name: .note1
-# CHECK-NEXT: Offset:
-# CHECK-NEXT: Size: 0x[[#%X,SIZE1]]
-# CHECK-NEXT: Notes [
-# CHECK-NEXT: {
-# CHECK-NEXT: Owner: LINUX
-# CHECK-NEXT: Data size: 0x2
-# CHECK-NEXT: Type: Unknown (0x00000003)
-# CHECK-NEXT: Description data (
-# CHECK-NEXT: 0000: 0301
-# CHECK-NEXT: )
-# CHECK-NEXT: }
-# CHECK-NEXT: {
-# CHECK-NEXT: Owner: CORE
-# CHECK-NEXT: Data size: 0x2
-# CHECK-NEXT: Type: Unknown (0x00000004)
-# CHECK-NEXT: Description data (
-# CHECK-NEXT: 0000: 0401
-# CHECK-NEXT: )
-# CHECK-NEXT: }
-# CHECK-NEXT: ]
-# CHECK-NEXT: }
-# CHECK-NEXT: NoteSection {
-# CHECK-NEXT: Name: .note2
-# CHECK-NEXT: Offset:
-# CHECK-NEXT: Size: 0x0
-# CHECK-NEXT: Notes [
-# CHECK-NEXT: ]
-# CHECK-NEXT: }
-
---- !ELF
-FileHeader:
- Class: ELFCLASS[[ELFCLASS]]
- Data: ELFDATA2[[ENDIANNESS]]
- Type: ET_REL
- Machine: EM_X86_64
-Sections:
- - Name: .note0
- Type: SHT_NOTE
- AddressAlign: [[ALIGN]]
- Notes:
- - Name: CORE
- Type: 0x01
- Desc: 0101
- - Name: CORE
- Type: 0x02
- Desc: 0201
- - Name: .note1
- Type: SHT_NOTE
- AddressAlign: [[ALIGN]]
- Notes:
- - Name: LINUX
- Type: 0x03
- Desc: 0301
- - Name: CORE
- Type: 0x03
- Desc: 0302
- - Name: CORE
- Type: 0x04
- Desc: 0401
- - Name: .note2
- Type: SHT_NOTE
- AddressAlign: [[ALIGN]]
- Notes:
- - Name: LINUX
- Type: 0x01
- Desc: 0102
-
-# RUN: yaml2obj --docnum=2 %s -o %t2
-# RUN: llvm-objcopy --remove-note=1 %t2 %t2o 2>&1 | FileCheck %s --check-prefix=TEST2
-# TEST2: warning: note segments are not supported
-# TEST2-NOT: note segments are not supported
-
---- !ELF
-FileHeader:
- Class: ELFCLASS64
- Data: ELFDATA2LSB
- Type: ET_CORE
- Machine: EM_X86_64
-ProgramHeaders:
- - Type: PT_NOTE
- FirstSec: .data0
- LastSec: .data0
- - Type: PT_NOTE
- FirstSec: .data1
- LastSec: .data1
-Sections:
- - Name: .data0
- Type: Fill
- Size: 8
- - Name: .data1
- Type: Fill
- Size: 8
-
-# RUN: yaml2obj --docnum=3 %s -o %t3
-# RUN: llvm-objcopy --remove-note=1 %t3 %t3o 2>&1 | FileCheck %s --check-prefix=TEST3
-# TEST3: warning: cannot remove note(s) from .note: sections in segments are not supported
-
---- !ELF
-FileHeader:
- Class: ELFCLASS64
- Data: ELFDATA2LSB
- Type: ET_EXEC
- Machine: EM_X86_64
-ProgramHeaders:
- - Type: PT_LOAD
- FirstSec: .note
- LastSec: .note
-Sections:
- - Name: .note
- Type: SHT_NOTE
- AddressAlign: 4
- Notes:
- - Name: ABC
- Type: 1
- Desc: 0102
+## Check incompatible options. +# RUN: not llvm-objcopy --remove-note=1 --remove-section=.test - 2>&1 | FileCheck %s --check-prefix=ERR-REMSEC +# RUN: not llvm-objcopy --remove-note=1 --add-section=.test=%s - 2>&1 | FileCheck %s --check-prefix=ERR-ADDSEC +# RUN: not llvm-objcopy --remove-note=1 --update-section=.test=%s - 2>&1 | FileCheck %s --check-prefix=ERR-UPDSEC + +# ERR-REMSEC: error: cannot specify both --remove-note and --remove-section +# ERR-ADDSEC: error: cannot specify both --remove-note and --add-section +# ERR-UPDSEC: error: cannot specify both --remove-note and --update-section + +## Check invalid argument formats. +# RUN: not llvm-objcopy --remove-note= - 2>&1 | FileCheck %s --check-prefix=ERR-NOTYPEID +# RUN: not llvm-objcopy --remove-note=CORE/ - 2>&1 | FileCheck %s --check-prefix=ERR-NOTYPEID +# RUN: not llvm-objcopy --remove-note=/1 - 2>&1 | FileCheck %s --check-prefix=ERR-EMPTYNAME +# RUN: not llvm-objcopy --remove-note=CORE/1/2 - 2>&1 | FileCheck %s --check-prefix=ERR-INVNUM1 +# RUN: not llvm-objcopy --remove-note=Notanumber - 2>&1 | FileCheck %s --check-prefix=ERR-INVNUM2 +# RUN: not llvm-objcopy --remove-note=CORE/Notanumber - 2>&1 | FileCheck %s --check-prefix=ERR-INVNUM2 + +# ERR-NOTYPEID: error: bad format for --remove-note, missing type_id +# ERR-EMPTYNAME: error: bad format for --remove-note, note name is empty +# ERR-INVNUM1: error: bad note type_id for --remove-note: '1/2' +# ERR-INVNUM2: error: bad note type_id for --remove-note: 'Notanumber' + +## Check deleting notes: +## * --remove-note=1 will remove note "CORE/1" and "LINUX/1", +## * --remove-note=DUMMY/2 will not remove any notes because there are no notes with this owner, +## * --remove-note=CORE/3 will remove "CORE/3" but preserve "LINUX/3". +# RUN: yaml2obj --docnum=1 -D ALIGN=8 -D ELFCLASS=64 -D ENDIANNESS=LSB %s -o %t8.64.lsb +# RUN: llvm-objcopy --remove-note=0x01 --remove-note=DUMMY/2 --remove-note=CORE/0x03 %t8.64.lsb %t8.64.lsb.o +# RUN: llvm-readobj --segments --sections --notes %t8.64.lsb.o | \ +# RUN: FileCheck %s -D#SIZE0=32 -D#SIZE1=64 + +# RUN: yaml2obj --docnum=1 -D ALIGN=4 -D ELFCLASS=64 -D ENDIANNESS=MSB %s -o %t4.64.msb +# RUN: llvm-objcopy --remove-note=0x01 --remove-note=DUMMY/0x02 --remove-note=CORE/3 %t4.64.msb %t4.64.msb.o +# RUN: llvm-readobj --segments --sections --notes %t4.64.msb.o | \ +# RUN: FileCheck %s -D#SIZE0=24 -D#SIZE1=48 + +# RUN: yaml2obj --docnum=1 -D ALIGN=4 -D ELFCLASS=32 -D ENDIANNESS=LSB %s -o %t4.32.lsb +# RUN: llvm-objcopy --remove-note=1 --remove-note=DUMMY/0x02 --remove-note=CORE/3 %t4.32.lsb %t4.32.lsb.o +# RUN: llvm-readobj --segments --sections --notes %t4.32.lsb.o | \ +# RUN: FileCheck %s -D#SIZE0=24 -D#SIZE1=48 + +# CHECK: Sections [ +# CHECK: Section { +# CHECK: Name: .note0 +# CHECK-NEXT: Type: SHT_NOTE +# CHECK-NEXT: Flags [ +# CHECK-NEXT: ] +# CHECK-NEXT: Address: +# CHECK-NEXT: Offset: +# CHECK-NEXT: Size: [[#%d,SIZE0]] +# CHECK: Name: .note1 +# CHECK-NEXT: Type: SHT_NOTE +# CHECK-NEXT: Flags [ +# CHECK-NEXT: ] +# CHECK-NEXT: Address: +# CHECK-NEXT: Offset: +# CHECK-NEXT: Size: [[#%d,SIZE1]] +# CHECK: Name: .note2 +# CHECK-NEXT: Type: SHT_NOTE +# CHECK-NEXT: Flags [ +# CHECK-NEXT: ] +# CHECK-NEXT: Address: +# CHECK-NEXT: Offset: +# CHECK-NEXT: Size: 0 + +# CHECK: NoteSections [ +# CHECK-NEXT: NoteSection { +# CHECK-NEXT: Name: .note0 +# CHECK-NEXT: Offset: +# CHECK-NEXT: Size: 0x[[#%X,SIZE0]] +# CHECK-NEXT: Notes [ +# CHECK-NEXT: { +# CHECK-NEXT: Owner: CORE +# CHECK-NEXT: Data size: 0x2 +# CHECK-NEXT: Type: NT_ARCH +# CHECK-NEXT: Description data ( +# CHECK-NEXT: 0000: 0201 +# CHECK-NEXT: ) +# CHECK-NEXT: } +# CHECK-NEXT: ] +# CHECK-NEXT: } +# CHECK-NEXT: NoteSection { +# CHECK-NEXT: Name: .note1 +# CHECK-NEXT: Offset: +# CHECK-NEXT: Size: 0x[[#%X,SIZE1]] +# CHECK-NEXT: Notes [ +# CHECK-NEXT: { +# CHECK-NEXT: Owner: LINUX +# CHECK-NEXT: Data size: 0x2 +# CHECK-NEXT: Type: Unknown (0x00000003) +# CHECK-NEXT: Description data ( +# CHECK-NEXT: 0000: 0301 +# CHECK-NEXT: ) +# CHECK-NEXT: } +# CHECK-NEXT: { +# CHECK-NEXT: Owner: CORE +# CHECK-NEXT: Data size: 0x2 +# CHECK-NEXT: Type: Unknown (0x00000004) +# CHECK-NEXT: Description data ( +# CHECK-NEXT: 0000: 0401 +# CHECK-NEXT: ) +# CHECK-NEXT: } +# CHECK-NEXT: ] +# CHECK-NEXT: } +# CHECK-NEXT: NoteSection { +# CHECK-NEXT: Name: .note2 +# CHECK-NEXT: Offset: +# CHECK-NEXT: Size: 0x0 +# CHECK-NEXT: Notes [ +# CHECK-NEXT: ] +# CHECK-NEXT: } + +--- !ELF +FileHeader: + Class: ELFCLASS[[ELFCLASS]] + Data: ELFDATA2[[ENDIANNESS]] + Type: ET_REL + Machine: EM_X86_64 +Sections: + - Name: .note0 + Type: SHT_NOTE + AddressAlign: [[ALIGN]] + Notes: + - Name: CORE + Type: 0x01 + Desc: 0101 + - Name: CORE + Type: 0x02 + Desc: 0201 + - Name: .note1 + Type: SHT_NOTE + AddressAlign: [[ALIGN]] + Notes: + - Name: LINUX + Type: 0x03 + Desc: 0301 + - Name: CORE + Type: 0x03 + Desc: 0302 + - Name: CORE + Type: 0x04 + Desc: 0401 + - Name: .note2 + Type: SHT_NOTE + AddressAlign: [[ALIGN]] + Notes: + - Name: LINUX + Type: 0x01 + Desc: 0102 + +# RUN: yaml2obj --docnum=2 %s -o %t2 +# RUN: llvm-objcopy --remove-note=1 %t2 %t2o 2>&1 | FileCheck %s --check-prefix=TEST2 +# TEST2: warning: note segments are not supported +# TEST2-NOT: note segments are not supported + +--- !ELF +FileHeader: + Class: ELFCLASS64 + Data: ELFDATA2LSB + Type: ET_CORE + Machine: EM_X86_64 +ProgramHeaders: + - Type: PT_NOTE + FirstSec: .data0 + LastSec: .data0 + - Type: PT_NOTE + FirstSec: .data1 + LastSec: .data1 +Sections: + - Name: .data0 + Type: Fill + Size: 8 + - Name: .data1 + Type: Fill + Size: 8 + +# RUN: yaml2obj --docnum=3 %s -o %t3 +# RUN: llvm-objcopy --remove-note=1 %t3 %t3o 2>&1 | FileCheck %s --check-prefix=TEST3 +# TEST3: warning: cannot remove note(s) from .note: sections in segments are not supported + +--- !ELF +FileHeader: + Class: ELFCLASS64 + Data: ELFDATA2LSB + Type: ET_EXEC + Machine: EM_X86_64 +ProgramHeaders: + - Type: PT_LOAD + FirstSec: .note + LastSec: .note +Sections: + - Name: .note + Type: SHT_NOTE + AddressAlign: 4 + Notes: + - Name: ABC + Type: 1 + Desc: 0102 |