Recommit "rL366894: [yaml2obj] - Allow custom fields for the SHT_UNDEF sections."
[llvm-complete.git] / test / tools / llvm-readobj / elf-types.test
blobaecbdeacde9836d51eea4a0fa9497853b18a4410
1 # Show that llvm-readobj can handle all standard ELF types.
2 # RUN: yaml2obj %s --docnum=1 -o %t.none
3 # RUN: llvm-readobj --file-headers %t.none | FileCheck %s --check-prefix=LLVM-NONE
4 # RUN: llvm-readelf --file-headers %t.none | FileCheck %s --check-prefix=GNU-NONE
6 # LLVM-NONE: Type: None (0x0)
7 # GNU-NONE:  Type: NONE (none)
9 --- !ELF
10 FileHeader:
11   Class:   ELFCLASS64
12   Data:    ELFDATA2LSB
13   Type:    ET_NONE
14   Machine: EM_X86_64
16 # RUN: yaml2obj %s --docnum=2 -o %t.rel
17 # RUN: llvm-readobj --file-headers %t.rel | FileCheck %s --check-prefix=LLVM-REL
18 # RUN: llvm-readelf --file-headers %t.rel | FileCheck %s --check-prefix=GNU-REL
20 # LLVM-REL: Type: Relocatable (0x1)
21 # GNU-REL:  Type: REL (Relocatable file)
23 --- !ELF
24 FileHeader:
25   Class:   ELFCLASS64
26   Data:    ELFDATA2LSB
27   Type:    ET_REL
28   Machine: EM_X86_64
31 # RUN: yaml2obj %s --docnum=3 -o %t.exec
32 # RUN: llvm-readobj --file-headers %t.exec | FileCheck %s --check-prefix=LLVM-EXEC
33 # RUN: llvm-readelf --file-headers %t.exec | FileCheck %s --check-prefix=GNU-EXEC
35 # LLVM-EXEC: Type: Executable (0x2)
36 # GNU-EXEC:  Type: EXEC (Executable file)
38 --- !ELF
39 FileHeader:
40   Class:   ELFCLASS64
41   Data:    ELFDATA2LSB
42   Type:    ET_EXEC
43   Machine: EM_X86_64
45 # RUN: yaml2obj %s --docnum=4 -o %t.so
46 # RUN: llvm-readobj --file-headers %t.so | FileCheck %s --check-prefix=LLVM-SO
47 # RUN: llvm-readelf --file-headers %t.so | FileCheck %s --check-prefix=GNU-SO
49 # LLVM-SO: Type: SharedObject (0x3)
50 # GNU-SO:  Type: DYN (Shared object file)
52 --- !ELF
53 FileHeader:
54   Class:   ELFCLASS64
55   Data:    ELFDATA2LSB
56   Type:    ET_DYN
57   Machine: EM_X86_64
59 # RUN: yaml2obj %s --docnum=5 -o %t.core
60 # RUN: llvm-readobj --file-headers %t.core | FileCheck %s --check-prefix=LLVM-CORE
61 # RUN: llvm-readelf --file-headers %t.core | FileCheck %s --check-prefix=GNU-CORE
63 # LLVM-CORE: Type: Core (0x4)
64 # GNU-CORE:  Type: CORE (Core file)
66 --- !ELF
67 FileHeader:
68   Class:   ELFCLASS64
69   Data:    ELFDATA2LSB
70   Type:    ET_CORE
71   Machine: EM_X86_64
73 # Show that llvm-readobj can handle an unknown ELF type.
74 # RUN: yaml2obj %s --docnum=6 -o %t.unknown
75 # RUN: llvm-readobj --file-headers %t.unknown | FileCheck %s --check-prefix=LLVM-UNKNOWN
76 # RUN: llvm-readelf --file-headers %t.unknown | FileCheck %s --check-prefix=GNU-UNKNOWN
78 # LLVM-UNKNOWN: Type: 0x42
79 # GNU-UNKNOWN:  Type: 42
81 --- !ELF
82 FileHeader:
83   Class:   ELFCLASS64
84   Data:    ELFDATA2LSB
85   Type:    0x42
86   Machine: EM_X86_64
88 # Show that llvm-readobj can handle an unknown OS-specific ELF type.
89 # RUN: yaml2obj %s --docnum=7 -o %t.os
90 # RUN: llvm-readobj --file-headers %t.os | FileCheck %s --check-prefix=LLVM-OS
91 # RUN: llvm-readelf --file-headers %t.os | FileCheck %s --check-prefix=GNU-OS
93 # LLVM-OS: Type: 0xFE00
94 # GNU-OS:  Type: fe00
96 --- !ELF
97 FileHeader:
98   Class:   ELFCLASS64
99   Data:    ELFDATA2LSB
100   Type:    0xfe00
101   Machine: EM_X86_64
103 # Show that llvm-readobj can handle an unknown machine-specific ELF type.
104 # RUN: yaml2obj %s --docnum=8 -o %t.proc
105 # RUN: llvm-readobj --file-headers %t.proc | FileCheck %s --check-prefix=LLVM-PROC
106 # RUN: llvm-readelf --file-headers %t.proc | FileCheck %s --check-prefix=GNU-PROC
108 # LLVM-PROC: Type: 0xFF00
109 # GNU-PROC:  Type: ff00
111 --- !ELF
112 FileHeader:
113   Class:   ELFCLASS64
114   Data:    ELFDATA2LSB
115   Type:    0xff00
116   Machine: EM_X86_64