| ## Test that we can pass multiple files. There are several ways to do this: |
| ## list them all individually, use --libdir to shorten the list, or use a |
| ## response file (with or without --libdir). |
| ## |
| # REQUIRES: x86-registered-target |
| # |
| # RUN: mkdir -p %t.dir |
| # RUN: yaml2obj --docnum=1 %s -o %t.dir/file1 |
| # RUN: yaml2obj --docnum=2 %s -o %t.dir/file2 |
| # RUN: yaml2obj --docnum=3 %s -o %t.dir/file3 |
| |
| # RUN: llvm-tli-checker --triple x86_64-scei-ps4 --report=full \ |
| # RUN: %t.dir/file1 %t.dir/file2 %t.dir/file3 | \ |
| # RUN: FileCheck %s |
| # |
| ## Same result using --libdir. |
| # RUN: llvm-tli-checker --triple x86_64-scei-ps4 --report=full \ |
| # RUN: --libdir=%t.dir file1 file2 file3 | \ |
| # RUN: FileCheck %s |
| # |
| ## And with a response file. |
| # RUN: echo -e "file1\nfile2\nfile3\n" > %t.dir/resp1.txt |
| # RUN: llvm-tli-checker --triple x86_64-scei-ps4 --report=full \ |
| # RUN: --libdir=%t.dir @%t.dir/resp1.txt | \ |
| # RUN: FileCheck %s |
| # |
| # RUN: echo %t.dir/file1 > %t.dir/resp2.txt |
| # RUN: echo %t.dir/file2 >> %t.dir/resp2.txt |
| # RUN: echo %t.dir/file3 >> %t.dir/resp2.txt |
| # RUN: llvm-tli-checker --triple x86_64-scei-ps4 --report=full \ |
| # RUN: @%t.dir/resp2.txt | \ |
| # RUN: FileCheck %s |
| # |
| ## Also check that an archive works. Put file1 and file2 into an archive, |
| ## and pass the archive name plus file3 on the command line. |
| # RUN: rm -f %t.dir/archive.a |
| # RUN: llvm-ar rc %t.dir/archive.a %t.dir/file1 %t.dir/file2 |
| # RUN: llvm-tli-checker --triple x86_64-scei-ps4 --report=full \ |
| # RUN: --libdir=%t.dir archive.a file3 | \ |
| # RUN: FileCheck %s |
| # |
| # CHECK: TLI knows {{[0-9]+}} symbols, [[#AVAILABLE:]] available |
| # CHECK: >> TLI no SDK yes: '_ZdaPvj' |
| # CHECK: == TLI yes SDK yes: 'abs' |
| # CHECK: == TLI yes SDK yes: 'calloc' |
| ## The yes/no and yes/yes should add up to the total available. |
| ## The no/yes aren't included in the total available. |
| # CHECK: << Total TLI yes SDK no: [[#AVAILABLE-2]] |
| # CHECK: >> Total TLI no SDK yes: 1{{$}} |
| # CHECK: == Total TLI yes SDK yes: 2{{$}} |
| |
| ## --separate should give one summary per input file (as listed on the |
| # command line; it doesn't break things down by archive member). |
| # RUN: llvm-tli-checker --triple x86_64-scei-ps4 --separate \ |
| # RUN: --libdir=%t.dir archive.a file3 | \ |
| # RUN: FileCheck %s --check-prefix=SEPARATE |
| # |
| # SEPARATE: TLI knows {{[0-9]+}} symbols, [[#AVAILABLE:]] available |
| # SEPARATE: Found 2 global function symbols in '{{.*}}archive.a' |
| # SEPARATE: << Total TLI yes SDK no: [[#AVAILABLE-1]] |
| # SEPARATE: >> Total TLI no SDK yes: 1{{$}} |
| # SEPARATE: == Total TLI yes SDK yes: 1{{$}} |
| # SEPARATE: Found 1 global function symbols in '{{.*}}file3' |
| # SEPARATE: << Total TLI yes SDK no: [[#AVAILABLE-1]] |
| # SEPARATE: >> Total TLI no SDK yes: 0{{$}} |
| # SEPARATE: == Total TLI yes SDK yes: 1{{$}} |
| |
| # file1 |
| --- !ELF |
| FileHeader: |
| Class: ELFCLASS64 |
| Data: ELFDATA2LSB |
| OSABI: ELFOSABI_FREEBSD |
| Type: ET_DYN |
| Machine: EM_X86_64 |
| Sections: |
| - Name: .text |
| Type: SHT_PROGBITS |
| DynamicSymbols: |
| - Name: abs |
| Type: STT_FUNC |
| Section: .text |
| Binding: STB_GLOBAL |
| |
| # file2 |
| --- !ELF |
| FileHeader: |
| Class: ELFCLASS64 |
| Data: ELFDATA2LSB |
| OSABI: ELFOSABI_FREEBSD |
| Type: ET_DYN |
| Machine: EM_X86_64 |
| Sections: |
| - Name: .text |
| Type: SHT_PROGBITS |
| DynamicSymbols: |
| - Name: _ZdaPvj |
| Type: STT_FUNC |
| Section: .text |
| Binding: STB_GLOBAL |
| |
| # file3 |
| --- !ELF |
| FileHeader: |
| Class: ELFCLASS64 |
| Data: ELFDATA2LSB |
| OSABI: ELFOSABI_FREEBSD |
| Type: ET_DYN |
| Machine: EM_X86_64 |
| Sections: |
| - Name: .text |
| Type: SHT_PROGBITS |
| DynamicSymbols: |
| - Name: calloc |
| Type: STT_FUNC |
| Section: .text |
| Binding: STB_GLOBAL |