xref: /llvm-project/llvm/test/tools/llvm-objcopy/ELF/dump-section.test (revision 96f3a6307670bc6c79c44bf01be507dd8a1af30e)
155c81d42SFangrui Song# RUN: yaml2obj %s -o %t
26e4dc6f2SAlexander Shaposhnikov# RUN: llvm-objcopy -O binary -j .text %t %t2
3298ea3f5SJordan Rupprecht# RUN: llvm-objcopy -O binary --only-section .text %t %t3
46e4dc6f2SAlexander Shaposhnikov# RUN: llvm-objcopy --dump-section .text=%t4 %t %t5
56e4dc6f2SAlexander Shaposhnikov# RUN: llvm-objcopy --dump-section .foo=%t6 %t %t7
6ada9d2d8SSeiya Nuta# RUN: not llvm-objcopy --dump-section .bar=%t8 %t %t9 2>&1 | FileCheck %s --check-prefix=NOBITS -DINPUT=%t
71562e455SJames Henderson# RUN: llvm-objcopy --dump-section .text=%t10 --dump-section .foo=%t11 %t /dev/null
832b19334SFangrui Song# RUN: llvm-objcopy --dump-section .empty=%t.empty %t /dev/null
942b7cd58SKai Nacke# RUN: od -t x1 %t2 | FileCheck %s --ignore-case
1042b7cd58SKai Nacke# RUN: od -t x1 %t6 | FileCheck %s --ignore-case --check-prefix=NON-ALLOC
116e4dc6f2SAlexander Shaposhnikov# RUN: wc -c %t2 | FileCheck %s --check-prefix=SIZE
1232b19334SFangrui Song# RUN: wc -c %t.empty | FileCheck %s --check-prefix=EMPTY
136e4dc6f2SAlexander Shaposhnikov# RUN: diff %t2 %t3
146e4dc6f2SAlexander Shaposhnikov# RUN: diff %t4 %t3
151562e455SJames Henderson# RUN: diff %t10 %t3
161562e455SJames Henderson# RUN: diff %t11 %t6
176e4dc6f2SAlexander Shaposhnikov
186e4dc6f2SAlexander Shaposhnikov!ELF
196e4dc6f2SAlexander ShaposhnikovFileHeader:
206e4dc6f2SAlexander Shaposhnikov  Class:           ELFCLASS64
216e4dc6f2SAlexander Shaposhnikov  Data:            ELFDATA2LSB
226e4dc6f2SAlexander Shaposhnikov  Type:            ET_EXEC
236e4dc6f2SAlexander Shaposhnikov  Machine:         EM_X86_64
246e4dc6f2SAlexander ShaposhnikovSections:
256e4dc6f2SAlexander Shaposhnikov  - Name:            .text
266e4dc6f2SAlexander Shaposhnikov    Type:            SHT_PROGBITS
276e4dc6f2SAlexander Shaposhnikov    Flags:           [ SHF_ALLOC, SHF_EXECINSTR ]
286e4dc6f2SAlexander Shaposhnikov    AddressAlign:    0x0000000000001000
296e4dc6f2SAlexander Shaposhnikov    Content:         "DEADBEEF"
306e4dc6f2SAlexander Shaposhnikov  - Name:            .foo
316e4dc6f2SAlexander Shaposhnikov    Type:            SHT_PROGBITS
326e4dc6f2SAlexander Shaposhnikov    Flags:           [ SHF_WRITE ]
336e4dc6f2SAlexander Shaposhnikov    Content:         "CAFE"
3432b19334SFangrui Song  - Name:            .empty
3532b19334SFangrui Song    Type:            SHT_PROGBITS
3632b19334SFangrui Song    Flags:           [ SHF_ALLOC ]
376e4dc6f2SAlexander Shaposhnikov  - Name:            .bar
386e4dc6f2SAlexander Shaposhnikov    Type:            SHT_NOBITS
396e4dc6f2SAlexander Shaposhnikov    Flags:           [ SHF_WRITE ]
406e4dc6f2SAlexander ShaposhnikovProgramHeaders:
416e4dc6f2SAlexander Shaposhnikov  - Type:     PT_LOAD
426e4dc6f2SAlexander Shaposhnikov    Flags:    [ PF_X, PF_R ]
43a7a447beSGeorgii Rymar    FirstSec: .text
44a7a447beSGeorgii Rymar    LastSec:  .text
456e4dc6f2SAlexander Shaposhnikov
466e4dc6f2SAlexander Shaposhnikov# CHECK: 0000000 de ad be ef
476e4dc6f2SAlexander Shaposhnikov
486e4dc6f2SAlexander Shaposhnikov# NON-ALLOC: 0000000 ca fe
496e4dc6f2SAlexander Shaposhnikov
506e4dc6f2SAlexander Shaposhnikov# SIZE: 4
516e4dc6f2SAlexander Shaposhnikov
52ada9d2d8SSeiya Nuta# NOBITS: error: '[[INPUT]]': cannot dump section '.bar': it has no contents
5332b19334SFangrui Song
5432b19334SFangrui Song# EMPTY: 0
551562e455SJames Henderson
561562e455SJames Henderson# RUN: not llvm-objcopy --dump-section =/dev/null %t /dev/null 2>&1 | \
571562e455SJames Henderson# RUN:   FileCheck %s --check-prefix=ERR -DFILE=%t "-DSECTION="
581562e455SJames Henderson# RUN: not llvm-objcopy --dump-section .missing=/dev/null %t /dev/null 2>&1 | \
591562e455SJames Henderson# RUN:   FileCheck %s --check-prefix=ERR -DFILE=%t -DSECTION=.missing
601562e455SJames Henderson
611562e455SJames Henderson# ERR: error: '[[FILE]]': section '[[SECTION]]' not found
62*96f3a630SFangrui Song
63*96f3a630SFangrui Song# RUN: not llvm-objcopy --dump-section .text %t /dev/null 2>&1 | FileCheck %s --check-prefix=ERR2
64*96f3a630SFangrui Song# RUN: not llvm-objcopy --dump-section .text= %t /dev/null 2>&1 | FileCheck %s --check-prefix=ERR2
65*96f3a630SFangrui Song
66*96f3a630SFangrui Song# ERR2: error: bad format for --dump-section, expected section=file
67