xref: /llvm-project/llvm/test/tools/llvm-nm/ecsymbols.test (revision 85a2c50ec4979b87267e4f2068f2921beb0b98f2)
1# Check that llvm-lib doesn't list the members of an archive which contains the
2# special member /<ECSYMBOLS>/.
3
4# RUN: yaml2obj --docnum=1 %s -o %t.lib
5# RUN: llvm-nm --print-armap %t.lib 2>&1 | FileCheck --check-prefix=NM1 %s
6# NM1: truncated or malformed archive (invalid EC symbols size (3))
7
8--- !Arch
9Members:
10  - Name:            '/'
11    Size:            '0'
12  - Name:            '/'
13    Size:            '0'
14  - Name:            '/<ECSYMBOLS>/'
15    Size:            '3'
16    Content:         010203
17    PaddingByte:     0
18...
19
20# RUN: yaml2obj --docnum=2 %s -o %t.lib
21# RUN: llvm-nm --print-armap %t.lib 2>&1 | FileCheck --check-prefix=NM2 %s
22# NM2: truncated or malformed archive (invalid EC symbols size. Size was 7, but expected 8)
23
24--- !Arch
25Members:
26  - Name:            '/'
27    Size:            '0'
28  - Name:            '/'
29    Size:            '12'
30    Content:         010000001000000000000000
31  - Name:            '/<ECSYMBOLS>/'
32    Size:            '7'
33    Content:         02000000010001
34    PaddingByte:     0
35...
36
37# RUN: yaml2obj --docnum=3 %s -o %t.lib
38# RUN: llvm-nm --print-armap %t.lib 2>&1 | FileCheck --check-prefix=NM3 %s
39# NM3: truncated or malformed archive (invalid EC symbol index 2 is larger than member count 1)
40
41--- !Arch
42Members:
43  - Name:            '/'
44    Size:            '0'
45  - Name:            '/'
46    Size:            '12'
47    Content:         010000001000000000000000
48  - Name:            '/<ECSYMBOLS>/'
49    Size:            '8'
50    Content:         0100000002006100
51  - Name:            'a.obj'
52    Size:            '0'
53...
54
55
56# RUN: yaml2obj --docnum=4 %s -o %t.lib
57# RUN: llvm-nm --print-armap %t.lib 2>&1 | FileCheck --check-prefix=NM4 %s
58# NM4: truncated or malformed archive (invalid EC symbol index 0)
59
60--- !Arch
61Members:
62  - Name:            '/'
63    Size:            '0'
64  - Name:            '/'
65    Size:            '12'
66    Content:         010000001000000000000000
67  - Name:            '/<ECSYMBOLS>/'
68    Size:            '8'
69    Content:         0100000000006100
70  - Name:            'a.obj'
71    Size:            '0'
72...
73
74# RUN: yaml2obj --docnum=5 %s -o %t.lib
75# RUN: llvm-nm --print-armap %t.lib 2>&1 | FileCheck --check-prefix=NM5 %s
76# NM5: truncated or malformed archive (malformed EC symbol names: not null-terminated)
77
78--- !Arch
79Members:
80  - Name:            '/'
81    Size:            '0'
82  - Name:            '/'
83    Size:            '12'
84    Content:         010000001000000000000000
85  - Name:            '/<ECSYMBOLS>/'
86    Size:            '8'
87    Content:         0100000001006161
88  - Name:            'a.obj'
89    Size:            '0'
90...
91