1--TEST--
2Test sprintf() function : usage variations - octal formats with integer values
3--SKIPIF--
4<?php if (PHP_INT_SIZE != 8) die("skip this test is for 64bit platform only"); ?>
5--FILE--
6<?php
7/* Prototype  : string sprintf(string $format [, mixed $arg1 [, mixed ...]])
8 * Description: Return a formatted string
9 * Source code: ext/standard/formatted_print.c
10*/
11
12echo "*** Testing sprintf() : octal formats with integer values ***\n";
13
14// array of integer values
15$integer_values = array(
16  0,
17  1,
18  -1,
19  -2147483648, // max negative integer value
20  -2147483647,
21  2147483647,  // max positive integer value
22  2147483640,
23  0x123B,      // integer as hexadecimal
24  0x12ab,
25  0Xfff,
26  0XFA,
27  -0x80000000, // max negative integer as hexadecimal
28  0x7fffffff,  // max postive integer as hexadecimal
29  0x7FFFFFFF,  // max postive integer as hexadecimal
30  0123,        // integer as octal
31  01912,       // should be quivalent to octal 1
32  -020000000000, // max negative integer as octal
33  017777777777  // max positive integer as octal
34);
35
36// array of octal formats
37$octal_formats = array(
38  "%o", "%ho", "%lo",
39  "%Lo", " %o", "%o ",
40  "\t%o", "\n%o", "%4o",
41  "%30o", "%[0-7]", "%*o"
42);
43
44$count = 1;
45foreach($integer_values as $integer_value) {
46  echo "\n-- Iteration $count --\n";
47
48  foreach($octal_formats as $format) {
49    var_dump( sprintf($format, $integer_value) );
50  }
51  $count++;
52};
53
54echo "Done";
55?>
56--EXPECTF--
57*** Testing sprintf() : octal formats with integer values ***
58
59-- Iteration 1 --
60string(1) "0"
61string(1) "o"
62string(1) "0"
63string(1) "o"
64string(2) " 0"
65string(2) "0 "
66string(2) "	0"
67string(2) "
680"
69string(4) "   0"
70string(30) "                             0"
71string(4) "0-7]"
72string(1) "o"
73
74-- Iteration 2 --
75string(1) "1"
76string(1) "o"
77string(1) "1"
78string(1) "o"
79string(2) " 1"
80string(2) "1 "
81string(2) "	1"
82string(2) "
831"
84string(4) "   1"
85string(30) "                             1"
86string(4) "0-7]"
87string(1) "o"
88
89-- Iteration 3 --
90string(22) "1777777777777777777777"
91string(1) "o"
92string(22) "1777777777777777777777"
93string(1) "o"
94string(23) " 1777777777777777777777"
95string(23) "1777777777777777777777 "
96string(23) "	1777777777777777777777"
97string(23) "
981777777777777777777777"
99string(22) "1777777777777777777777"
100string(30) "        1777777777777777777777"
101string(4) "0-7]"
102string(1) "o"
103
104-- Iteration 4 --
105string(22) "1777777777760000000000"
106string(1) "o"
107string(22) "1777777777760000000000"
108string(1) "o"
109string(23) " 1777777777760000000000"
110string(23) "1777777777760000000000 "
111string(23) "	1777777777760000000000"
112string(23) "
1131777777777760000000000"
114string(22) "1777777777760000000000"
115string(30) "        1777777777760000000000"
116string(4) "0-7]"
117string(1) "o"
118
119-- Iteration 5 --
120string(22) "1777777777760000000001"
121string(1) "o"
122string(22) "1777777777760000000001"
123string(1) "o"
124string(23) " 1777777777760000000001"
125string(23) "1777777777760000000001 "
126string(23) "	1777777777760000000001"
127string(23) "
1281777777777760000000001"
129string(22) "1777777777760000000001"
130string(30) "        1777777777760000000001"
131string(4) "0-7]"
132string(1) "o"
133
134-- Iteration 6 --
135string(11) "17777777777"
136string(1) "o"
137string(11) "17777777777"
138string(1) "o"
139string(12) " 17777777777"
140string(12) "17777777777 "
141string(12) "	17777777777"
142string(12) "
14317777777777"
144string(11) "17777777777"
145string(30) "                   17777777777"
146string(4) "0-7]"
147string(1) "o"
148
149-- Iteration 7 --
150string(11) "17777777770"
151string(1) "o"
152string(11) "17777777770"
153string(1) "o"
154string(12) " 17777777770"
155string(12) "17777777770 "
156string(12) "	17777777770"
157string(12) "
15817777777770"
159string(11) "17777777770"
160string(30) "                   17777777770"
161string(4) "0-7]"
162string(1) "o"
163
164-- Iteration 8 --
165string(5) "11073"
166string(1) "o"
167string(5) "11073"
168string(1) "o"
169string(6) " 11073"
170string(6) "11073 "
171string(6) "	11073"
172string(6) "
17311073"
174string(5) "11073"
175string(30) "                         11073"
176string(4) "0-7]"
177string(1) "o"
178
179-- Iteration 9 --
180string(5) "11253"
181string(1) "o"
182string(5) "11253"
183string(1) "o"
184string(6) " 11253"
185string(6) "11253 "
186string(6) "	11253"
187string(6) "
18811253"
189string(5) "11253"
190string(30) "                         11253"
191string(4) "0-7]"
192string(1) "o"
193
194-- Iteration 10 --
195string(4) "7777"
196string(1) "o"
197string(4) "7777"
198string(1) "o"
199string(5) " 7777"
200string(5) "7777 "
201string(5) "	7777"
202string(5) "
2037777"
204string(4) "7777"
205string(30) "                          7777"
206string(4) "0-7]"
207string(1) "o"
208
209-- Iteration 11 --
210string(3) "372"
211string(1) "o"
212string(3) "372"
213string(1) "o"
214string(4) " 372"
215string(4) "372 "
216string(4) "	372"
217string(4) "
218372"
219string(4) " 372"
220string(30) "                           372"
221string(4) "0-7]"
222string(1) "o"
223
224-- Iteration 12 --
225string(22) "1777777777760000000000"
226string(1) "o"
227string(22) "1777777777760000000000"
228string(1) "o"
229string(23) " 1777777777760000000000"
230string(23) "1777777777760000000000 "
231string(23) "	1777777777760000000000"
232string(23) "
2331777777777760000000000"
234string(22) "1777777777760000000000"
235string(30) "        1777777777760000000000"
236string(4) "0-7]"
237string(1) "o"
238
239-- Iteration 13 --
240string(11) "17777777777"
241string(1) "o"
242string(11) "17777777777"
243string(1) "o"
244string(12) " 17777777777"
245string(12) "17777777777 "
246string(12) "	17777777777"
247string(12) "
24817777777777"
249string(11) "17777777777"
250string(30) "                   17777777777"
251string(4) "0-7]"
252string(1) "o"
253
254-- Iteration 14 --
255string(11) "17777777777"
256string(1) "o"
257string(11) "17777777777"
258string(1) "o"
259string(12) " 17777777777"
260string(12) "17777777777 "
261string(12) "	17777777777"
262string(12) "
26317777777777"
264string(11) "17777777777"
265string(30) "                   17777777777"
266string(4) "0-7]"
267string(1) "o"
268
269-- Iteration 15 --
270string(3) "123"
271string(1) "o"
272string(3) "123"
273string(1) "o"
274string(4) " 123"
275string(4) "123 "
276string(4) "	123"
277string(4) "
278123"
279string(4) " 123"
280string(30) "                           123"
281string(4) "0-7]"
282string(1) "o"
283
284-- Iteration 16 --
285string(1) "1"
286string(1) "o"
287string(1) "1"
288string(1) "o"
289string(2) " 1"
290string(2) "1 "
291string(2) "	1"
292string(2) "
2931"
294string(4) "   1"
295string(30) "                             1"
296string(4) "0-7]"
297string(1) "o"
298
299-- Iteration 17 --
300string(22) "1777777777760000000000"
301string(1) "o"
302string(22) "1777777777760000000000"
303string(1) "o"
304string(23) " 1777777777760000000000"
305string(23) "1777777777760000000000 "
306string(23) "	1777777777760000000000"
307string(23) "
3081777777777760000000000"
309string(22) "1777777777760000000000"
310string(30) "        1777777777760000000000"
311string(4) "0-7]"
312string(1) "o"
313
314-- Iteration 18 --
315string(11) "17777777777"
316string(1) "o"
317string(11) "17777777777"
318string(1) "o"
319string(12) " 17777777777"
320string(12) "17777777777 "
321string(12) "	17777777777"
322string(12) "
32317777777777"
324string(11) "17777777777"
325string(30) "                   17777777777"
326string(4) "0-7]"
327string(1) "o"
328Done
329