llvm/llvm/test/Object/archive-toc.test

RUN: cd %p

Test reading an archive created by gnu ar
RUN: env TZ=GMT llvm-ar tv Inputs/GNU.a | FileCheck %s --check-prefix=GNU -strict-whitespace

GNU:      rw-r--r-- 500/500      8 Nov 19 02:57 2004 evenlen
GNU-NEXT: rw-r--r-- 500/500      7 Nov 19 02:57 2004 oddlen
GNU-NEXT: rwxr-xr-x 500/500   1465 Nov 19 03:01 2004 very_long_bytecode_file_name.bc
GNU-NEXT: rw-r--r-- 500/500   2280 Nov 19 03:04 2004 IsNAN.o


Test reading an archive createdy by Mac OS X ar
RUN: env TZ=GMT llvm-ar tv Inputs/MacOSX.a | FileCheck %s --check-prefix=OSX -strict-whitespace

OSX-NOT: __.SYMDEF
OSX:      rw-r--r-- 501/501      8 Nov 19 02:57 2004 evenlen
OSX-NEXT: rw-r--r-- 501/501      8 Nov 19 02:57 2004 oddlen
OSX-NEXT: rw-r--r-- 502/502   1465 Feb  4 06:59 2010 very_long_bytecode_file_name.bc
OSX-NEXT: rw-r--r-- 501/501   2280 Nov 19 04:32 2004 IsNAN.o

Test reading an archive created on Solaris by /usr/ccs/bin/ar
RUN: env TZ=GMT llvm-ar tv Inputs/SVR4.a | FileCheck %s -strict-whitespace

Test reading an archive created on Solaris by /usr/xpg4/bin/ar
RUN: env TZ=GMT llvm-ar tv Inputs/xpg4.a | FileCheck %s -strict-whitespace

CHECK:      rw-r--r-- 1002/102      8 Nov 19 03:24 2004 evenlen
CHECK-NEXT: rw-r--r-- 1002/102      7 Nov 19 03:24 2004 oddlen
CHECK-NEXT: rwxr-xr-x 1002/102   1465 Nov 19 03:24 2004 very_long_bytecode_file_name.bc
CHECK-NEXT: rw-r--r-- 1002/102   2280 Nov 19 03:24 2004 IsNAN.o

Test reading a thin archive created by gnu ar
RUN: env TZ=GMT llvm-ar tv Inputs/thin.a | FileCheck %s --check-prefix=THIN -strict-whitespace

THIN:      rw-r--r-- 1000/1000      8 Dec 16 00:56 2014 Inputs/evenlen
THIN-NEXT: rw-r--r-- 1000/1000      7 Dec 16 00:56 2014 Inputs/oddlen
THIN-NEXT: rwxr-xr-x 1000/1000   1465 Dec 16 00:56 2014 Inputs/very_long_bytecode_file_name.bc
THIN-NEXT: rw-r--r-- 1000/1000   2280 Dec 16 00:56 2014 Inputs/IsNAN.o

Test reading an archive with just a symbol table. We use to reject them.
RUN: llvm-ar tv Inputs/symtab-only.a | FileCheck --allow-empty --check-prefix=EMPTY %s
EMPTY-NOT: {{.}}

Test reading a thin archive with directory names.
RUN: env TZ=GMT llvm-ar tv Inputs/thin-path.a | FileCheck %s --check-prefix=THINPATH -strict-whitespace

THINPATH:      rw-r--r-- 0/0   1224 Jan  1 00:00 1970 Inputs/test.o
THINPATH-NEXT: rw-r--r-- 0/0   1224 Jan  1 00:00 1970 Inputs/t/test2.o

RUN: llvm-ar tO Inputs/GNU.a | FileCheck %s --check-prefix=GNU-O --strict-whitespace

GNU-O:      {{^}}evenlen 0x10c
GNU-O-NEXT: {{^}}oddlen 0x150
GNU-O-NEXT: {{^}}very_long_bytecode_file_name.bc 0x194
GNU-O-NEXT: {{^}}IsNAN.o 0x78a

RUN: env TZ=GMT llvm-ar tvO Inputs/GNU.a | FileCheck %s --check-prefix=GNU-VO --strict-whitespace

GNU-VO:      rw-r--r-- 500/500      8 Nov 19 02:57 2004 evenlen 0x10c
GNU-VO-NEXT: rw-r--r-- 500/500      7 Nov 19 02:57 2004 oddlen 0x150
GNU-VO-NEXT: rwxr-xr-x 500/500   1465 Nov 19 03:01 2004 very_long_bytecode_file_name.bc 0x194
GNU-VO-NEXT: rw-r--r-- 500/500   2280 Nov 19 03:04 2004 IsNAN.o 0x78a