xref: /llvm-project/llvm/test/tools/llvm-size/radix.test (revision 47db32e542eb84ca9d4bed798bbdfd40200ac1ef)
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