Test the exact archive format. In particular, test which file names use the string table or not. RUN: mkdir -p %t RUN: cd %t RUN: echo -n bar. > 0123456789abcde RUN: echo -n zed. > 0123456789abcdef RUN: mkdir -p foo RUN: echo -n bar2 > foo/0123456789abcde RUN: echo -n zed2 > foo/0123456789abcdef RUN: rm -f %t.a RUN: llvm-ar --format=gnu rc %t.a 0123456789abcde 0123456789abcdef foo/0123456789abcde foo/0123456789abcdef RUN: cat %t.a | FileCheck -strict-whitespace %s CHECK: ! CHECK-NEXT: // 36 ` CHECK-NEXT: 0123456789abcdef/ CHECK-NEXT: 0123456789abcdef/ CHECK-NEXT: 0123456789abcde/0 0 0 644 4 ` CHECK-NEXT: bar. CHECK-SAME: /0 0 0 0 644 4 ` CHECK-NEXT: zed. CHECK-SAME: 0123456789abcde/0 0 0 644 4 ` CHECK-NEXT: bar2 CHECK-SAME: /18 0 0 0 644 4 ` CHECK-NEXT: zed2 RUN: rm -f %t.a RUN: llvm-ar --format=bsd rc %t.a 0123456789abcde 0123456789abcdef RUN: cat %t.a | FileCheck -strict-whitespace --check-prefix=BSD %s BSD: ! BSD-NEXT: #1/20 0 0 0 644 24 ` BSD-NEXT: 0123456789abcde{{.....}}bar. BSD-SAME: #1/16 0 0 0 644 20 ` BSD-NEXT: 0123456789abcdefzed. RUN: rm -f test.a RUN: llvm-ar --format=gnu rcT test.a 0123456789abcde 0123456789abcdef RUN: cat test.a | FileCheck -strict-whitespace --check-prefix=THIN %s THIN: ! THIN-NEXT: // 36 ` THIN-NEXT: 0123456789abcde/ THIN-NEXT: 0123456789abcdef/{{$}} THIN: {{^$}} THIN: /0 0 0 0 644 4 ` THIN-NEXT: /17 0 0 0 644 4 ` RUN: mkdir -p bar RUN: rm -f bar/test.a RUN: llvm-ar --format=gnu rcT bar/test.a 0123456789abcde 0123456789abcdef foo/0123456789abcde foo/0123456789abcdef RUN: cat bar/test.a | FileCheck -strict-whitespace --check-prefix=THIN-PATH %s THIN-PATH: ! THIN-PATH-NEXT: // 90 ` THIN-PATH-NEXT: ..{{/|\\}}0123456789abcde/ THIN-PATH-NEXT: ..{{/|\\}}0123456789abcdef/ THIN-PATH-NEXT: ..{{/|\\}}foo{{/|\\}}0123456789abcde/ THIN-PATH-NEXT: ..{{/|\\}}foo{{/|\\}}0123456789abcdef/ THIN-PATH-NEXT: /0 0 0 0 644 4 ` THIN-PATH-NEXT: /20 0 0 0 644 4 ` THIN-PATH-NEXT: /41 0 0 0 644 4 ` THIN-PATH-NEXT: /65 0 0 0 644 4 `