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