archive-long-filenames-no-null-terminator.test
10.2 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
Check that extracting long filenames works correctly even when there is no
null terminator after the filename. Depending on whether the OS provides a
readable page containing a null byte after the file mapping, this would crash
before r331746 (on Windows it crashed consistently).
The input file was created like:
$ touch 012345678901234567890123456789012345678901234567890123456789012-{1..124}.o \
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.o
$ llvm-ar cru file.a 012345678901234567890123456789012345678901234567890123456789012-{1..124}.o \
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.o
RUN: llvm-ar t %p/Inputs/archive-long-filenames-no-null-terminator.a | FileCheck %s
CHECK: 012345678901234567890123456789012345678901234567890123456789012-1.o
CHECK: 012345678901234567890123456789012345678901234567890123456789012-2.o
CHECK: 012345678901234567890123456789012345678901234567890123456789012-3.o
CHECK: 012345678901234567890123456789012345678901234567890123456789012-4.o
CHECK: 012345678901234567890123456789012345678901234567890123456789012-5.o
CHECK: 012345678901234567890123456789012345678901234567890123456789012-6.o
CHECK: 012345678901234567890123456789012345678901234567890123456789012-7.o
CHECK: 012345678901234567890123456789012345678901234567890123456789012-8.o
CHECK: 012345678901234567890123456789012345678901234567890123456789012-9.o
CHECK: 012345678901234567890123456789012345678901234567890123456789012-10.o
CHECK: 012345678901234567890123456789012345678901234567890123456789012-11.o
CHECK: 012345678901234567890123456789012345678901234567890123456789012-12.o
CHECK: 012345678901234567890123456789012345678901234567890123456789012-13.o
CHECK: 012345678901234567890123456789012345678901234567890123456789012-14.o
CHECK: 012345678901234567890123456789012345678901234567890123456789012-15.o
CHECK: 012345678901234567890123456789012345678901234567890123456789012-16.o
CHECK: 012345678901234567890123456789012345678901234567890123456789012-17.o
CHECK: 012345678901234567890123456789012345678901234567890123456789012-18.o
CHECK: 012345678901234567890123456789012345678901234567890123456789012-19.o
CHECK: 012345678901234567890123456789012345678901234567890123456789012-20.o
CHECK: 012345678901234567890123456789012345678901234567890123456789012-21.o
CHECK: 012345678901234567890123456789012345678901234567890123456789012-22.o
CHECK: 012345678901234567890123456789012345678901234567890123456789012-23.o
CHECK: 012345678901234567890123456789012345678901234567890123456789012-24.o
CHECK: 012345678901234567890123456789012345678901234567890123456789012-25.o
CHECK: 012345678901234567890123456789012345678901234567890123456789012-26.o
CHECK: 012345678901234567890123456789012345678901234567890123456789012-27.o
CHECK: 012345678901234567890123456789012345678901234567890123456789012-28.o
CHECK: 012345678901234567890123456789012345678901234567890123456789012-29.o
CHECK: 012345678901234567890123456789012345678901234567890123456789012-30.o
CHECK: 012345678901234567890123456789012345678901234567890123456789012-31.o
CHECK: 012345678901234567890123456789012345678901234567890123456789012-32.o
CHECK: 012345678901234567890123456789012345678901234567890123456789012-33.o
CHECK: 012345678901234567890123456789012345678901234567890123456789012-34.o
CHECK: 012345678901234567890123456789012345678901234567890123456789012-35.o
CHECK: 012345678901234567890123456789012345678901234567890123456789012-36.o
CHECK: 012345678901234567890123456789012345678901234567890123456789012-37.o
CHECK: 012345678901234567890123456789012345678901234567890123456789012-38.o
CHECK: 012345678901234567890123456789012345678901234567890123456789012-39.o
CHECK: 012345678901234567890123456789012345678901234567890123456789012-40.o
CHECK: 012345678901234567890123456789012345678901234567890123456789012-41.o
CHECK: 012345678901234567890123456789012345678901234567890123456789012-42.o
CHECK: 012345678901234567890123456789012345678901234567890123456789012-43.o
CHECK: 012345678901234567890123456789012345678901234567890123456789012-44.o
CHECK: 012345678901234567890123456789012345678901234567890123456789012-45.o
CHECK: 012345678901234567890123456789012345678901234567890123456789012-46.o
CHECK: 012345678901234567890123456789012345678901234567890123456789012-47.o
CHECK: 012345678901234567890123456789012345678901234567890123456789012-48.o
CHECK: 012345678901234567890123456789012345678901234567890123456789012-49.o
CHECK: 012345678901234567890123456789012345678901234567890123456789012-50.o
CHECK: 012345678901234567890123456789012345678901234567890123456789012-51.o
CHECK: 012345678901234567890123456789012345678901234567890123456789012-52.o
CHECK: 012345678901234567890123456789012345678901234567890123456789012-53.o
CHECK: 012345678901234567890123456789012345678901234567890123456789012-54.o
CHECK: 012345678901234567890123456789012345678901234567890123456789012-55.o
CHECK: 012345678901234567890123456789012345678901234567890123456789012-56.o
CHECK: 012345678901234567890123456789012345678901234567890123456789012-57.o
CHECK: 012345678901234567890123456789012345678901234567890123456789012-58.o
CHECK: 012345678901234567890123456789012345678901234567890123456789012-59.o
CHECK: 012345678901234567890123456789012345678901234567890123456789012-60.o
CHECK: 012345678901234567890123456789012345678901234567890123456789012-61.o
CHECK: 012345678901234567890123456789012345678901234567890123456789012-62.o
CHECK: 012345678901234567890123456789012345678901234567890123456789012-63.o
CHECK: 012345678901234567890123456789012345678901234567890123456789012-64.o
CHECK: 012345678901234567890123456789012345678901234567890123456789012-65.o
CHECK: 012345678901234567890123456789012345678901234567890123456789012-66.o
CHECK: 012345678901234567890123456789012345678901234567890123456789012-67.o
CHECK: 012345678901234567890123456789012345678901234567890123456789012-68.o
CHECK: 012345678901234567890123456789012345678901234567890123456789012-69.o
CHECK: 012345678901234567890123456789012345678901234567890123456789012-70.o
CHECK: 012345678901234567890123456789012345678901234567890123456789012-71.o
CHECK: 012345678901234567890123456789012345678901234567890123456789012-72.o
CHECK: 012345678901234567890123456789012345678901234567890123456789012-73.o
CHECK: 012345678901234567890123456789012345678901234567890123456789012-74.o
CHECK: 012345678901234567890123456789012345678901234567890123456789012-75.o
CHECK: 012345678901234567890123456789012345678901234567890123456789012-76.o
CHECK: 012345678901234567890123456789012345678901234567890123456789012-77.o
CHECK: 012345678901234567890123456789012345678901234567890123456789012-78.o
CHECK: 012345678901234567890123456789012345678901234567890123456789012-79.o
CHECK: 012345678901234567890123456789012345678901234567890123456789012-80.o
CHECK: 012345678901234567890123456789012345678901234567890123456789012-81.o
CHECK: 012345678901234567890123456789012345678901234567890123456789012-82.o
CHECK: 012345678901234567890123456789012345678901234567890123456789012-83.o
CHECK: 012345678901234567890123456789012345678901234567890123456789012-84.o
CHECK: 012345678901234567890123456789012345678901234567890123456789012-85.o
CHECK: 012345678901234567890123456789012345678901234567890123456789012-86.o
CHECK: 012345678901234567890123456789012345678901234567890123456789012-87.o
CHECK: 012345678901234567890123456789012345678901234567890123456789012-88.o
CHECK: 012345678901234567890123456789012345678901234567890123456789012-89.o
CHECK: 012345678901234567890123456789012345678901234567890123456789012-90.o
CHECK: 012345678901234567890123456789012345678901234567890123456789012-91.o
CHECK: 012345678901234567890123456789012345678901234567890123456789012-92.o
CHECK: 012345678901234567890123456789012345678901234567890123456789012-93.o
CHECK: 012345678901234567890123456789012345678901234567890123456789012-94.o
CHECK: 012345678901234567890123456789012345678901234567890123456789012-95.o
CHECK: 012345678901234567890123456789012345678901234567890123456789012-96.o
CHECK: 012345678901234567890123456789012345678901234567890123456789012-97.o
CHECK: 012345678901234567890123456789012345678901234567890123456789012-98.o
CHECK: 012345678901234567890123456789012345678901234567890123456789012-99.o
CHECK: 012345678901234567890123456789012345678901234567890123456789012-100.o
CHECK: 012345678901234567890123456789012345678901234567890123456789012-101.o
CHECK: 012345678901234567890123456789012345678901234567890123456789012-102.o
CHECK: 012345678901234567890123456789012345678901234567890123456789012-103.o
CHECK: 012345678901234567890123456789012345678901234567890123456789012-104.o
CHECK: 012345678901234567890123456789012345678901234567890123456789012-105.o
CHECK: 012345678901234567890123456789012345678901234567890123456789012-106.o
CHECK: 012345678901234567890123456789012345678901234567890123456789012-107.o
CHECK: 012345678901234567890123456789012345678901234567890123456789012-108.o
CHECK: 012345678901234567890123456789012345678901234567890123456789012-109.o
CHECK: 012345678901234567890123456789012345678901234567890123456789012-110.o
CHECK: 012345678901234567890123456789012345678901234567890123456789012-111.o
CHECK: 012345678901234567890123456789012345678901234567890123456789012-112.o
CHECK: 012345678901234567890123456789012345678901234567890123456789012-113.o
CHECK: 012345678901234567890123456789012345678901234567890123456789012-114.o
CHECK: 012345678901234567890123456789012345678901234567890123456789012-115.o
CHECK: 012345678901234567890123456789012345678901234567890123456789012-116.o
CHECK: 012345678901234567890123456789012345678901234567890123456789012-117.o
CHECK: 012345678901234567890123456789012345678901234567890123456789012-118.o
CHECK: 012345678901234567890123456789012345678901234567890123456789012-119.o
CHECK: 012345678901234567890123456789012345678901234567890123456789012-120.o
CHECK: 012345678901234567890123456789012345678901234567890123456789012-121.o
CHECK: 012345678901234567890123456789012345678901234567890123456789012-122.o
CHECK: 012345678901234567890123456789012345678901234567890123456789012-123.o
CHECK: 012345678901234567890123456789012345678901234567890123456789012-124.o
CHECK: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.o