1a8eef4e5SJames Henderson## Show that llvm-size prints sizes in different radixes when requested. 2a8eef4e5SJames Henderson 3a8eef4e5SJames Henderson# RUN: yaml2obj %s --docnum=1 -o %t1.o 4a8eef4e5SJames Henderson# RUN: yaml2obj %s --docnum=2 -o %t2.o 5a8eef4e5SJames Henderson 6a8eef4e5SJames Henderson## Case 1: Octal radix (Berkeley). 7a8eef4e5SJames Henderson# RUN: llvm-size %t1.o %t2.o --totals -B --radix=8 \ 8a8eef4e5SJames Henderson# RUN: | FileCheck %s --check-prefix=OCT-BERK -DFILE1=%t1.o -DFILE2=%t2.o 9a8eef4e5SJames Henderson# RUN: llvm-size %t1.o %t2.o --totals -B -o \ 10a8eef4e5SJames Henderson# RUN: | FileCheck %s --check-prefix=OCT-BERK -DFILE1=%t1.o -DFILE2=%t2.o 11a8eef4e5SJames Henderson 12a8eef4e5SJames Henderson# OCT-BERK: text data bss oct hex filename 13a8eef4e5SJames Henderson# OCT-BERK-NEXT: 01 02 04 7 7 [[FILE1]] 14a8eef4e5SJames Henderson# OCT-BERK-NEXT: 010 020 040 70 38 [[FILE2]] 15a8eef4e5SJames Henderson# OCT-BERK-NEXT: 011 022 044 77 3f (TOTALS) 16a8eef4e5SJames Henderson 17a8eef4e5SJames Henderson## Case 2: Decimal radix (Berkeley). 18a8eef4e5SJames Henderson# RUN: llvm-size %t1.o %t2.o --totals -B --radix=10 \ 19a8eef4e5SJames Henderson# RUN: | FileCheck %s --check-prefix=DEC-BERK -DFILE1=%t1.o -DFILE2=%t2.o 20a8eef4e5SJames Henderson# RUN: llvm-size %t1.o %t2.o --totals -B -d \ 21a8eef4e5SJames Henderson# RUN: | FileCheck %s --check-prefix=DEC-BERK -DFILE1=%t1.o -DFILE2=%t2.o 22a8eef4e5SJames Henderson 23a8eef4e5SJames Henderson# DEC-BERK: text data bss dec hex filename 24a8eef4e5SJames Henderson# DEC-BERK-NEXT: 1 2 4 7 7 [[FILE1]] 25a8eef4e5SJames Henderson# DEC-BERK-NEXT: 8 16 32 56 38 [[FILE2]] 26a8eef4e5SJames Henderson# DEC-BERK-NEXT: 9 18 36 63 3f (TOTALS) 27a8eef4e5SJames Henderson 28a8eef4e5SJames Henderson## Case 3: Hexadecimal radix (Berkeley). 29a8eef4e5SJames Henderson# RUN: llvm-size %t1.o %t2.o --totals -B --radix=16 \ 30a8eef4e5SJames Henderson# RUN: | FileCheck %s --check-prefix=HEX-BERK -DFILE1=%t1.o -DFILE2=%t2.o 31a8eef4e5SJames Henderson# RUN: llvm-size %t1.o %t2.o --totals -B -x \ 32a8eef4e5SJames Henderson# RUN: | FileCheck %s --check-prefix=HEX-BERK -DFILE1=%t1.o -DFILE2=%t2.o 33a8eef4e5SJames Henderson 34a8eef4e5SJames Henderson# HEX-BERK: text data bss dec hex filename 35a8eef4e5SJames Henderson# HEX-BERK-NEXT: 0x1 0x2 0x4 7 7 [[FILE1]] 36a8eef4e5SJames Henderson# HEX-BERK-NEXT: 0x8 0x10 0x20 56 38 [[FILE2]] 37a8eef4e5SJames Henderson# HEX-BERK-NEXT: 0x9 0x12 0x24 63 3f (TOTALS) 38a8eef4e5SJames Henderson 39a8eef4e5SJames Henderson## Case 4: Octal radix (sysv). 40a8eef4e5SJames Henderson# RUN: llvm-size %t1.o %t2.o -A --radix=8 \ 41a8eef4e5SJames Henderson# RUN: | FileCheck %s --check-prefix=OCT-SYSV -DFILE1=%t1.o -DFILE2=%t2.o 42a8eef4e5SJames Henderson# RUN: llvm-size %t1.o %t2.o -A -o \ 43a8eef4e5SJames Henderson# RUN: | FileCheck %s --check-prefix=OCT-SYSV -DFILE1=%t1.o -DFILE2=%t2.o 44a8eef4e5SJames Henderson 45a8eef4e5SJames Henderson# OCT-SYSV: [[FILE1]] : 46a8eef4e5SJames Henderson# OCT-SYSV-NEXT: section size addr 47a8eef4e5SJames Henderson# OCT-SYSV-NEXT: .text 01 04 48a8eef4e5SJames Henderson# OCT-SYSV-NEXT: .data 02 02 49a8eef4e5SJames Henderson# OCT-SYSV-NEXT: .bss 04 01 50a8eef4e5SJames Henderson# OCT-SYSV-NEXT: Total 07 51a8eef4e5SJames Henderson# OCT-SYSV-EMPTY: 52abd70784STH3CHARLie# OCT-SYSV-EMPTY: 53a8eef4e5SJames Henderson# OCT-SYSV-NEXT: [[FILE2]] : 54a8eef4e5SJames Henderson# OCT-SYSV-NEXT: section size addr 55a8eef4e5SJames Henderson# OCT-SYSV-NEXT: .blob 010 040 56a8eef4e5SJames Henderson# OCT-SYSV-NEXT: .blab 020 020 57a8eef4e5SJames Henderson# OCT-SYSV-NEXT: .blib 040 010 58a8eef4e5SJames Henderson# OCT-SYSV-NEXT: Total 070 59a8eef4e5SJames Henderson 60a8eef4e5SJames Henderson## Case 5: Decimal radix (sysv). 61a8eef4e5SJames Henderson# RUN: llvm-size %t1.o %t2.o -A --radix=10 \ 62a8eef4e5SJames Henderson# RUN: | FileCheck %s --check-prefix=DEC-SYSV -DFILE1=%t1.o -DFILE2=%t2.o 63a8eef4e5SJames Henderson# RUN: llvm-size %t1.o %t2.o -A -d \ 64a8eef4e5SJames Henderson# RUN: | FileCheck %s --check-prefix=DEC-SYSV -DFILE1=%t1.o -DFILE2=%t2.o 65a8eef4e5SJames Henderson 66a8eef4e5SJames Henderson# DEC-SYSV: [[FILE1]] : 67a8eef4e5SJames Henderson# DEC-SYSV-NEXT: section size addr 68a8eef4e5SJames Henderson# DEC-SYSV-NEXT: .text 1 4 69a8eef4e5SJames Henderson# DEC-SYSV-NEXT: .data 2 2 70a8eef4e5SJames Henderson# DEC-SYSV-NEXT: .bss 4 1 71a8eef4e5SJames Henderson# DEC-SYSV-NEXT: Total 7 72a8eef4e5SJames Henderson# DEC-SYSV-EMPTY: 73abd70784STH3CHARLie# DEC-SYSV-EMPTY: 74a8eef4e5SJames Henderson# DEC-SYSV-NEXT: [[FILE2]] : 75a8eef4e5SJames Henderson# DEC-SYSV-NEXT: section size addr 76a8eef4e5SJames Henderson# DEC-SYSV-NEXT: .blob 8 32 77a8eef4e5SJames Henderson# DEC-SYSV-NEXT: .blab 16 16 78a8eef4e5SJames Henderson# DEC-SYSV-NEXT: .blib 32 8 79a8eef4e5SJames Henderson# DEC-SYSV-NEXT: Total 56 80a8eef4e5SJames Henderson 81a8eef4e5SJames Henderson## Case 6: Hexadecimal radix (sysv). 82a8eef4e5SJames Henderson# RUN: llvm-size %t1.o %t2.o -A --radix=16 \ 83a8eef4e5SJames Henderson# RUN: | FileCheck %s --check-prefix=HEX-SYSV -DFILE1=%t1.o -DFILE2=%t2.o 84a8eef4e5SJames Henderson# RUN: llvm-size %t1.o %t2.o -A -x \ 85a8eef4e5SJames Henderson# RUN: | FileCheck %s --check-prefix=HEX-SYSV -DFILE1=%t1.o -DFILE2=%t2.o 86a8eef4e5SJames Henderson 87a8eef4e5SJames Henderson# HEX-SYSV: [[FILE1]] : 88a8eef4e5SJames Henderson# HEX-SYSV-NEXT: section size addr 89a8eef4e5SJames Henderson# HEX-SYSV-NEXT: .text 0x1 0x4 90a8eef4e5SJames Henderson# HEX-SYSV-NEXT: .data 0x2 0x2 91a8eef4e5SJames Henderson# HEX-SYSV-NEXT: .bss 0x4 0x1 92a8eef4e5SJames Henderson# HEX-SYSV-NEXT: Total 0x7 93a8eef4e5SJames Henderson# HEX-SYSV-EMPTY: 94abd70784STH3CHARLie# HEX-SYSV-EMPTY: 95a8eef4e5SJames Henderson# HEX-SYSV-NEXT: [[FILE2]] : 96a8eef4e5SJames Henderson# HEX-SYSV-NEXT: section size addr 97a8eef4e5SJames Henderson# HEX-SYSV-NEXT: .blob 0x8 0x20 98a8eef4e5SJames Henderson# HEX-SYSV-NEXT: .blab 0x10 0x10 99a8eef4e5SJames Henderson# HEX-SYSV-NEXT: .blib 0x20 0x8 100a8eef4e5SJames Henderson# HEX-SYSV-NEXT: Total 0x38 101a8eef4e5SJames Henderson 102a8eef4e5SJames Henderson## Case 7: Default Berkeley is decimal. 103a8eef4e5SJames Henderson# RUN: llvm-size %t1.o %t2.o --totals -B \ 104a8eef4e5SJames Henderson# RUN: | FileCheck %s --check-prefix=DEC-BERK -DFILE1=%t1.o -DFILE2=%t2.o 105a8eef4e5SJames Henderson 106a8eef4e5SJames Henderson## Case 8: Default sysv is decimal. 107a8eef4e5SJames Henderson# RUN: llvm-size %t1.o %t2.o -A \ 108a8eef4e5SJames Henderson# RUN: | FileCheck %s --check-prefix=DEC-SYSV -DFILE1=%t1.o -DFILE2=%t2.o 109a8eef4e5SJames Henderson 110a8eef4e5SJames Henderson## Case 9: Bad values. 111a8eef4e5SJames Henderson# RUN: not llvm-size %t1.o --radix=0 2>&1 \ 112a8eef4e5SJames Henderson# RUN: | FileCheck %s --check-prefix=BAD-VAL -DNUM=0 113a8eef4e5SJames Henderson# RUN: not llvm-size %t1.o --radix=1 2>&1 \ 114a8eef4e5SJames Henderson# RUN: | FileCheck %s --check-prefix=BAD-VAL -DNUM=1 115a8eef4e5SJames Henderson# RUN: not llvm-size %t1.o --radix=2 2>&1 \ 116a8eef4e5SJames Henderson# RUN: | FileCheck %s --check-prefix=BAD-VAL -DNUM=2 117a8eef4e5SJames Henderson# RUN: not llvm-size %t1.o --radix=32 2>&1 \ 118a8eef4e5SJames Henderson# RUN: | FileCheck %s --check-prefix=BAD-VAL -DNUM=32 119a8eef4e5SJames Henderson# RUN: not llvm-size %t1.o --radix=-1 2>&1 \ 120a8eef4e5SJames Henderson# RUN: | FileCheck %s --check-prefix=BAD-VAL -DNUM=-1 121a8eef4e5SJames Henderson# RUN: not llvm-size %t1.o --radix=bad 2>&1 \ 122a8eef4e5SJames Henderson# RUN: | FileCheck %s --check-prefix=BAD-VAL -DNUM=bad 123a8eef4e5SJames Henderson 124*47db32e5SFangrui Song# BAD-VAL: {{.*}}llvm-size{{.*}}: error: --radix value should be one of: 8, 10, 16 125a8eef4e5SJames Henderson 126a8eef4e5SJames Henderson--- !ELF 127a8eef4e5SJames HendersonFileHeader: 128a8eef4e5SJames Henderson Class: ELFCLASS64 129a8eef4e5SJames Henderson Data: ELFDATA2LSB 130a8eef4e5SJames Henderson Type: ET_REL 131a8eef4e5SJames Henderson Machine: EM_X86_64 132a8eef4e5SJames HendersonSections: 133a8eef4e5SJames Henderson - Name: .text 134a8eef4e5SJames Henderson Type: SHT_PROGBITS 135a8eef4e5SJames Henderson Flags: [SHF_ALLOC, SHF_EXECINSTR] 136a8eef4e5SJames Henderson Size: 1 137a8eef4e5SJames Henderson Address: 4 138a8eef4e5SJames Henderson - Name: .data 139a8eef4e5SJames Henderson Type: SHT_PROGBITS 140a8eef4e5SJames Henderson Flags: [SHF_ALLOC, SHF_WRITE] 141a8eef4e5SJames Henderson Size: 2 142a8eef4e5SJames Henderson Address: 2 143a8eef4e5SJames Henderson - Name: .bss 144a8eef4e5SJames Henderson Type: SHT_NOBITS 145a8eef4e5SJames Henderson Flags: [SHF_ALLOC, SHF_WRITE] 146a8eef4e5SJames Henderson Size: 4 147a8eef4e5SJames Henderson Address: 1 148a8eef4e5SJames Henderson 149a8eef4e5SJames Henderson--- !ELF 150a8eef4e5SJames HendersonFileHeader: 151a8eef4e5SJames Henderson Class: ELFCLASS64 152a8eef4e5SJames Henderson Data: ELFDATA2LSB 153a8eef4e5SJames Henderson Type: ET_REL 154a8eef4e5SJames Henderson Machine: EM_X86_64 155a8eef4e5SJames HendersonSections: 156a8eef4e5SJames Henderson - Name: .blob 157a8eef4e5SJames Henderson Type: SHT_PROGBITS 158a8eef4e5SJames Henderson Flags: [SHF_ALLOC, SHF_EXECINSTR] 159a8eef4e5SJames Henderson Size: 8 160a8eef4e5SJames Henderson Address: 32 161a8eef4e5SJames Henderson - Name: .blab 162a8eef4e5SJames Henderson Type: SHT_PROGBITS 163a8eef4e5SJames Henderson Flags: [SHF_ALLOC, SHF_WRITE] 164a8eef4e5SJames Henderson Size: 16 165a8eef4e5SJames Henderson Address: 16 166a8eef4e5SJames Henderson - Name: .blib 167a8eef4e5SJames Henderson Type: SHT_NOBITS 168a8eef4e5SJames Henderson Flags: [SHF_ALLOC, SHF_WRITE] 169a8eef4e5SJames Henderson Size: 32 170a8eef4e5SJames Henderson Address: 8 171