2013-07-10 23:47:16 +02:00
|
|
|
; This test just makes sure that llvm-ar can extract bytecode members
|
|
|
|
; from various style archives.
|
|
|
|
|
2017-08-20 20:18:44 +02:00
|
|
|
; RUN: rm -rf %t && mkdir -p %t && cd %t
|
2013-07-11 15:13:09 +02:00
|
|
|
|
|
|
|
; RUN: rm -f very_long_bytecode_file_name.bc
|
2013-07-10 23:47:16 +02:00
|
|
|
; 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 -
|
2013-07-11 15:13:09 +02:00
|
|
|
; 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
|
2013-07-10 23:47:16 +02:00
|
|
|
|
2013-07-11 15:13:09 +02:00
|
|
|
; RUN: rm -f very_long_bytecode_file_name.bc
|
2013-07-10 23:47:16 +02:00
|
|
|
; 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 -
|
2013-07-11 15:13:09 +02:00
|
|
|
; 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
|
2013-07-10 23:47:16 +02:00
|
|
|
|
2013-07-11 15:13:09 +02:00
|
|
|
; RUN: rm -f very_long_bytecode_file_name.bc
|
2013-07-10 23:47:16 +02:00
|
|
|
; 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 -
|
2013-07-11 15:13:09 +02:00
|
|
|
; 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
|
2013-07-10 23:47:16 +02:00
|
|
|
|
2013-07-11 15:13:09 +02:00
|
|
|
; RUN: rm -f very_long_bytecode_file_name.bc
|
2013-07-10 23:47:16 +02:00
|
|
|
; 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 -
|
2013-07-11 15:13:09 +02:00
|
|
|
; 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
|
2013-07-12 20:51:25 +02:00
|
|
|
|
|
|
|
|
|
|
|
; 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
|
2014-01-16 08:08:22 +01:00
|
|
|
; RUN: rm -f %t.a
|
2019-05-01 17:31:15 +02:00
|
|
|
; RUN: llvm-ar --format=gnu rcU %t.a very_long_bytecode_file_name.bc
|
2017-02-09 21:06:30 +01:00
|
|
|
; RUN: env TZ=GMT llvm-ar tv %t.a | FileCheck %s -check-prefix CHECK-GNU
|
2013-07-12 20:51:25 +02:00
|
|
|
|
[llvm-ar] Use POSIX-specified timestamps for 'tv'.
Summary:
The POSIX spec says:
```
If the −t option is used with the −v option, the standard output format shall be:
"%s %u/%u %u %s %d %d:%d %d %s\n", <member mode>, <user ID>,
<group ID>, <number of bytes in member>,
<abbreviated month>, <day-of-month>, <hour>,
<minute>, <year>, <file>
where:
...
<abbreviated month>
Equivalent to the format of the %b conversion specification format in date.
<day-of-month>
Equivalent to the format of the %e conversion specification format in date.
<hour> Equivalent to the format of the %H conversion specification format in date.
<minute> Equivalent to the format of the %M conversion specification format in date.
<year> Equivalent to the format of the %Y conversion specification format in date.
```
This actually used to be the format printed by llvm-ar. It was apparently accidentally changed (see r207385 followed by comments in r207387). This makes it conform to GNU ar for easier replacement.
Reviewers: MaskRay
Subscribers: llvm-commits
Differential Revision: https://reviews.llvm.org/D52940
llvm-svn: 343901
2018-10-06 01:25:39 +02:00
|
|
|
CHECK-GNU: 1465 Nov 19 03:01 2004 very_long_bytecode_file_name.bc
|
2015-07-14 18:02:40 +02:00
|
|
|
|
2017-02-09 21:06:30 +01:00
|
|
|
; RUN: rm -f %t.a
|
2019-05-01 17:31:15 +02:00
|
|
|
; RUN: llvm-ar --format=darwin rcU %t.a very_long_bytecode_file_name.bc
|
2017-02-21 21:40:54 +01:00
|
|
|
; RUN: env TZ=GMT llvm-ar tv %t.a | FileCheck %s -check-prefix CHECK-DARWIN
|
2017-02-09 21:06:30 +01:00
|
|
|
|
[llvm-ar] Use POSIX-specified timestamps for 'tv'.
Summary:
The POSIX spec says:
```
If the −t option is used with the −v option, the standard output format shall be:
"%s %u/%u %u %s %d %d:%d %d %s\n", <member mode>, <user ID>,
<group ID>, <number of bytes in member>,
<abbreviated month>, <day-of-month>, <hour>,
<minute>, <year>, <file>
where:
...
<abbreviated month>
Equivalent to the format of the %b conversion specification format in date.
<day-of-month>
Equivalent to the format of the %e conversion specification format in date.
<hour> Equivalent to the format of the %H conversion specification format in date.
<minute> Equivalent to the format of the %M conversion specification format in date.
<year> Equivalent to the format of the %Y conversion specification format in date.
```
This actually used to be the format printed by llvm-ar. It was apparently accidentally changed (see r207385 followed by comments in r207387). This makes it conform to GNU ar for easier replacement.
Reviewers: MaskRay
Subscribers: llvm-commits
Differential Revision: https://reviews.llvm.org/D52940
llvm-svn: 343901
2018-10-06 01:25:39 +02:00
|
|
|
CHECK-DARWIN: 1472 Nov 19 03:01 2004 very_long_bytecode_file_name.bc
|
2015-07-14 18:02:40 +02:00
|
|
|
|
|
|
|
RUN: not llvm-ar x %p/Inputs/GNU.a foo.o 2>&1 | FileCheck --check-prefix=NOTFOUND %s
|
2019-01-15 23:03:08 +01:00
|
|
|
NOTFOUND: error: 'foo.o' was not found
|
2015-07-14 18:55:13 +02:00
|
|
|
|
|
|
|
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
|
2015-07-15 00:18:43 +02:00
|
|
|
|
|
|
|
RUN: llvm-ar p %p/Inputs/thin.a evenlen | FileCheck %s --check-prefix=EVENLEN
|
|
|
|
EVENLEN: evenlen
|
|
|
|
|
2021-01-29 13:15:50 +01:00
|
|
|
RUN: not llvm-ar p %p/Inputs/thin-path.a t/test2.o 2>&1 | FileCheck %s --DMSG=%errc_ENOENT --check-prefix=MISSING
|
|
|
|
MISSING: error: [[MSG]]
|