xref: /llvm-project/llvm/test/tools/obj2yaml/ELF/no-symtab.yaml (revision d5e48f1347d50e0da4926c5e41e12fd4700abd14)
1## Check that obj2yaml doesn't create a "Symbols" tag for the objects
2## without a symbol table.
3
4# RUN: yaml2obj --docnum=1 %s -o %t1
5# RUN: obj2yaml %t1 | FileCheck %s --check-prefix=NOSYMTAB
6
7# NOSYMTAB:      --- !ELF
8# NOSYMTAB-NEXT:  FileHeader:
9# NOSYMTAB-NEXT:    Class: ELFCLASS64
10# NOSYMTAB-NEXT:    Data:  ELFDATA2LSB
11# NOSYMTAB-NEXT:    Type:  ET_DYN
12# NOSYMTAB-NEXT: ...
13
14--- !ELF
15FileHeader:
16  Class: ELFCLASS64
17  Data:  ELFDATA2LSB
18  Type:  ET_DYN
19
20## Check that obj2yaml creates a "Symbols" tag for the objects
21## that have a symbol table.
22
23# RUN: yaml2obj --docnum=2 %s -o %t2
24# RUN: obj2yaml %t2 | FileCheck %s --check-prefix=SYMTAB
25
26# SYMTAB:      --- !ELF
27# SYMTAB-NEXT:  FileHeader:
28# SYMTAB-NEXT:   Class: ELFCLASS64
29# SYMTAB-NEXT:   Data:  ELFDATA2LSB
30# SYMTAB-NEXT:   Type:  ET_DYN
31# SYMTAB-NEXT:  Symbols: []
32# SYMTAB-NEXT: ...
33
34--- !ELF
35FileHeader:
36  Class: ELFCLASS64
37  Data:  ELFDATA2LSB
38  Type:  ET_DYN
39Symbols: []
40
41## A symbol table without the null entry is non-conforming.
42## Check we don't print "Symbols" and "DynamicSymbols" keys in this case.
43
44# RUN: yaml2obj --docnum=3 %s -o %t3
45# RUN: obj2yaml %t3 | FileCheck %s --check-prefix=EMPTY
46
47# EMPTY:      Sections:
48# EMPTY-NEXT:   - Name:  .symtab
49# EMPTY-NEXT:     Type:  SHT_SYMTAB
50# EMPTY-NEXT:     Link:  .strtab
51# EMPTY-NEXT:     Size:  0x0
52# EMPTY-NEXT:   - Name:  .dynsym
53# EMPTY-NEXT:     Type:  SHT_DYNSYM
54# EMPTY-NEXT:     Flags: [ SHF_ALLOC ]
55# EMPTY-NEXT:     Size:  0x0
56# EMPTY-NEXT: ...
57
58--- !ELF
59FileHeader:
60  Class: ELFCLASS64
61  Data:  ELFDATA2LSB
62  Type:  ET_DYN
63Sections:
64  - Name: .symtab
65    Type: SHT_SYMTAB
66    Size: 0
67  - Name: .dynsym
68    Type: SHT_DYNSYM
69    Size: 0
70