| 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 |