diff options
author | andy wharmby <wharmby@php.net> | 2009-01-19 16:03:44 +0000 |
---|---|---|
committer | andy wharmby <wharmby@php.net> | 2009-01-19 16:03:44 +0000 |
commit | a7e129f217ba1864fd032f9b5f106fab81cb8774 (patch) | |
tree | c929ca0f513dc79155da065102a001aaf1c86259 /ext/standard/tests/strings/vprintf_variation11_64bit.phpt | |
parent | 0a34f4ad2c53fa88f0645ba5722434bd39b4a73d (diff) | |
download | php-git-a7e129f217ba1864fd032f9b5f106fab81cb8774.tar.gz |
New vprintf() tests. Tested on Windows, Linux and Linux 64 bit.
Diffstat (limited to 'ext/standard/tests/strings/vprintf_variation11_64bit.phpt')
-rw-r--r-- | ext/standard/tests/strings/vprintf_variation11_64bit.phpt | 94 |
1 files changed, 94 insertions, 0 deletions
diff --git a/ext/standard/tests/strings/vprintf_variation11_64bit.phpt b/ext/standard/tests/strings/vprintf_variation11_64bit.phpt new file mode 100644 index 0000000000..5f65c5fb44 --- /dev/null +++ b/ext/standard/tests/strings/vprintf_variation11_64bit.phpt @@ -0,0 +1,94 @@ +--TEST-- +Test vprintf() function : usage variations - octal formats with octal values +--SKIPIF-- +<?php +if (PHP_INT_SIZE != 8) die("skip this test is for 64bit platform only"); +?> +--FILE-- +<?php +/* Prototype : string vprintf(string format, array args) + * Description: Output a formatted string + * Source code: ext/standard/formatted_print.c +*/ + +/* + * Test vprintf() when different octal formats and octal values are passed to + * the '$format' and '$args' arguments of the function +*/ + +echo "*** Testing vprintf() : octal formats with octal values ***\n"; + +// defining array of octal formats +$formats = array( + "%o", + "%+o %-o %O", + "%lo %Lo, %4o %-4o", + "%10.4o %-10.4o %04o %04.4o", + "%'#2o %'2o %'$2o %'_2o", + "%o %o %o %o", + "%% %%o %10 o%", + '%3$o %4$o %1$o %2$o' +); + +// Arrays of octal values for the format defined in $format. +// Each sub array contains octal values which correspond to each format string in $format +$args_array = array( + array(00), + array(-01, 01, +022), + array(-020000000000, 020000000000, 017777777777, -017777777777), + array(0123456, 012345678, -01234567, 01234567), + array(0111, 02222, -0333333, -044444444), + array(0x123b, 0xfAb, 0123, 01293), + array(01234, 05678, -01234, 02345), + array(03, 04, 01, 02) + +); + +// looping to test vprintf() with different octal formats from the above $formats array +// and with octal values from the above $args_array array +$counter = 1; +foreach($formats as $format) { + echo "\n-- Iteration $counter --\n"; + $result = vprintf($format, $args_array[$counter-1]); + echo "\n"; + var_dump($result); + $counter++; +} + +?> +===DONE=== +--EXPECT-- +*** Testing vprintf() : octal formats with octal values *** + +-- Iteration 1 -- +0 +int(1) + +-- Iteration 2 -- +1777777777777777777777 1 +int(25) + +-- Iteration 3 -- +1777777777760000000000 o, 17777777777 1777777777760000000001 +int(60) + +-- Iteration 4 -- + 1777777777777776543211 0000 +int(49) + +-- Iteration 5 -- +111 2222 1777777777777777444445 1777777777777733333334 +int(54) + +-- Iteration 6 -- +11073 7653 123 12 +int(17) + +-- Iteration 7 -- +% %o o +int(6) + +-- Iteration 8 -- +1 2 3 4 +int(7) +===DONE=== |