llvm/test/Object/archive-extract.test
Rafael Espindola 7a6e3434ba Add support for reading members out of thin archives.
For now the Archive owns the buffers of the thin archive members.
This makes for a simple API, but all the buffers are destructed
only when the archive is destructed. This should be fine since we
close the files after mmap so we should not hit an open file
limit.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@242215 91177308-0d34-0410-b5e6-96231b3b80d8
2015-07-14 22:18:43 +00:00

57 lines
2.4 KiB
Plaintext

; This test just makes sure that llvm-ar can extract bytecode members
; from various style archives.
; RUN: cd %T
; RUN: rm -f very_long_bytecode_file_name.bc
; RUN: llvm-ar p %p/Inputs/GNU.a very_long_bytecode_file_name.bc | \
; RUN: cmp -s %p/Inputs/very_long_bytecode_file_name.bc -
; RUN: llvm-ar x %p/Inputs/GNU.a very_long_bytecode_file_name.bc
; RUN: cmp -s %p/Inputs/very_long_bytecode_file_name.bc \
; RUN: very_long_bytecode_file_name.bc
; RUN: rm -f very_long_bytecode_file_name.bc
; RUN: llvm-ar p %p/Inputs/MacOSX.a very_long_bytecode_file_name.bc | \
; RUN: cmp -s %p/Inputs/very_long_bytecode_file_name.bc -
; RUN: llvm-ar x %p/Inputs/MacOSX.a very_long_bytecode_file_name.bc
; RUN: cmp -s %p/Inputs/very_long_bytecode_file_name.bc \
; RUN: very_long_bytecode_file_name.bc
; RUN: rm -f very_long_bytecode_file_name.bc
; RUN: llvm-ar p %p/Inputs/SVR4.a very_long_bytecode_file_name.bc | \
; RUN: cmp -s %p/Inputs/very_long_bytecode_file_name.bc -
; RUN: llvm-ar x %p/Inputs/SVR4.a very_long_bytecode_file_name.bc
; RUN: cmp -s %p/Inputs/very_long_bytecode_file_name.bc \
; RUN: very_long_bytecode_file_name.bc
; RUN: rm -f very_long_bytecode_file_name.bc
; RUN: llvm-ar p %p/Inputs/xpg4.a very_long_bytecode_file_name.bc |\
; RUN: cmp -s %p/Inputs/very_long_bytecode_file_name.bc -
; RUN: llvm-ar x %p/Inputs/xpg4.a very_long_bytecode_file_name.bc
; RUN: cmp -s %p/Inputs/very_long_bytecode_file_name.bc \
; RUN: very_long_bytecode_file_name.bc
; Test that the 'o' option is working by extracting a file, putting it in o
; new archive and checking that date.
; RUN: rm -f very_long_bytecode_file_name.bc
; RUN: llvm-ar xo %p/Inputs/GNU.a very_long_bytecode_file_name.bc
; RUN: rm -f %t.a
; RUN: llvm-ar rcU %t.a very_long_bytecode_file_name.bc
; RUN: env TZ=GMT llvm-ar tv %t.a | FileCheck %s
CHECK: 1465 2004-11-19 03:01:31.000000000 very_long_bytecode_file_name.bc
RUN: not llvm-ar x %p/Inputs/GNU.a foo.o 2>&1 | FileCheck --check-prefix=NOTFOUND %s
NOTFOUND: foo.o was not found
RUN: not llvm-ar x %p/Inputs/thin.a foo.o 2>&1 | FileCheck %s --check-prefix=THINEXTRACT
THINEXTRACT: extracting from a thin archive is not supported
RUN: llvm-ar p %p/Inputs/thin.a evenlen | FileCheck %s --check-prefix=EVENLEN
EVENLEN: evenlen
RUN: not llvm-ar p %p/Inputs/thin-path.a t/test2.o | FileCheck %s --check-prefix=MISSING
MISSING: No such file or directory.