Make test more lenient for custom clang version strings
[llvm-project.git] / llvm / test / tools / obj2yaml / ELF / verdef-section.yaml
blobf082e897a6636c9588f2629754ee011af28db1c3
1 ## Check how we dump SHT_GNU_verdef sections.
2 ## Check we don't dump the `Info` field when its value is equal
3 ## to the number of version definitions.
5 # RUN: yaml2obj %s -o %t
6 # RUN: obj2yaml %t | FileCheck %s
8 # CHECK:       - Name:         .gnu.version_d
9 # CHECK-NEXT:    Type:         SHT_GNU_verdef
10 # CHECK-NEXT:    Flags:        [ SHF_ALLOC ]
11 # CHECK-NEXT:    Address:      0x230
12 # CHECK-NEXT:    Link:         .dynstr
13 # CHECK-NEXT:    AddressAlign: 0x4
14 # INFO-NEXT:     Info:         0x4
15 # CHECK-NEXT:    Entries:
16 # CHECK-NEXT:      - Names:
17 # CHECK-NEXT:          - VERSION_0
18 # CHECK-NEXT:      - Flags:      2
19 # CHECK-NEXT:        VersionNdx: 2
20 # CHECK-NEXT:        Hash:       108387921
21 # CHECK-NEXT:        Names:
22 # CHECK-NEXT:          - VERSION_1
23 # CHECK-NEXT:      - Flags:      3
24 # CHECK-NEXT:        VersionNdx: 3
25 # CHECK-NEXT:        Hash:       108387922
26 # CHECK-NEXT:        Names:
27 # CHECK-NEXT:          - VERSION_2
28 # CHECK-NEXT:          - VERSION_3
29 # CHECK-NEXT:          - VERSION_4
30 # CHECK-NEXT:  - Name:
32 --- !ELF
33 FileHeader:
34   Class: ELFCLASS64
35   Data:  ELFDATA2LSB
36   Type:  ET_DYN
37 Sections:
38   - Name:            .gnu.version_d
39     Type:            SHT_GNU_verdef
40     Flags:           [ SHF_ALLOC ]
41     Address:         0x230
42     AddressAlign:    0x4
43     Info:            [[INFO=<none>]]
44     Entries:
45 ## An entry that has all fields explicitly set to their default values.
46 ## Used to check that we don't dump them.
47       - Version:    [[VERSION=1]]
48         Flags:      0
49         VersionNdx: 0
50         Hash:       0
51         VDAux:      20
52         Names:
53           - VERSION_0
54 ## An entry with arbitrary values.
55       - Flags:      2
56         VersionNdx: 2
57         Hash:       108387921
58         VDAux:      [[VDAUX=20]]
59         Names:
60           - VERSION_1
61 ## Another entry with arbitrary values and version predecessors.
62       - Flags:      3
63         VersionNdx: 3
64         Hash:       108387922
65         Names:
66           - VERSION_2
67           - VERSION_3
68           - VERSION_4
69 ## Needed to emit the .dynstr section.
70 DynamicSymbols: []
72 ## Check we dump the `Info` field when its value is not equal
73 ## to the number of version definitions.
75 # RUN: yaml2obj %s -DINFO=0x4 -o %t.info
76 # RUN: obj2yaml %t.info | FileCheck %s --check-prefixes=CHECK,INFO
78 ## Document that we are not able to dump a version definition which
79 ## has a version revision (vd_version) that is not equal to 1.
81 # RUN: yaml2obj %s -DVERSION=2 -o %t.version
82 # RUN: not obj2yaml %t.version 2>&1 | \
83 # RUN:   FileCheck %s -DFILE=%t.version --check-prefix=VERSION-ERR
85 # VERSION-ERR: Error reading file: [[FILE]]: invalid SHT_GNU_verdef section version: 2
87 # RUN: yaml2obj %s -DVDAUX=100 -o %t.vdaux
88 # RUN: not obj2yaml %t.vdaux 2>&1 | \
89 # RUN:   FileCheck %s -DFILE=%t.vdaux --check-prefix=VDAUX-ERR
91 # VDAUX-ERR: Error reading file: [[FILE]]: corrupted section: vd_aux value 100 in section verdef points past end of the section