xref: /llvm-project/llvm/test/tools/llvm-objdump/XCOFF/section-headers.test (revision b5abaea3c0de605c8145035b21a5ee492883ebd7)
1db4ac5a6SEsme-Yi## Test various details of llvm-objdump -h/--section-headers for XCOFF.
26d026c89SFangrui Song
3db4ac5a6SEsme-Yi## Check the -h/--section-headers option prints section headers correctly.
4db4ac5a6SEsme-Yi# RUN: yaml2obj %s --docnum=1 -o %t-basic.o
5db4ac5a6SEsme-Yi# RUN: llvm-objdump --section-headers %t-basic.o | FileCheck %s
66d026c89SFangrui Song
7db4ac5a6SEsme-Yi# CHECK:      Sections:
8db4ac5a6SEsme-Yi# CHECK-NEXT: Idx Name          Size     VMA      Type
9db4ac5a6SEsme-Yi# CHECK-NEXT:   0 .text         00000008 00000008 TEXT
10db4ac5a6SEsme-Yi# CHECK-NEXT:   1 .data         00000004 00000000 DATA
11db4ac5a6SEsme-Yi# CHECK-NEXT:   2 .bss          00000000 00000010 BSS
12db4ac5a6SEsme-Yi# CHECK-NEXT:   3 .tdata        00000004 00000000 DATA
13*b5abaea3Sstephenpeckham# CHECK-NEXT:   4 .tbss         00000000 00000004 BSS
14c8e980abSEsme-Yi# CHECK-NEXT:   5 .dwline       00000046 00000000 DEBUG
15c8e980abSEsme-Yi# CHECK-NEXT:   6 .debug        00000046 00000000 DEBUG
16db4ac5a6SEsme-Yi
17db4ac5a6SEsme-Yi--- !XCOFF
18db4ac5a6SEsme-YiFileHeader:
19db4ac5a6SEsme-Yi  MagicNumber: 0x1DF
20db4ac5a6SEsme-YiSections:
21db4ac5a6SEsme-Yi  - Name:    .text
22db4ac5a6SEsme-Yi    Address: 0x8
23db4ac5a6SEsme-Yi    Size:    0x8
24db4ac5a6SEsme-Yi    Flags:   [ STYP_TEXT ]
25db4ac5a6SEsme-Yi  - Name:    .data
26db4ac5a6SEsme-Yi    Size:    0x4
27db4ac5a6SEsme-Yi    Flags:   [ STYP_DATA ]
28db4ac5a6SEsme-Yi  - Name:    .bss
29db4ac5a6SEsme-Yi    Size:    0x0
30db4ac5a6SEsme-Yi    Address: 0x10
31db4ac5a6SEsme-Yi    Flags:   [ STYP_BSS ]
32db4ac5a6SEsme-Yi  - Name:    .tdata
33db4ac5a6SEsme-Yi    Size:    0x4
34db4ac5a6SEsme-Yi    Flags:   [ STYP_TDATA ]
35db4ac5a6SEsme-Yi  - Name:    .tbss
36db4ac5a6SEsme-Yi    Size:    0x0
37db4ac5a6SEsme-Yi    Flags:   [ STYP_TBSS ]
38c8e980abSEsme-Yi  - Name:    .dwline
39c8e980abSEsme-Yi    Size:    0x46
40c8e980abSEsme-Yi    Flags:   [ STYP_DWARF ]
41c8e980abSEsme-Yi  - Name:    .debug
42c8e980abSEsme-Yi    Size:    0x46
43c8e980abSEsme-Yi    Flags:   [ STYP_DEBUG ]
44db4ac5a6SEsme-Yi
45db4ac5a6SEsme-Yi## Check the -h/--section-headers option prints long section names.
46db4ac5a6SEsme-Yi# RUN: yaml2obj %s --docnum=2 -o %t-longname.o
47db4ac5a6SEsme-Yi# RUN: llvm-objdump --section-headers %t-longname.o \
48db4ac5a6SEsme-Yi# RUN:   | FileCheck %s --check-prefix=LONG
49db4ac5a6SEsme-Yi
50db4ac5a6SEsme-Yi# LONG:      Sections:
51db4ac5a6SEsme-Yi# LONG-NEXT: Idx Name          Size     VMA      Type
52db4ac5a6SEsme-Yi# LONG-NEXT:   0 .dwarnge      00000004 00000000
53db4ac5a6SEsme-Yi# LONG-NEXT:   1 .dwpbnms      00000004 00000000
54db4ac5a6SEsme-Yi# LONG-NEXT:   2 .dwpbtyp      00000004 00000000
55db4ac5a6SEsme-Yi
56db4ac5a6SEsme-Yi--- !XCOFF
57db4ac5a6SEsme-YiFileHeader:
58db4ac5a6SEsme-Yi  MagicNumber: 0x1DF
59db4ac5a6SEsme-YiSections:
60db4ac5a6SEsme-Yi  - Name:  .dwarnge
61db4ac5a6SEsme-Yi    Size:  0x4
62db4ac5a6SEsme-Yi    Flags: [ STYP_PAD ]
63db4ac5a6SEsme-Yi  - Name:  .dwpbnms
64db4ac5a6SEsme-Yi    Size:  0x4
65db4ac5a6SEsme-Yi    Flags: [ STYP_PAD ]
66db4ac5a6SEsme-Yi  - Name:  .dwpbtyp
67db4ac5a6SEsme-Yi    Size:  0x4
68db4ac5a6SEsme-Yi    Flags: [ STYP_PAD ]
69db4ac5a6SEsme-Yi
70db4ac5a6SEsme-Yi## Truncate the file to end before the section header table ends.
71db4ac5a6SEsme-Yi# RUN: yaml2obj %s --docnum=3 -o %t-truncate.o
72699231abSEsme-Yi# RUN: %python -c "with open('%/t-truncate.o', 'r+b') as input: input.truncate(20)"
73db4ac5a6SEsme-Yi# RUN: not llvm-objdump --section-headers %t-truncate.o 2>&1 \
74db4ac5a6SEsme-Yi# RUN:  | FileCheck --check-prefix=ERROR %s
756d026c89SFangrui Song
76a00ff716SEsme-Yi# ERROR: The end of the file was unexpectedly encountered: section headers with offset 0x14 and size 0x28 go past the end of the file
776d026c89SFangrui Song
78db4ac5a6SEsme-Yi--- !XCOFF
79db4ac5a6SEsme-YiFileHeader:
80db4ac5a6SEsme-Yi  MagicNumber: 0x1DF
81db4ac5a6SEsme-YiSections:
82db4ac5a6SEsme-Yi  - Name:  .text
83db4ac5a6SEsme-Yi    Size:  0x8
84db4ac5a6SEsme-Yi    Flags: [ STYP_TEXT ]
85