[llvm] Remove uses of %T in tests (#151621)

This patch removes all uses of %T from within LLVM tests. %T has been
deprecated for about seven years and use is not advised given it is not
unique per test and can thus lead to races. The goal of this is to
eventually remove support for %T from lit.
This commit is contained in:
Aiden Grossman 2025-08-01 08:24:56 -07:00 committed by GitHub
parent 73ce0aca72
commit 6ba25c1a56
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
13 changed files with 121 additions and 116 deletions

View File

@ -1,15 +1,15 @@
RUN: yaml2obj %p/Inputs/obj-hashes-1.yaml -o %T/obj-hashes-1.obj RUN: yaml2obj %p/Inputs/obj-hashes-1.yaml -o %t.obj-hashes-1.obj
RUN: yaml2obj %p/Inputs/obj-hashes-2.yaml -o %T/obj-hashes-2.obj RUN: yaml2obj %p/Inputs/obj-hashes-2.yaml -o %t.obj-hashes-2.obj
RUN: echo obj-hashes-1 > %T/hashes-combined.out RUN: echo obj-hashes-1 > %t.hashes-combined.out
RUN: llvm-pdbutil dump -type-extras %T/obj-hashes-1.obj >> %T/hashes-combined.out RUN: llvm-pdbutil dump -type-extras %t.obj-hashes-1.obj >> %t.hashes-combined.out
RUN: echo obj-hashes-2 >> %T/hashes-combined.out RUN: echo obj-hashes-2 >> %t.hashes-combined.out
RUN: llvm-pdbutil dump -type-extras %T/obj-hashes-2.obj >> %T/hashes-combined.out RUN: llvm-pdbutil dump -type-extras %t.obj-hashes-2.obj >> %t.hashes-combined.out
RUN: cat %T/hashes-combined.out | FileCheck --check-prefix=CHECK-ONE %s RUN: cat %t.hashes-combined.out | FileCheck --check-prefix=CHECK-ONE %s
RUN: cat %T/hashes-combined.out | FileCheck --check-prefix=CHECK-TWO %s RUN: cat %t.hashes-combined.out | FileCheck --check-prefix=CHECK-TWO %s
RUN: cat %T/hashes-combined.out | FileCheck --check-prefix=CHECK-THREE %s RUN: cat %t.hashes-combined.out | FileCheck --check-prefix=CHECK-THREE %s
RUN: cat %T/hashes-combined.out | FileCheck --check-prefix=CHECK-FOUR %s RUN: cat %t.hashes-combined.out | FileCheck --check-prefix=CHECK-FOUR %s
RUN: cat %T/hashes-combined.out | FileCheck --check-prefix=CHECK-FIVE %s RUN: cat %t.hashes-combined.out | FileCheck --check-prefix=CHECK-FIVE %s
RUN: cat %T/hashes-combined.out | FileCheck --check-prefix=CHECK-SIX %s RUN: cat %t.hashes-combined.out | FileCheck --check-prefix=CHECK-SIX %s
; char**. Both the local and global hashes should be the same, since the only ; char**. Both the local and global hashes should be the same, since the only
; back-references are for simple types which have fixed indices. ; back-references are for simple types which have fixed indices.

View File

@ -1,15 +1,15 @@
# RUN: opt -module-summary %p/Inputs/main-mod.ll -o %T/main-mod.bc # RUN: opt -module-summary %p/Inputs/main-mod.ll -o %t.main-mod.bc
# RUN: opt -module-summary %p/Inputs/foo-mod.ll -o %T/foo-mod.bc # RUN: opt -module-summary %p/Inputs/foo-mod.ll -o %t.foo-mod.bc
# RUN: opt -module-summary %p/Inputs/bar-mod.ll -o %T/bar-mod.bc # RUN: opt -module-summary %p/Inputs/bar-mod.ll -o %t.bar-mod.bc
# REQUIRES: default_triple # REQUIRES: default_triple
# UNSUPPORTED: target=powerpc64{{.*}} # UNSUPPORTED: target=powerpc64{{.*}}
# RUN: llvm-lto -thinlto -o %T/main-foo-bar %T/main-mod.bc %T/foo-mod.bc %T/bar-mod.bc # RUN: llvm-lto -thinlto -o %t.main-foo-bar %t.main-mod.bc %t.foo-mod.bc %t.bar-mod.bc
# RUN: LLJITWithThinLTOSummaries %T/main-foo-bar.thinlto.bc 2>&1 | FileCheck %s # RUN: LLJITWithThinLTOSummaries %t.main-foo-bar.thinlto.bc 2>&1 | FileCheck %s
# CHECK: About to load module: {{.*}}/main-mod.bc # CHECK: About to load module: {{.*}}main-mod.bc
# CHECK-DAG: About to load module: {{.*}}/foo-mod.bc # CHECK-DAG: About to load module: {{.*}}foo-mod.bc
# CHECK-DAG: About to load module: {{.*}}/bar-mod.bc # CHECK-DAG: About to load module: {{.*}}bar-mod.bc
# CHECK: 'main' finished with exit code: 0 # CHECK: 'main' finished with exit code: 0

View File

@ -1,8 +1,8 @@
# RUN: yaml2obj -o %T/libfoo.dylib %S/Inputs/libFooUniversalDylib.yaml # RUN: yaml2obj -o %t.libfoo.dylib %S/Inputs/libFooUniversalDylib.yaml
# RUN: llvm-mc -triple=x86_64-apple-macosx10.9 -filetype=obj \ # RUN: llvm-mc -triple=x86_64-apple-macosx10.9 -filetype=obj \
# RUN: -o %T/MachO_foo-in-weak-dylib.o %s # RUN: -o %t.MachO_foo-in-weak-dylib.o %s
# RUN: llvm-jitlink -noexec %T/MachO_foo-in-weak-dylib.o \ # RUN: llvm-jitlink -noexec %t.MachO_foo-in-weak-dylib.o \
# RUN: -weak_library %T/libfoo.dylib # RUN: -weak_library %t.libfoo.dylib
# #
# Check that -weak_library supports universal binaries. # Check that -weak_library supports universal binaries.

View File

@ -1,7 +1,8 @@
# RUN: llvm-mc -triple=arm64-none-linux-gnu -large-code-model -filetype=obj -o %T/large-reloc.o %s # RUN: rm -rf %t && mkdir %t && cd %t
# RUN: llvm-rtdyld -triple=arm64-none-linux-gnu -verify -map-section large-reloc.o,.eh_frame=0x10000 -map-section large-reloc.o,.text=0xffff000000000000 -check=%s %T/large-reloc.o # RUN: llvm-mc -triple=arm64-none-linux-gnu -large-code-model -filetype=obj -o large-reloc.o %s
# RUN: llvm-mc -triple=aarch64_be-none-linux-gnu -large-code-model -filetype=obj -o %T/large-reloc.o %s # RUN: llvm-rtdyld -triple=arm64-none-linux-gnu -verify -map-section large-reloc.o,.eh_frame=0x10000 -map-section large-reloc.o,.text=0xffff000000000000 -check=%s large-reloc.o
# RUN: llvm-rtdyld -triple=aarch64_be-none-linux-gnu -verify -map-section large-reloc.o,.eh_frame=0x10000 -map-section large-reloc.o,.text=0xffff000000000000 -check=%s %T/large-reloc.o # RUN: llvm-mc -triple=aarch64_be-none-linux-gnu -large-code-model -filetype=obj -o large-reloc.o %s
# RUN: llvm-rtdyld -triple=aarch64_be-none-linux-gnu -verify -map-section large-reloc.o,.eh_frame=0x10000 -map-section large-reloc.o,.text=0xffff000000000000 -check=%s large-reloc.o
.text .text
.globl g .globl g

View File

@ -4,13 +4,13 @@ The two members with the duplicated name "test.o" must have unique
non-zero timestamps, while baz.o, being unique, remains a zero non-zero timestamps, while baz.o, being unique, remains a zero
timestamp. timestamp.
RUN: mkdir -p %T/sub1 RUN: mkdir -p %t.dir/sub1
RUN: printf test > %T/test.o RUN: printf test > %t.dir/test.o
RUN: printf sub1/test > %T/sub1/test.o RUN: printf sub1/test > %t.dir/sub1/test.o
RUN: printf baz > %T/baz.o RUN: printf baz > %t.dir/baz.o
RUN: rm -f %t.a RUN: rm -f %t.a
RUN: llvm-ar --format=darwin rcs %t.a %T/sub1/test.o %T/test.o %T/baz.o RUN: llvm-ar --format=darwin rcs %t.a %t.dir/sub1/test.o %t.dir/test.o %t.dir/baz.o
RUN: FileCheck -strict-whitespace %s < %t.a RUN: FileCheck -strict-whitespace %s < %t.a
CHECK:#1/12 1 0 0 644 28 ` CHECK:#1/12 1 0 0 644 28 `

View File

@ -1,7 +1,7 @@
// RUN: llvm-tblgen -gen-global-isel -I %p/../../../include -I %p/../Common -optimize-match-table=false %s -o %T/context-non-optimized.cpp // RUN: llvm-tblgen -gen-global-isel -I %p/../../../include -I %p/../Common -optimize-match-table=false %s -o %t.context-non-optimized.cpp
// RUN: FileCheck %s --check-prefixes=CHECK_NOPT -input-file=%T/context-non-optimized.cpp // RUN: FileCheck %s --check-prefixes=CHECK_NOPT -input-file=%t.context-non-optimized.cpp
// RUN: llvm-tblgen -gen-global-isel -I %p/../../../include -I %p/../Common -optimize-match-table=true %s -o %T/context-optimized.cpp // RUN: llvm-tblgen -gen-global-isel -I %p/../../../include -I %p/../Common -optimize-match-table=true %s -o %t.context-optimized.cpp
// RUN: FileCheck %s --check-prefixes=CHECK_OPT -input-file=%T/context-optimized.cpp // RUN: FileCheck %s --check-prefixes=CHECK_OPT -input-file=%t.context-optimized.cpp

View File

@ -1,26 +1,26 @@
// RUN: llvm-tblgen -gen-global-isel -I %p/../../../include -I %p/../Common -optimize-match-table=false %s -o %T/non-optimized.cpp // RUN: llvm-tblgen -gen-global-isel -I %p/../../../include -I %p/../Common -optimize-match-table=false %s -o %t.non-optimized.cpp
// RUN: llvm-tblgen -gen-global-isel -I %p/../../../include -I %p/../Common -optimize-match-table=true %s -o %T/optimized.cpp // RUN: llvm-tblgen -gen-global-isel -I %p/../../../include -I %p/../Common -optimize-match-table=true %s -o %t.optimized.cpp
// RUN: llvm-tblgen -gen-global-isel -I %p/../../../include -I %p/../Common %s -o %T/default.cpp // RUN: llvm-tblgen -gen-global-isel -I %p/../../../include -I %p/../Common %s -o %t.default.cpp
// RUN: FileCheck %s --check-prefixes=CHECK,R19C,R19N -input-file=%T/non-optimized.cpp // RUN: FileCheck %s --check-prefixes=CHECK,R19C,R19N -input-file=%t.non-optimized.cpp
// RUN: FileCheck %s --check-prefixes=CHECK,R19C,R19O -input-file=%T/optimized.cpp // RUN: FileCheck %s --check-prefixes=CHECK,R19C,R19O -input-file=%t.optimized.cpp
// RUN: FileCheck %s --check-prefixes=CHECK,R21C,R21N -input-file=%T/non-optimized.cpp // RUN: FileCheck %s --check-prefixes=CHECK,R21C,R21N -input-file=%t.non-optimized.cpp
// RUN: FileCheck %s --check-prefixes=CHECK,R21C,R21O -input-file=%T/optimized.cpp // RUN: FileCheck %s --check-prefixes=CHECK,R21C,R21O -input-file=%t.optimized.cpp
// RUN: FileCheck %s --check-prefixes=CHECK,R20C,R20N -input-file=%T/non-optimized.cpp // RUN: FileCheck %s --check-prefixes=CHECK,R20C,R20N -input-file=%t.non-optimized.cpp
// RUN: FileCheck %s --check-prefixes=CHECK,R20C,R20O -input-file=%T/optimized.cpp // RUN: FileCheck %s --check-prefixes=CHECK,R20C,R20O -input-file=%t.optimized.cpp
// RUN: FileCheck %s --check-prefixes=CHECK,R00C,R00N -input-file=%T/non-optimized.cpp // RUN: FileCheck %s --check-prefixes=CHECK,R00C,R00N -input-file=%t.non-optimized.cpp
// RUN: FileCheck %s --check-prefixes=CHECK,R00C,R00O -input-file=%T/optimized.cpp // RUN: FileCheck %s --check-prefixes=CHECK,R00C,R00O -input-file=%t.optimized.cpp
// RUN: FileCheck %s --check-prefixes=CHECK,R01C,R01N -input-file=%T/non-optimized.cpp // RUN: FileCheck %s --check-prefixes=CHECK,R01C,R01N -input-file=%t.non-optimized.cpp
// RUN: FileCheck %s --check-prefixes=CHECK,R01C,R01O -input-file=%T/optimized.cpp // RUN: FileCheck %s --check-prefixes=CHECK,R01C,R01O -input-file=%t.optimized.cpp
// RUN: FileCheck %s --check-prefixes=CHECK,R02C,R02N,NOOPT -input-file=%T/non-optimized.cpp // RUN: FileCheck %s --check-prefixes=CHECK,R02C,R02N,NOOPT -input-file=%t.non-optimized.cpp
// RUN: FileCheck %s --check-prefixes=CHECK,R02C,R02O -input-file=%T/optimized.cpp // RUN: FileCheck %s --check-prefixes=CHECK,R02C,R02O -input-file=%t.optimized.cpp
// RUN: diff %T/default.cpp %T/optimized.cpp // RUN: diff %t.default.cpp %t.optimized.cpp
include "llvm/Target/Target.td" include "llvm/Target/Target.td"
include "GlobalISelEmitterCommon.td" include "GlobalISelEmitterCommon.td"

View File

@ -1,5 +1,5 @@
// RUN: llvm-tblgen -gen-global-isel -I %p/../../../include -I %p/../Common -optimize-match-table=false %s -o %T/hwmode-non-optimized.cpp // RUN: llvm-tblgen -gen-global-isel -I %p/../../../include -I %p/../Common -optimize-match-table=false %s -o %t.hwmode-non-optimized.cpp
// RUN: FileCheck %s --check-prefixes=CHECK -input-file=%T/hwmode-non-optimized.cpp // RUN: FileCheck %s --check-prefixes=CHECK -input-file=%t.hwmode-non-optimized.cpp
include "llvm/Target/Target.td" include "llvm/Target/Target.td"

View File

@ -3,6 +3,7 @@
# Replace llc with cat, so we can simulate hypothetical output without actually running llc. # Replace llc with cat, so we can simulate hypothetical output without actually running llc.
# Copy the simulated output to the temporary directory. # Copy the simulated output to the temporary directory.
# RUN: cp -f %S/Inputs/amdgpu_no_merge_comments-O0.s %T/ && cp -f %S/Inputs/amdgpu_no_merge_comments-O3.s %T/ # RUN: mkdir -p %t.dir
# RUN: cp -f %S/Inputs/amdgpu_no_merge_comments.ll %t.ll && %update_llc_test_checks --llc-binary cat %t.ll # RUN: cp -f %S/Inputs/amdgpu_no_merge_comments-O0.s %t.dir/ && cp -f %S/Inputs/amdgpu_no_merge_comments-O3.s %t.dir/
# RUN: diff -u %S/Inputs/amdgpu_no_merge_comments.ll.expected %t.ll # RUN: cp -f %S/Inputs/amdgpu_no_merge_comments.ll %t.dir/file.ll && %update_llc_test_checks --llc-binary cat %t.dir/file.ll
# RUN: diff -u %S/Inputs/amdgpu_no_merge_comments.ll.expected %t.dir/file.ll

View File

@ -1,12 +1,13 @@
RUN: dsymutil -oso-prepend-path %p/.. %p/../Inputs/swift-ast.macho.x86_64 -o %T/swift-ast.dSYM -verbose -no-swiftmodule-timestamp | FileCheck %s --check-prefix=DSYMUTIL RUN: rm -rf %t && mkdir %t
RUN: dsymutil -oso-prepend-path %p/.. %p/../Inputs/swift-ast.macho.x86_64 -o %T/swift-ast.dSYM -verbose | FileCheck %s --check-prefix=DSYMUTIL RUN: dsymutil -oso-prepend-path %p/.. %p/../Inputs/swift-ast.macho.x86_64 -o %t/swift-ast.dSYM -verbose -no-swiftmodule-timestamp | FileCheck %s --check-prefix=DSYMUTIL
RUN: llvm-readobj --sections --section-data %T/swift-ast.dSYM/Contents/Resources/DWARF/swift-ast.macho.x86_64 | FileCheck %s --check-prefix=READOBJ RUN: dsymutil -oso-prepend-path %p/.. %p/../Inputs/swift-ast.macho.x86_64 -o %t/swift-ast.dSYM -verbose | FileCheck %s --check-prefix=DSYMUTIL
RUN: llvm-dwarfdump --show-section-sizes %T/swift-ast.dSYM/Contents/Resources/DWARF/swift-ast.macho.x86_64 | FileCheck %s --check-prefix=DWARFDUMP RUN: llvm-readobj --sections --section-data %t/swift-ast.dSYM/Contents/Resources/DWARF/swift-ast.macho.x86_64 | FileCheck %s --check-prefix=READOBJ
RUN: llvm-dwarfdump --show-section-sizes %t/swift-ast.dSYM/Contents/Resources/DWARF/swift-ast.macho.x86_64 | FileCheck %s --check-prefix=DWARFDUMP
RUN: dsymutil --linker parallel -oso-prepend-path %p/.. %p/../Inputs/swift-ast.macho.x86_64 -o %T/swift-ast.dSYM -verbose -no-swiftmodule-timestamp | FileCheck %s --check-prefix=DSYMUTIL RUN: dsymutil --linker parallel -oso-prepend-path %p/.. %p/../Inputs/swift-ast.macho.x86_64 -o %t/swift-ast.dSYM -verbose -no-swiftmodule-timestamp | FileCheck %s --check-prefix=DSYMUTIL
RUN: dsymutil --linker parallel -oso-prepend-path %p/.. %p/../Inputs/swift-ast.macho.x86_64 -o %T/swift-ast.dSYM -verbose | FileCheck %s --check-prefix=DSYMUTIL RUN: dsymutil --linker parallel -oso-prepend-path %p/.. %p/../Inputs/swift-ast.macho.x86_64 -o %t/swift-ast.dSYM -verbose | FileCheck %s --check-prefix=DSYMUTIL
RUN: llvm-readobj --sections --section-data %T/swift-ast.dSYM/Contents/Resources/DWARF/swift-ast.macho.x86_64 | FileCheck %s --check-prefix=READOBJ RUN: llvm-readobj --sections --section-data %t/swift-ast.dSYM/Contents/Resources/DWARF/swift-ast.macho.x86_64 | FileCheck %s --check-prefix=READOBJ
RUN: llvm-dwarfdump --show-section-sizes %T/swift-ast.dSYM/Contents/Resources/DWARF/swift-ast.macho.x86_64 | FileCheck %s --check-prefix=DWARFDUMP RUN: llvm-dwarfdump --show-section-sizes %t/swift-ast.dSYM/Contents/Resources/DWARF/swift-ast.macho.x86_64 | FileCheck %s --check-prefix=DWARFDUMP
The tested object file has been created by the dummy Swift code: The tested object file has been created by the dummy Swift code:
@ -27,5 +28,5 @@ READOBJ-NEXT: |.|
DWARFDUMP: __swift_ast DWARFDUMP: __swift_ast
RUN: dsymutil -s %T/swift-ast.dSYM/Contents/Resources/DWARF/swift-ast.macho.x86_64 | FileCheck %s --check-prefix=NAST RUN: dsymutil -s %t/swift-ast.dSYM/Contents/Resources/DWARF/swift-ast.macho.x86_64 | FileCheck %s --check-prefix=NAST
NAST-NOT: N_AST NAST-NOT: N_AST

View File

@ -1,9 +1,10 @@
## Check that llvm-dwarfdump works when dumping .o files with .dwo files. ## Check that llvm-dwarfdump works when dumping .o files with .dwo files.
# RUN: yaml2obj %p/Inputs/dump_dwo.o.yaml -o %T/dump_dwo.o # RUN: mkdir -p %t.dir
# RUN: yaml2obj %p/Inputs/dump_dwo.dwo.yaml -o %T/dump_dwo.dwo # RUN: yaml2obj %p/Inputs/dump_dwo.o.yaml -o %t.dir/dump_dwo.o
# RUN: yaml2obj %p/Inputs/dump_dwo.dwo.yaml -o %t.dir/dump_dwo.dwo
## We need to be in the same directory so we can find .dwo file ## We need to be in the same directory so we can find .dwo file
# RUN: cd %T # RUN: cd %t.dir
# RUN: llvm-dwarfdump --dwo dump_dwo.o | FileCheck %s # RUN: llvm-dwarfdump --dwo dump_dwo.o | FileCheck %s
# RUN: llvm-dwarfdump --dwo --name int --name char dump_dwo.o | FileCheck %s --check-prefix=NAMES # RUN: llvm-dwarfdump --dwo --name int --name char dump_dwo.o | FileCheck %s --check-prefix=NAMES
# RUN: llvm-dwarfdump --name int --name char dump_dwo.o | FileCheck %s --check-prefix=NAMES_NO_DWO # RUN: llvm-dwarfdump --name int --name char dump_dwo.o | FileCheck %s --check-prefix=NAMES_NO_DWO

View File

@ -1,112 +1,113 @@
## This test checks that -l and -L options work correctly. ## This test checks that -l and -L options work correctly.
# RUN: yaml2obj %S/Inputs/input1.yaml -o %t-input1.o # RUN: mkdir -p %t.dir
# RUN: yaml2obj %S/Inputs/input2.yaml -o %t-input2.o # RUN: yaml2obj %S/Inputs/input1.yaml -o %t.dir/input1.o
# RUN: yaml2obj %S/Inputs/input2.yaml -o %t.dir/input2.o
## Check that the library is recognised when it ends with '.o': ## Check that the library is recognised when it ends with '.o':
# RUN: llvm-libtool-darwin -static -o %t.lib -l%basename_t.tmp-input1.o -l%basename_t.tmp-input2.o -L%T # RUN: llvm-libtool-darwin -static -o %t.lib -linput1.o -linput2.o -L%t.dir
# RUN: llvm-ar t %t.lib | \ # RUN: llvm-ar t %t.lib | \
# RUN: FileCheck %s --check-prefix=CHECK-NAMES --implicit-check-not={{.}} -DPREFIX=%basename_t.tmp # RUN: FileCheck %s --check-prefix=CHECK-NAMES --implicit-check-not={{.}}
# RUN: llvm-nm --print-armap %t.lib | \ # RUN: llvm-nm --print-armap %t.lib | \
# RUN: FileCheck %s --check-prefix=CHECK-SYMBOLS -DPREFIX=%basename_t.tmp --match-full-lines # RUN: FileCheck %s --check-prefix=CHECK-SYMBOLS --match-full-lines
# CHECK-NAMES: [[PREFIX]]-input1.o # CHECK-NAMES: input1.o
# CHECK-NAMES-NEXT: [[PREFIX]]-input2.o # CHECK-NAMES-NEXT: input2.o
# CHECK-SYMBOLS: Archive map # CHECK-SYMBOLS: Archive map
# CHECK-SYMBOLS-NEXT: _symbol1 in [[PREFIX]]-input1.o # CHECK-SYMBOLS-NEXT: _symbol1 in input1.o
# CHECK-SYMBOLS-NEXT: _symbol2 in [[PREFIX]]-input2.o # CHECK-SYMBOLS-NEXT: _symbol2 in input2.o
# CHECK-SYMBOLS-EMPTY: # CHECK-SYMBOLS-EMPTY:
## Check that the library is recognised when prepended with 'lib' and appended with '.a': ## Check that the library is recognised when prepended with 'lib' and appended with '.a':
# RUN: rm -rf %t/dirname && mkdir -p %t/dirname # RUN: rm -rf %t/dirname && mkdir -p %t/dirname
# RUN: llvm-ar cr %t/dirname/libinput2.a %t-input2.o # RUN: llvm-ar cr %t/dirname/libinput2.a %t.dir/input2.o
# RUN: llvm-libtool-darwin -static -o %t.lib -linput2 -L%t/dirname # RUN: llvm-libtool-darwin -static -o %t.lib -linput2 -L%t/dirname
# RUN: llvm-ar t %t.lib | \ # RUN: llvm-ar t %t.lib | \
# RUN: FileCheck %s --check-prefix=SINGLE-NAMES --implicit-check-not={{.}} -DPREFIX=%basename_t.tmp # RUN: FileCheck %s --check-prefix=SINGLE-NAMES --implicit-check-not={{.}}
# RUN: llvm-nm --print-armap %t.lib | \ # RUN: llvm-nm --print-armap %t.lib | \
# RUN: FileCheck %s --check-prefix=SINGLE-SYMBOLS -DPREFIX=%basename_t.tmp --match-full-lines # RUN: FileCheck %s --check-prefix=SINGLE-SYMBOLS --match-full-lines
# SINGLE-NAMES: [[PREFIX]]-input2.o # SINGLE-NAMES: input2.o
# SINGLE-SYMBOLS: Archive map # SINGLE-SYMBOLS: Archive map
# SINGLE-SYMBOLS-NEXT: _symbol2 in [[PREFIX]]-input2.o # SINGLE-SYMBOLS-NEXT: _symbol2 in input2.o
# SINGLE-SYMBOLS-EMPTY: # SINGLE-SYMBOLS-EMPTY:
## -l and -L option specified multiple times: ## -l and -L option specified multiple times:
# RUN: rm -rf %t/otherDirname && mkdir -p %t/otherDirname # RUN: rm -rf %t/otherDirname && mkdir -p %t/otherDirname
# RUN: llvm-ar cr %t/otherDirname/libinput1.a %t-input1.o # RUN: llvm-ar cr %t/otherDirname/libinput1.a %t.dir/input1.o
# RUN: llvm-libtool-darwin -static -o %t.lib -linput2 -linput1 -L%t/dirname -L%t/otherDirname # RUN: llvm-libtool-darwin -static -o %t.lib -linput2 -linput1 -L%t/dirname -L%t/otherDirname
# RUN: llvm-ar t %t.lib | \ # RUN: llvm-ar t %t.lib | \
# RUN: FileCheck %s --check-prefix=OTHER-NAMES --implicit-check-not={{.}} -DPREFIX=%basename_t.tmp # RUN: FileCheck %s --check-prefix=OTHER-NAMES --implicit-check-not={{.}}
# RUN: llvm-nm --print-armap %t.lib | \ # RUN: llvm-nm --print-armap %t.lib | \
# RUN: FileCheck %s --check-prefix=OTHER-SYMBOLS -DPREFIX=%basename_t.tmp --match-full-lines # RUN: FileCheck %s --check-prefix=OTHER-SYMBOLS --match-full-lines
## Check it is possible to pass arguments to -l and -L separated from the option ## Check it is possible to pass arguments to -l and -L separated from the option
## and the options specified multiple times: ## and the options specified multiple times:
# RUN: rm -rf %t/otherDirname && mkdir -p %t/otherDirname # RUN: rm -rf %t/otherDirname && mkdir -p %t/otherDirname
# RUN: llvm-ar cr %t/otherDirname/libinput1.a %t-input1.o # RUN: llvm-ar cr %t/otherDirname/libinput1.a %t.dir/input1.o
# RUN: llvm-libtool-darwin -static -o %t.lib -l input2 -l input1 -L %t/dirname -L %t/otherDirname # RUN: llvm-libtool-darwin -static -o %t.lib -l input2 -l input1 -L %t/dirname -L %t/otherDirname
# RUN: llvm-ar t %t.lib | \ # RUN: llvm-ar t %t.lib | \
# RUN: FileCheck %s --check-prefix=OTHER-NAMES --implicit-check-not={{.}} -DPREFIX=%basename_t.tmp # RUN: FileCheck %s --check-prefix=OTHER-NAMES --implicit-check-not={{.}}
# RUN: llvm-nm --print-armap %t.lib | \ # RUN: llvm-nm --print-armap %t.lib | \
# RUN: FileCheck %s --check-prefix=OTHER-SYMBOLS -DPREFIX=%basename_t.tmp --match-full-lines # RUN: FileCheck %s --check-prefix=OTHER-SYMBOLS --match-full-lines
# OTHER-NAMES: [[PREFIX]]-input2.o # OTHER-NAMES: input2.o
# OTHER-NAMES-NEXT: [[PREFIX]]-input1.o # OTHER-NAMES-NEXT: input1.o
# OTHER-SYMBOLS: Archive map # OTHER-SYMBOLS: Archive map
# OTHER-SYMBOLS-NEXT: _symbol2 in [[PREFIX]]-input2.o # OTHER-SYMBOLS-NEXT: _symbol2 in input2.o
# OTHER-SYMBOLS-NEXT: _symbol1 in [[PREFIX]]-input1.o # OTHER-SYMBOLS-NEXT: _symbol1 in input1.o
# OTHER-SYMBOLS-EMPTY: # OTHER-SYMBOLS-EMPTY:
## Check that if multiple directories specified with -L have the same named file ## Check that if multiple directories specified with -L have the same named file
## in them, the file from the first directory is selected. ## in them, the file from the first directory is selected.
# RUN: llvm-ar cr %t/otherDirname/libinput2.a %t-input1.o # RUN: llvm-ar cr %t/otherDirname/libinput2.a %t.dir/input1.o
# RUN: llvm-libtool-darwin -static -o %t.lib -linput2 -L%t/dirname -L%t/otherDirname # RUN: llvm-libtool-darwin -static -o %t.lib -linput2 -L%t/dirname -L%t/otherDirname
# RUN: llvm-ar t %t.lib | \ # RUN: llvm-ar t %t.lib | \
# RUN: FileCheck %s --check-prefix=SINGLE-NAMES --implicit-check-not={{.}} -DPREFIX=%basename_t.tmp # RUN: FileCheck %s --check-prefix=SINGLE-NAMES --implicit-check-not={{.}}
# RUN: llvm-nm --print-armap %t.lib | \ # RUN: llvm-nm --print-armap %t.lib | \
# RUN: FileCheck %s --check-prefix=SINGLE-SYMBOLS -DPREFIX=%basename_t.tmp --match-full-lines # RUN: FileCheck %s --check-prefix=SINGLE-SYMBOLS --match-full-lines
## Check that if two different files with the same names are explicitly ## Check that if two different files with the same names are explicitly
## specified, the command gives a warning. ## specified, the command gives a warning.
# RUN: cp %t-input2.o %t/dirname # RUN: cp %t.dir/input2.o %t/dirname
# RUN: llvm-libtool-darwin -static -o %t.lib \ # RUN: llvm-libtool-darwin -static -o %t.lib \
# RUN: %t/dirname/%basename_t.tmp-input2.o %t-input2.o 2>&1 | \ # RUN: %t/dirname/input2.o %t.dir/input2.o 2>&1 | \
# RUN: FileCheck %s --check-prefix=DUPLICATE-INPUT \ # RUN: FileCheck %s --check-prefix=DUPLICATE-INPUT \
# RUN: -DFILE=%basename_t.tmp-input2.o \ # RUN: -DFILE=input2.o \
# RUN: -DINPUTA=%t/dirname/%basename_t.tmp-input2.o \ # RUN: -DINPUTA=%t/dirname/input2.o \
# RUN: -DINPUTB=%t-input2.o # RUN: -DINPUTB=%t.dir/input2.o
# DUPLICATE-INPUT: warning: file '[[FILE]]' was specified multiple times. # DUPLICATE-INPUT: warning: file '[[FILE]]' was specified multiple times.
# DUPLICATE-INPUT-DAG: [[INPUTA]] # DUPLICATE-INPUT-DAG: [[INPUTA]]
# DUPLICATE-INPUT-DAG: [[INPUTB]] # DUPLICATE-INPUT-DAG: [[INPUTB]]
## -l option combined with an input file: ## -l option combined with an input file:
# RUN: llvm-libtool-darwin -static -o %t.lib %t-input1.o -linput2 -L%t/dirname # RUN: llvm-libtool-darwin -static -o %t.lib %t.dir/input1.o -linput2 -L%t/dirname
# RUN: llvm-ar t %t.lib | \ # RUN: llvm-ar t %t.lib | \
# RUN: FileCheck %s --check-prefix=CHECK-NAMES --implicit-check-not={{.}} -DPREFIX=%basename_t.tmp # RUN: FileCheck %s --check-prefix=CHECK-NAMES --implicit-check-not={{.}}
# RUN: llvm-nm --print-armap %t.lib | \ # RUN: llvm-nm --print-armap %t.lib | \
# RUN: FileCheck %s --check-prefix=CHECK-SYMBOLS -DPREFIX=%basename_t.tmp --match-full-lines # RUN: FileCheck %s --check-prefix=CHECK-SYMBOLS --match-full-lines
## Specify the same file with a -l option and an input file: ## Specify the same file with a -l option and an input file:
# RUN: rm -rf %t/copy # RUN: rm -rf %t/copy
# RUN: mkdir -p %t/copy # RUN: mkdir -p %t/copy
# RUN: cp %t-input1.o %t/copy # RUN: cp %t.dir/input1.o %t/copy
# RUN: llvm-libtool-darwin -static -o %t.lib \ # RUN: llvm-libtool-darwin -static -o %t.lib \
# RUN: %t/copy/%basename_t.tmp-input1.o -l%basename_t.tmp-input1.o -L%t/copy 2>&1 | \ # RUN: %t/copy/input1.o -linput1.o -L%t/copy 2>&1 | \
# RUN: FileCheck %s --check-prefix=DUPLICATE-L-INPUT -DFILE=%basename_t.tmp-input1.o # RUN: FileCheck %s --check-prefix=DUPLICATE-L-INPUT -DFILE=input1.o
## Specify same -l option twice: ## Specify same -l option twice:
# RUN: llvm-libtool-darwin -static -o %t.lib -l%basename_t.tmp-input1.o \ # RUN: llvm-libtool-darwin -static -o %t.lib -linput1.o \
# RUN: -l%basename_t.tmp-input1.o -L%t/copy 2>&1 | \ # RUN: -linput1.o -L%t/copy 2>&1 | \
# RUN: FileCheck %s --check-prefix=DUPLICATE-L-INPUT \ # RUN: FileCheck %s --check-prefix=DUPLICATE-L-INPUT \
# RUN: -DFILE=%basename_t.tmp-input1.o # RUN: -DFILE=input1.o
# DUPLICATE-L-INPUT: warning: file '[[FILE]]' was specified multiple times. # DUPLICATE-L-INPUT: warning: file '[[FILE]]' was specified multiple times.
@ -123,11 +124,11 @@
## Check that an error is thrown when the input library cannot be found ## Check that an error is thrown when the input library cannot be found
## (since 'lib' and '.a' are added): ## (since 'lib' and '.a' are added):
# RUN: llvm-ar cr %t/dirname/file-does-exist %t-input1.o # RUN: llvm-ar cr %t/dirname/file-does-exist %t.dir/input1.o
# RUN: not llvm-libtool-darwin -static -o %t.lib -lfile-does-exist -L%t/dirname 2>&1 | \ # RUN: not llvm-libtool-darwin -static -o %t.lib -lfile-does-exist -L%t/dirname 2>&1 | \
# RUN: FileCheck %s --check-prefix=NOT-FOUND -DFILE=libfile-does-exist.a # RUN: FileCheck %s --check-prefix=NOT-FOUND -DFILE=libfile-does-exist.a
# RUN: llvm-ar cr %t/dirname/libfile-does-exist.a %t-input1.o # RUN: llvm-ar cr %t/dirname/libfile-does-exist.a %t.dir/input1.o
# RUN: not llvm-libtool-darwin -static -o %t.lib -llibfile-does-exist.a -L%t/dirname 2>&1 | \ # RUN: not llvm-libtool-darwin -static -o %t.lib -llibfile-does-exist.a -L%t/dirname 2>&1 | \
# RUN: FileCheck %s --check-prefix=NOT-FOUND -DFILE=liblibfile-does-exist.a.a # RUN: FileCheck %s --check-prefix=NOT-FOUND -DFILE=liblibfile-does-exist.a.a
@ -145,13 +146,13 @@
# RUN: FileCheck %s --check-prefix=NOT-VALID -DFILE=libnot-valid.a # RUN: FileCheck %s --check-prefix=NOT-VALID -DFILE=libnot-valid.a
## Check that 'lib' and '.a' are not added to a file ending in '.o': ## Check that 'lib' and '.a' are not added to a file ending in '.o':
# RUN: llvm-ar cr %t/dirname/libfoo.o.a %t-input1.o # RUN: llvm-ar cr %t/dirname/libfoo.o.a %t.dir/input1.o
# RUN: not llvm-libtool-darwin -static -o %t.lib -lfoo.o -L%t/dirname 2>&1 | \ # RUN: not llvm-libtool-darwin -static -o %t.lib -lfoo.o -L%t/dirname 2>&1 | \
# RUN: FileCheck %s --check-prefix=NOT-FOUND -DFILE=foo.o # RUN: FileCheck %s --check-prefix=NOT-FOUND -DFILE=foo.o
## Check that 'lib' and '.a' are added to a file ending in any other extension ## Check that 'lib' and '.a' are added to a file ending in any other extension
## beside '.o' (e.g. '.ext'): ## beside '.o' (e.g. '.ext'):
# RUN: llvm-ar cr %t/dirname/libbar.ext.a %t-input2.o # RUN: llvm-ar cr %t/dirname/libbar.ext.a %t.dir/input2.o
# RUN: llvm-libtool-darwin -static -o %t.lib -lbar.ext -L%t/dirname # RUN: llvm-libtool-darwin -static -o %t.lib -lbar.ext -L%t/dirname
# RUN: llvm-ar t %t.lib | \ # RUN: llvm-ar t %t.lib | \
# RUN: FileCheck %s --check-prefix=SINGLE-NAMES --implicit-check-not={{.}} -DPREFIX=%basename_t.tmp # RUN: FileCheck %s --check-prefix=SINGLE-NAMES --implicit-check-not={{.}} -DPREFIX=%basename_t.tmp

View File

@ -4,7 +4,7 @@
# RUN: llvm-objcopy --dump-section .text.f=%t.txt %t.obj # RUN: llvm-objcopy --dump-section .text.f=%t.txt %t.obj
# RUN: od -t x1 %t.txt | FileCheck %s --ignore-case -check-prefix CHECK-TEXT-F # RUN: od -t x1 %t.txt | FileCheck %s --ignore-case -check-prefix CHECK-TEXT-F
# RUN: not llvm-objcopy --dump-section non-existent=/dev/null %t.obj 2>&1 | FileCheck %s -check-prefix CHECK-NO-SECTION # RUN: not llvm-objcopy --dump-section non-existent=/dev/null %t.obj 2>&1 | FileCheck %s -check-prefix CHECK-NO-SECTION
# RUN: not llvm-objcopy --dump-section .text=%T %t.obj 2>&1 | FileCheck -DOBJ=%t.obj -DMSG=%errc_EISDIR %s -check-prefix CHECK-INVALID-DESTINATION # RUN: not llvm-objcopy --dump-section .text=%S %t.obj 2>&1 | FileCheck -DOBJ=%t.obj -DMSG=%errc_EISDIR %s -check-prefix CHECK-INVALID-DESTINATION
# CHECK-EMPTY-SIZE: 0 # CHECK-EMPTY-SIZE: 0