## Show that llvm-size prints sizes in different radixes when requested.

# RUN: yaml2obj %s --docnum=1 -o %t1.o
# RUN: yaml2obj %s --docnum=2 -o %t2.o

## Case 1: Octal radix (Berkeley).
# RUN: llvm-size %t1.o %t2.o --totals -B --radix=8 \
# RUN:   | FileCheck %s --check-prefix=OCT-BERK -DFILE1=%t1.o -DFILE2=%t2.o
# RUN: llvm-size %t1.o %t2.o --totals -B -o \
# RUN:   | FileCheck %s --check-prefix=OCT-BERK -DFILE1=%t1.o -DFILE2=%t2.o

# OCT-BERK:         text    data     bss     oct     hex filename
# OCT-BERK-NEXT:      01      02      04       7       7 [[FILE1]]
# OCT-BERK-NEXT:     010     020     040      70      38 [[FILE2]]
# OCT-BERK-NEXT:     011     022     044      77      3f (TOTALS)

## Case 2: Decimal radix (Berkeley).
# RUN: llvm-size %t1.o %t2.o --totals -B --radix=10 \
# RUN:   | FileCheck %s --check-prefix=DEC-BERK -DFILE1=%t1.o -DFILE2=%t2.o
# RUN: llvm-size %t1.o %t2.o --totals -B -d \
# RUN:   | FileCheck %s --check-prefix=DEC-BERK -DFILE1=%t1.o -DFILE2=%t2.o

# DEC-BERK:         text    data     bss     dec     hex filename
# DEC-BERK-NEXT:       1       2       4       7       7 [[FILE1]]
# DEC-BERK-NEXT:       8      16      32      56      38 [[FILE2]]
# DEC-BERK-NEXT:       9      18      36      63      3f (TOTALS)

## Case 3: Hexadecimal radix (Berkeley).
# RUN: llvm-size %t1.o %t2.o --totals -B --radix=16 \
# RUN:   | FileCheck %s --check-prefix=HEX-BERK -DFILE1=%t1.o -DFILE2=%t2.o
# RUN: llvm-size %t1.o %t2.o --totals -B -x \
# RUN:   | FileCheck %s --check-prefix=HEX-BERK -DFILE1=%t1.o -DFILE2=%t2.o

# HEX-BERK:         text    data     bss     dec     hex filename
# HEX-BERK-NEXT:     0x1     0x2     0x4       7       7 [[FILE1]]
# HEX-BERK-NEXT:     0x8    0x10    0x20      56      38 [[FILE2]]
# HEX-BERK-NEXT:     0x9    0x12    0x24      63      3f (TOTALS)

## Case 4: Octal radix (sysv).
# RUN: llvm-size %t1.o %t2.o -A --radix=8 \
# RUN:   | FileCheck %s --check-prefix=OCT-SYSV -DFILE1=%t1.o -DFILE2=%t2.o
# RUN: llvm-size %t1.o %t2.o -A -o \
# RUN:   | FileCheck %s --check-prefix=OCT-SYSV -DFILE1=%t1.o -DFILE2=%t2.o

# OCT-SYSV:      [[FILE1]]  :
# OCT-SYSV-NEXT: section     size   addr
# OCT-SYSV-NEXT: .text         01     04
# OCT-SYSV-NEXT: .data         02     02
# OCT-SYSV-NEXT: .bss          04     01
# OCT-SYSV-NEXT: Total         07
# OCT-SYSV-EMPTY:
# OCT-SYSV-EMPTY:
# OCT-SYSV-NEXT: [[FILE2]]  :
# OCT-SYSV-NEXT: section     size   addr
# OCT-SYSV-NEXT: .blob        010    040
# OCT-SYSV-NEXT: .blab        020    020
# OCT-SYSV-NEXT: .blib        040    010
# OCT-SYSV-NEXT: Total        070

## Case 5: Decimal radix (sysv).
# RUN: llvm-size %t1.o %t2.o -A --radix=10 \
# RUN:   | FileCheck %s --check-prefix=DEC-SYSV -DFILE1=%t1.o -DFILE2=%t2.o
# RUN: llvm-size %t1.o %t2.o -A -d \
# RUN:   | FileCheck %s --check-prefix=DEC-SYSV -DFILE1=%t1.o -DFILE2=%t2.o

# DEC-SYSV:      [[FILE1]]  :
# DEC-SYSV-NEXT: section     size   addr
# DEC-SYSV-NEXT: .text          1      4
# DEC-SYSV-NEXT: .data          2      2
# DEC-SYSV-NEXT: .bss           4      1
# DEC-SYSV-NEXT: Total          7
# DEC-SYSV-EMPTY:
# DEC-SYSV-EMPTY:
# DEC-SYSV-NEXT: [[FILE2]]  :
# DEC-SYSV-NEXT: section     size   addr
# DEC-SYSV-NEXT: .blob          8     32
# DEC-SYSV-NEXT: .blab         16     16
# DEC-SYSV-NEXT: .blib         32      8
# DEC-SYSV-NEXT: Total         56

## Case 6: Hexadecimal radix (sysv).
# RUN: llvm-size %t1.o %t2.o -A --radix=16 \
# RUN:   | FileCheck %s --check-prefix=HEX-SYSV -DFILE1=%t1.o -DFILE2=%t2.o
# RUN: llvm-size %t1.o %t2.o -A -x \
# RUN:   | FileCheck %s --check-prefix=HEX-SYSV -DFILE1=%t1.o -DFILE2=%t2.o

# HEX-SYSV:      [[FILE1]]  :
# HEX-SYSV-NEXT: section     size   addr
# HEX-SYSV-NEXT: .text        0x1    0x4
# HEX-SYSV-NEXT: .data        0x2    0x2
# HEX-SYSV-NEXT: .bss         0x4    0x1
# HEX-SYSV-NEXT: Total        0x7
# HEX-SYSV-EMPTY:
# HEX-SYSV-EMPTY:
# HEX-SYSV-NEXT: [[FILE2]]  :
# HEX-SYSV-NEXT: section     size   addr
# HEX-SYSV-NEXT: .blob        0x8   0x20
# HEX-SYSV-NEXT: .blab       0x10   0x10
# HEX-SYSV-NEXT: .blib       0x20    0x8
# HEX-SYSV-NEXT: Total       0x38

## Case 7: Default Berkeley is decimal.
# RUN: llvm-size %t1.o %t2.o --totals -B \
# RUN:   | FileCheck %s --check-prefix=DEC-BERK -DFILE1=%t1.o -DFILE2=%t2.o

## Case 8: Default sysv is decimal.
# RUN: llvm-size %t1.o %t2.o -A \
# RUN:   | FileCheck %s --check-prefix=DEC-SYSV -DFILE1=%t1.o -DFILE2=%t2.o

## Case 9: Bad values.
# RUN: not llvm-size %t1.o --radix=0 2>&1 \
# RUN:   | FileCheck %s --check-prefix=BAD-VAL -DNUM=0
# RUN: not llvm-size %t1.o --radix=1 2>&1 \
# RUN:   | FileCheck %s --check-prefix=BAD-VAL -DNUM=1
# RUN: not llvm-size %t1.o --radix=2 2>&1 \
# RUN:   | FileCheck %s --check-prefix=BAD-VAL -DNUM=2
# RUN: not llvm-size %t1.o --radix=32 2>&1 \
# RUN:   | FileCheck %s --check-prefix=BAD-VAL -DNUM=32
# RUN: not llvm-size %t1.o --radix=-1 2>&1 \
# RUN:   | FileCheck %s --check-prefix=BAD-VAL -DNUM=-1
# RUN: not llvm-size %t1.o --radix=bad 2>&1 \
# RUN:   | FileCheck %s --check-prefix=BAD-VAL -DNUM=bad

# BAD-VAL: {{.*}}llvm-size{{.*}}: for the --radix option: Cannot find option named '[[NUM]]'!

--- !ELF
FileHeader:
  Class:   ELFCLASS64
  Data:    ELFDATA2LSB
  Type:    ET_REL
  Machine: EM_X86_64
Sections:
  - Name:    .text
    Type:    SHT_PROGBITS
    Flags:   [SHF_ALLOC, SHF_EXECINSTR]
    Size:    1
    Address: 4
  - Name:    .data
    Type:    SHT_PROGBITS
    Flags:   [SHF_ALLOC, SHF_WRITE]
    Size:    2
    Address: 2
  - Name:    .bss
    Type:    SHT_NOBITS
    Flags:   [SHF_ALLOC, SHF_WRITE]
    Size:    4
    Address: 1

--- !ELF
FileHeader:
  Class:   ELFCLASS64
  Data:    ELFDATA2LSB
  Type:    ET_REL
  Machine: EM_X86_64
Sections:
  - Name:    .blob
    Type:    SHT_PROGBITS
    Flags:   [SHF_ALLOC, SHF_EXECINSTR]
    Size:    8
    Address: 32
  - Name:    .blab
    Type:    SHT_PROGBITS
    Flags:   [SHF_ALLOC, SHF_WRITE]
    Size:    16
    Address: 16
  - Name:    .blib
    Type:    SHT_NOBITS
    Flags:   [SHF_ALLOC, SHF_WRITE]
    Size:    32
    Address: 8
