@@ -24,13 +24,15 @@ fn main() {
24
24
test ( #fmt ( "%c" , 'A' ) , "A" ) ;
25
25
test ( #fmt ( "%x" , 0xff_ u) , "ff" ) ;
26
26
test ( #fmt ( "%X" , 0x12ab_ u) , "12AB" ) ;
27
+ test ( #fmt ( "%o" , 10 u) , "12" ) ;
27
28
test ( #fmt ( "%t" , 0b11010101_ u) , "11010101" ) ;
28
29
29
30
// 32-bit limits
30
31
test ( #fmt ( "%i" , -2147483648 ) , "-2147483648" ) ;
31
32
test ( #fmt ( "%i" , 2147483647 ) , "2147483647" ) ;
32
33
test ( #fmt ( "%u" , 4294967295 u) , "4294967295" ) ;
33
34
test ( #fmt ( "%x" , 0xffffffff_ u) , "ffffffff" ) ;
35
+ test ( #fmt ( "%o" , 0xffffffff_ u) , "37777777777" ) ;
34
36
test ( #fmt ( "%t" , 0xffffffff_ u) , "11111111111111111111111111111111" ) ;
35
37
36
38
// Widths
@@ -42,6 +44,7 @@ fn main() {
42
44
test ( #fmt ( "%10b" , true ) , " true" ) ;
43
45
test ( #fmt ( "%10x" , 0xff_ u) , " ff" ) ;
44
46
test ( #fmt ( "%10X" , 0xff_ u) , " FF" ) ;
47
+ test ( #fmt ( "%10o" , 10 u) , " 12" ) ;
45
48
test ( #fmt ( "%10t" , 0xff_ u) , " 11111111" ) ;
46
49
test ( #fmt ( "%10c" , 'A' ) , " A" ) ;
47
50
@@ -53,6 +56,7 @@ fn main() {
53
56
test ( #fmt ( "%-10b" , true ) , "true " ) ;
54
57
test ( #fmt ( "%-10x" , 0xff_ u) , "ff " ) ;
55
58
test ( #fmt ( "%-10X" , 0xff_ u) , "FF " ) ;
59
+ test ( #fmt ( "%-10o" , 10 u) , "12 " ) ;
56
60
test ( #fmt ( "%-10t" , 0xff_ u) , "11111111 " ) ;
57
61
test ( #fmt ( "%-10c" , 'A' ) , "A " ) ;
58
62
@@ -66,6 +70,7 @@ fn main() {
66
70
test ( #fmt ( "%.u" , 10 u) , "10" ) ;
67
71
test ( #fmt ( "%.s" , "test" ) , "" ) ;
68
72
test ( #fmt ( "%.x" , 127 u) , "7f" ) ;
73
+ test ( #fmt ( "%.o" , 10 u) , "12" ) ;
69
74
test ( #fmt ( "%.t" , 3 u) , "11" ) ;
70
75
test ( #fmt ( "%.c" , 'A' ) , "A" ) ;
71
76
@@ -78,6 +83,7 @@ fn main() {
78
83
test ( #fmt ( "%.0u" , 10 u) , "10" ) ;
79
84
test ( #fmt ( "%.0s" , "test" ) , "" ) ;
80
85
test ( #fmt ( "%.0x" , 127 u) , "7f" ) ;
86
+ test ( #fmt ( "%.0o" , 10 u) , "12" ) ;
81
87
test ( #fmt ( "%.0t" , 3 u) , "11" ) ;
82
88
test ( #fmt ( "%.0c" , 'A' ) , "A" ) ;
83
89
@@ -90,6 +96,7 @@ fn main() {
90
96
test ( #fmt ( "%.1u" , 10 u) , "10" ) ;
91
97
test ( #fmt ( "%.1s" , "test" ) , "t" ) ;
92
98
test ( #fmt ( "%.1x" , 127 u) , "7f" ) ;
99
+ test ( #fmt ( "%.1o" , 10 u) , "12" ) ;
93
100
test ( #fmt ( "%.1t" , 3 u) , "11" ) ;
94
101
test ( #fmt ( "%.1c" , 'A' ) , "A" ) ;
95
102
@@ -102,6 +109,7 @@ fn main() {
102
109
test ( #fmt ( "%.5u" , 10 u) , "00010" ) ;
103
110
test ( #fmt ( "%.5s" , "test" ) , "test" ) ;
104
111
test ( #fmt ( "%.5x" , 127 u) , "0007f" ) ;
112
+ test ( #fmt ( "%.5o" , 10 u) , "00012" ) ;
105
113
test ( #fmt ( "%.5t" , 3 u) , "00011" ) ;
106
114
test ( #fmt ( "%.5c" , 'A' ) , "A" ) ;
107
115
@@ -134,6 +142,7 @@ fn main() {
134
142
test ( #fmt ( "%05u" , 1 u) , "00001" ) ;
135
143
test ( #fmt ( "%05x" , 127 u) , "0007f" ) ;
136
144
test ( #fmt ( "%05X" , 127 u) , "0007F" ) ;
145
+ test ( #fmt ( "%05o" , 10 u) , "00012" ) ;
137
146
test ( #fmt ( "%05t" , 3 u) , "00011" ) ;
138
147
// 0-padding a string is undefined but glibc does this:
139
148
test ( #fmt ( "%05s" , "test" ) , " test" ) ;
@@ -147,6 +156,7 @@ fn main() {
147
156
test ( #fmt ( "%-05u" , 1 u) , "1 " ) ;
148
157
test ( #fmt ( "%-05x" , 127 u) , "7f " ) ;
149
158
test ( #fmt ( "%-05X" , 127 u) , "7F " ) ;
159
+ test ( #fmt ( "%-05o" , 10 u) , "12 " ) ;
150
160
test ( #fmt ( "%-05t" , 3 u) , "11 " ) ;
151
161
test ( #fmt ( "%-05s" , "test" ) , "test " ) ;
152
162
test ( #fmt ( "%-05c" , 'A' ) , "A " ) ;
@@ -163,6 +173,7 @@ fn main() {
163
173
test ( #fmt ( "%06.5c" , 'A' ) , " A" ) ;
164
174
test ( #fmt ( "%06.5x" , 127 u) , " 0007f" ) ;
165
175
test ( #fmt ( "%06.5X" , 127 u) , " 0007F" ) ;
176
+ test ( #fmt ( "%06.5o" , 10 u) , " 00012" ) ;
166
177
167
178
// TODO: Padding and +
168
179
// TODO: Padding and ' '
0 commit comments