142 lines · plain
1## Show how llvm-size behaves when passed in an archive.2 3# RUN: yaml2obj %s --docnum=1 -o %t14# RUN: yaml2obj %s --docnum=2 -o %t25 6## Case 1: Empty archive. No output expected.7# RUN: rm -f %t1.a8# RUN: llvm-ar rc %t1.a9 10# RUN: llvm-size -B %t1.a | count 011# RUN: llvm-size -A %t1.a | count 012 13## Case 2: Single member.14# RUN: rm -f %t2.a15# RUN: llvm-ar rc %t2.a %t116 17# RUN: llvm-size -B %t2.a | FileCheck %s -DARCHIVE=%t2.a --check-prefix=BERKELEY-118# RUN: llvm-size -A %t2.a | FileCheck %s -DARCHIVE=%t2.a --check-prefix=SYSV-119# RUN: llvm-size -m %t2.a | FileCheck %s -DARCHIVE=%t2.a --check-prefix=DARWIN-120 21## Case 3: Multiple members.22# RUN: rm -f %t3.a23# RUN: llvm-ar rc %t3.a %t1 %t224 25# RUN: llvm-size -B %t3.a | FileCheck %s -DARCHIVE=%t3.a --check-prefixes=BERKELEY-1,BERKELEY-226# RUN: llvm-size -A %t3.a | FileCheck %s -DARCHIVE=%t3.a --check-prefixes=SYSV-1,SYSV-227# RUN: llvm-size -m %t3.a | FileCheck %s -DARCHIVE=%t3.a --check-prefixes=DARWIN-1,DARWIN-228 29## Case 4: Mixing archives and non-archives produces sensible output:30# RUN: llvm-size -B %t1 %t2.a %t2 %t3.a \31# RUN: | FileCheck %s -DARCHIVE=%t3.a -DARCHIVE2=%t2.a -DFILE1=%t1 -DFILE2=%t2 \32# RUN: --check-prefixes=BERKELEY-1,BERKELEY-2,BERKELEY-333# RUN: llvm-size -A %t1 %t2.a %t2 %t3.a \34# RUN: | FileCheck %s -DARCHIVE=%t3.a -DARCHIVE2=%t2.a -DFILE1=%t1 -DFILE2=%t2 \35# RUN: --check-prefixes=SYSV-1,SYSV-2,SYSV-336# RUN: llvm-size -B %t1 %t2.a %t2 %t3.a \37# RUN: | FileCheck %s -DARCHIVE=%t3.a -DARCHIVE2=%t2.a -DFILE1=%t1 -DFILE2=%t2 \38# RUN: --check-prefixes=DARWIN-1,DARWIN-2,DARWIN-339 40# BERKELEY-1: text data bss dec hex filename41# BERKELEY-3-NEXT: 1 2 4 7 7 [[FILE1]]42# BERKELEY-3-NEXT: 1 2 4 7 7 archive.test.tmp1 (ex [[ARCHIVE2]])43# BERKELEY-3-NEXT: 8 16 32 56 38 [[FILE2]]44# BERKELEY-1-NEXT: 1 2 4 7 7 archive.test.tmp1 (ex [[ARCHIVE]])45# BERKELEY-2-NEXT: 8 16 32 56 38 archive.test.tmp2 (ex [[ARCHIVE]])46# BERKELEY-1-NOT:{{.}}47 48# SYSV-3: [[FILE1]] :49# SYSV-3-NEXT: section size addr50# SYSV-3-NEXT: .text 1 451# SYSV-3-NEXT: .data 2 252# SYSV-3-NEXT: .bss 4 153# SYSV-3-NEXT: Total 754# SYSV-3-EMPTY:55# SYSV-3-EMPTY:56# SYSV-3-NEXT: archive.test.tmp1 (ex [[ARCHIVE2]]):57# SYSV-3-NEXT: section size addr58# SYSV-3-NEXT: .text 1 459# SYSV-3-NEXT: .data 2 260# SYSV-3-NEXT: .bss 4 161# SYSV-3-NEXT: Total 762# SYSV-3-EMPTY:63# SYSV-3-EMPTY:64# SYSV-3-NEXT: [[FILE2]] :65# SYSV-3-NEXT: section size addr66# SYSV-3-NEXT: .text 8 3267# SYSV-3-NEXT: .data 16 1668# SYSV-3-NEXT: .bss 32 869# SYSV-3-NEXT: Total 5670# SYSV-3-EMPTY:71 72# SYSV-1: archive.test.tmp1 (ex [[ARCHIVE]]):73# SYSV-1-NEXT: section size addr74# SYSV-1-NEXT: .text 1 475# SYSV-1-NEXT: .data 2 276# SYSV-1-NEXT: .bss 4 177# SYSV-1-NEXT: Total 778# SYSV-1-EMPTY:79# SYSV-1-EMPTY:80 81# SYSV-2-NEXT: archive.test.tmp2 (ex [[ARCHIVE]]):82# SYSV-2-NEXT: section size addr83# SYSV-2-NEXT: .text 8 3284# SYSV-2-NEXT: .data 16 1685# SYSV-2-NEXT: .bss 32 886# SYSV-2-NEXT: Total 5687# SYSV-1-NOT:{{.}}88 89# DARWIN-1: text data bss dec hex filename90# DARWIN-3-NEXT: 1 2 4 7 7 [[FILE1]]91# DARWIN-3-NEXT: 1 2 4 7 7 archive.test.tmp1 (ex [[ARCHIVE2]])92# DARWIN-3-NEXT: 8 16 32 56 38 [[FILE2]]93# DARWIN-1-NEXT: 1 2 4 7 7 archive.test.tmp1 (ex [[ARCHIVE]])94# DARWIN-2-NEXT: 8 16 32 56 38 archive.test.tmp2 (ex [[ARCHIVE]])95# DARWIN-1-NOT:{{.}}96 97--- !ELF98FileHeader:99 Class: ELFCLASS64100 Data: ELFDATA2LSB101 Type: ET_REL102 Machine: EM_X86_64103Sections:104 - Name: .text105 Type: SHT_PROGBITS106 Flags: [SHF_ALLOC, SHF_EXECINSTR]107 Size: 1108 Address: 4109 - Name: .data110 Type: SHT_PROGBITS111 Flags: [SHF_ALLOC, SHF_WRITE]112 Size: 2113 Address: 2114 - Name: .bss115 Type: SHT_NOBITS116 Flags: [SHF_ALLOC, SHF_WRITE]117 Size: 4118 Address: 1119 120--- !ELF121FileHeader:122 Class: ELFCLASS64123 Data: ELFDATA2LSB124 Type: ET_REL125 Machine: EM_X86_64126Sections:127 - Name: .text128 Type: SHT_PROGBITS129 Flags: [SHF_ALLOC, SHF_EXECINSTR]130 Size: 8131 Address: 32132 - Name: .data133 Type: SHT_PROGBITS134 Flags: [SHF_ALLOC, SHF_WRITE]135 Size: 16136 Address: 16137 - Name: .bss138 Type: SHT_NOBITS139 Flags: [SHF_ALLOC, SHF_WRITE]140 Size: 32141 Address: 8142