diff options
author | Raghubansh Kumar <kraghuba@php.net> | 2008-06-20 04:21:58 +0000 |
---|---|---|
committer | Raghubansh Kumar <kraghuba@php.net> | 2008-06-20 04:21:58 +0000 |
commit | 48b0cc41349653c401b6d7a973e0054b20ac4548 (patch) | |
tree | 7eee46095ce3a91a2355685e0e31524da0c1dfc9 /ext/standard/tests/strings | |
parent | 2bb7df3504fd7fbbd1fa04dee0a8095fe557cc77 (diff) | |
download | php-git-48b0cc41349653c401b6d7a973e0054b20ac4548.tar.gz |
New testcases for vfprintf(), Committed for Felix De Vliegher, TestFest Task No: 124, Tested on RHEL5 -32bit, WinXP-32bit
Added *.txt to .cvsignore
Diffstat (limited to 'ext/standard/tests/strings')
-rw-r--r-- | ext/standard/tests/strings/vfprintf_basic.phpt | 71 | ||||
-rw-r--r-- | ext/standard/tests/strings/vfprintf_error1.phpt | 46 | ||||
-rw-r--r-- | ext/standard/tests/strings/vfprintf_error2.phpt | 48 | ||||
-rw-r--r-- | ext/standard/tests/strings/vfprintf_error3.phpt | 54 | ||||
-rw-r--r-- | ext/standard/tests/strings/vfprintf_error4.phpt | 43 | ||||
-rw-r--r-- | ext/standard/tests/strings/vfprintf_variation1.phpt | 86 |
6 files changed, 348 insertions, 0 deletions
diff --git a/ext/standard/tests/strings/vfprintf_basic.phpt b/ext/standard/tests/strings/vfprintf_basic.phpt new file mode 100644 index 0000000000..8189aaf0b0 --- /dev/null +++ b/ext/standard/tests/strings/vfprintf_basic.phpt @@ -0,0 +1,71 @@ +--TEST-- +Test vfprintf() function : basic functionality +--CREDITS-- +Felix De Vliegher <felix.devliegher@gmail.com> +--INI-- +precision=14 +--FILE-- +<?php +/* Prototype : int vfprintf(resource stream, string format, array args) + * Description: Output a formatted string into a stream + * Source code: ext/standard/formatted_print.c + * Alias to functions: + */ + +function writeAndDump($fp, $format, $args) +{ + ftruncate( $fp, 0 ); + $length = vfprintf( $fp, $format, $args ); + rewind( $fp ); + $content = stream_get_contents( $fp ); + var_dump( $content ); + var_dump( $length ); +} + +echo "*** Testing vfprintf() : basic functionality ***\n"; + +// Open handle +$file = 'vfprintf_test.txt'; +$fp = fopen( $file, "a+" ); + +// Test vfprintf() +writeAndDump( $fp, "Foo is %d and %s", array( 30, 'bar' ) ); +writeAndDump( $fp, "%s %s %s", array( 'bar', 'bar', 'bar' ) ); +writeAndDump( $fp, "%d digit", array( '54' ) ); +writeAndDump( $fp, "%b %b", array( true, false ) ); +writeAndDump( $fp, "%c %c %c", array( 65, 66, 67 ) ); +writeAndDump( $fp, "%e %E %e", array( 1000, 2e4, +2e2 ) ); +writeAndDump( $fp, "%02d", array( 50 ) ); +writeAndDump( $fp, "Testing %b %d %f %s %x %X", array( 9, 6, 2.5502, "foobar", 15, 65 ) ); + +// Close handle +fclose( $fp ); + +?> +===DONE=== +--CLEAN-- +<?php + +$file = 'vfprintf_test.txt'; +unlink( $file ); + +?> +--EXPECTF-- +*** Testing vfprintf() : basic functionality *** +string(17) "Foo is 30 and bar" +int(17) +string(11) "bar bar bar" +int(11) +string(8) "54 digit" +int(8) +string(3) "1 0" +int(3) +string(5) "A B C" +int(5) +string(35) "1.000000e+3 2.000000E+4 2.000000e+2" +int(35) +string(2) "50" +int(2) +string(35) "Testing 1001 6 2.550200 foobar f 41" +int(35) +===DONE=== diff --git a/ext/standard/tests/strings/vfprintf_error1.phpt b/ext/standard/tests/strings/vfprintf_error1.phpt new file mode 100644 index 0000000000..b8cc170973 --- /dev/null +++ b/ext/standard/tests/strings/vfprintf_error1.phpt @@ -0,0 +1,46 @@ +--TEST-- +Test vfprintf() function : error conditions (more than expected arguments) +--CREDITS-- +Felix De Vliegher <felix.devliegher@gmail.com> +--INI-- +precision=14 +--FILE-- +<?php +/* Prototype : int vfprintf(resource stream, string format, array args) + * Description: Output a formatted string into a stream + * Source code: ext/standard/formatted_print.c + * Alias to functions: + */ + +// Open handle +$file = 'vfprintf_test.txt'; +$fp = fopen( $file, "a+" ); + +echo "\n-- Testing vfprintf() function with more than expected no. of arguments --\n"; +$format = 'string_val'; +$args = array( 1, 2 ); +$extra_arg = 10; +var_dump( vfprintf( $fp, $format, $args, $extra_arg ) ); +var_dump( vfprintf( $fp, "Foo %d", array(6), "bar" ) ); + +// Close handle +fclose($fp); + +?> +===DONE=== +--CLEAN-- +<?php + +$file = 'vfprintf_text.txt'; +unlink( $file ); + +?> +--EXPECTF-- +-- Testing vfprintf() function with more than expected no. of arguments -- + +Warning: Wrong parameter count for vfprintf() in %s on line %d +NULL + +Warning: Wrong parameter count for vfprintf() in %s on line %d +NULL +===DONE=== diff --git a/ext/standard/tests/strings/vfprintf_error2.phpt b/ext/standard/tests/strings/vfprintf_error2.phpt new file mode 100644 index 0000000000..981b1a745f --- /dev/null +++ b/ext/standard/tests/strings/vfprintf_error2.phpt @@ -0,0 +1,48 @@ +--TEST-- +Test vfprintf() function : error conditions (less than expected arguments) +--CREDITS-- +Felix De Vliegher <felix.devliegher@gmail.com> +--INI-- +precision=14 +--FILE-- +<?php +/* Prototype : int vfprintf(resource stream, string format, array args) + * Description: Output a formatted string into a stream + * Source code: ext/standard/formatted_print.c + * Alias to functions: + */ + +// Open handle +$file = 'vfprintf_test.txt'; +$fp = fopen( $file, "a+" ); + +echo "\n-- Testing vfprintf() function with less than expected no. of arguments --\n"; +$format = 'string_val'; +var_dump( vfprintf($fp, $format) ); +var_dump( vfprintf( $fp ) ); +var_dump( vfprintf() ); + +// Close handle +fclose($fp); + +?> +===DONE=== +--CLEAN-- +<?php + +$file = 'vfprintf_text.txt'; +unlink( $file ); + +?> +--EXPECTF-- +-- Testing vfprintf() function with less than expected no. of arguments -- + +Warning: Wrong parameter count for vfprintf() in %s on line %d +NULL + +Warning: Wrong parameter count for vfprintf() in %s on line %d +NULL + +Warning: Wrong parameter count for vfprintf() in %s on line %d +NULL +===DONE=== diff --git a/ext/standard/tests/strings/vfprintf_error3.phpt b/ext/standard/tests/strings/vfprintf_error3.phpt new file mode 100644 index 0000000000..3edc068074 --- /dev/null +++ b/ext/standard/tests/strings/vfprintf_error3.phpt @@ -0,0 +1,54 @@ +--TEST-- +Test vfprintf() function : error conditions (wrong argument types) +--CREDITS-- +Felix De Vliegher <felix.devliegher@gmail.com> +--INI-- +precision=14 +--FILE-- +<?php +/* Prototype : int vfprintf(resource stream, string format, array args) + * Description: Output a formatted string into a stream + * Source code: ext/standard/formatted_print.c + * Alias to functions: + */ + +// Open handle +$file = 'vfprintf_test.txt'; +$fp = fopen( $file, "a+" ); + +echo "\n-- Testing vfprintf() function with wrong variable types as argument --\n"; +var_dump( vfprintf( $fp, array( 'foo %d', 'bar %s' ), 3.55552 ) ); + +rewind( $fp ); +var_dump( stream_get_contents( $fp ) ); +ftruncate( $fp, 0 ); +rewind( $fp ); + +var_dump( vfprintf( $fp, "Foo %y fake", "not available" ) ); + +rewind( $fp ); +var_dump( stream_get_contents( $fp ) ); +ftruncate( $fp, 0 ); +rewind( $fp ); + +// Close handle +fclose( $fp ); + +?> +===DONE=== +--CLEAN-- +<?php + +$file = 'vfprintf_text.txt'; +unlink( $file ); + +?> +--EXPECTF-- +-- Testing vfprintf() function with wrong variable types as argument -- + +Notice: Array to string conversion in %s on line %d +int(5) +string(5) "Array" +int(9) +string(9) "Foo fake" +===DONE=== diff --git a/ext/standard/tests/strings/vfprintf_error4.phpt b/ext/standard/tests/strings/vfprintf_error4.phpt new file mode 100644 index 0000000000..e23507a17a --- /dev/null +++ b/ext/standard/tests/strings/vfprintf_error4.phpt @@ -0,0 +1,43 @@ +--TEST-- +Test vfprintf() function : error conditions (various conditions) +--CREDITS-- +Felix De Vliegher <felix.devliegher@gmail.com> +--INI-- +precision=14 +--FILE-- +<?php +/* Prototype : int vfprintf(resource stream, string format, array args) + * Description: Output a formatted string into a stream + * Source code: ext/standard/formatted_print.c + * Alias to functions: + */ + +// Open handle +$file = 'vfprintf_test.txt'; +$fp = fopen( $file, "a+" ); + +echo "\n-- Testing vfprintf() function with other strangeties --\n"; +var_dump( vfprintf( 'foo', 'bar', array( 'baz' ) ) ); +var_dump( vfprintf( $fp, 'Foo %$c-0202Sd', array( 2 ) ) ); + +// Close handle +fclose( $fp ); + +?> +===DONE=== +--CLEAN-- +<?php + +$file = 'vfprintf_text.txt'; +unlink( $file ); + +?> +--EXPECTF-- +-- Testing vfprintf() function with other strangeties -- + +Warning: vfprintf(): supplied argument is not a valid stream resource in %s on line %d +bool(false) + +Warning: vfprintf(): Argument number must be greater than zero in %s on line %d +bool(false) +===DONE=== diff --git a/ext/standard/tests/strings/vfprintf_variation1.phpt b/ext/standard/tests/strings/vfprintf_variation1.phpt new file mode 100644 index 0000000000..316e55ce2e --- /dev/null +++ b/ext/standard/tests/strings/vfprintf_variation1.phpt @@ -0,0 +1,86 @@ +--TEST-- +Test vfprintf() function : variation functionality +--CREDITS-- +Felix De Vliegher <felix.devliegher@gmail.com> +--INI-- +precision=14 +--FILE-- +<?php +/* Prototype : int vfprintf(resource stream, string format, array args) + * Description: Output a formatted string into a stream + * Source code: ext/standard/formatted_print.c + * Alias to functions: + */ + +echo "*** Testing vfprintf() : variation functionality ***\n"; + +// Open handle +$file = 'vfprintf_test.txt'; +$fp = fopen( $file, 'a+' ); + +$funset = fopen( __FILE__, 'r' ); +unset( $funset ); + +class FooClass +{ + public function __toString() + { + return "Object"; + } +} + +// Output facilitating function +function writeAndDump($fp, $format, $args) +{ + ftruncate( $fp, 0 ); + $length = vfprintf( $fp, $format, $args ); + rewind( $fp ); + $content = stream_get_contents( $fp ); + var_dump( $content ); + var_dump( $length ); +} + +// Test vfprintf() +writeAndDump( $fp, "format", null ); +writeAndDump( $fp, "Foo is %d and %s", array( 30, 'bar' ) ); +writeAndDump( $fp, "Foobar testing", array() ); +writeAndDump( $fp, "%s %s %s", array( 'bar', 'bar', 'bar' ) ); +writeAndDump( $fp, "%02d", array( 50 ) ); +writeAndDump( $fp, "", array() ); +writeAndDump( $fp, "Testing %b %d %f %o %s %x %X", array( 9, 6, 2.5502, 24, "foobar", 15, 65 ) ); +@writeAndDump( $funset, "Foo with %s", array( 'string' ) ); +@writeAndDump( new FooClass(), "Foo with %s", array( 'string' ) ); + +// Close handle +fclose( $fp ); + +?> +===DONE=== +--CLEAN-- +<?php + +$file = 'vfprintf_test.txt'; +unlink( $file ); + +?> +--EXPECTF-- +*** Testing vfprintf() : variation functionality *** +string(6) "format" +int(6) +string(17) "Foo is 30 and bar" +int(17) +string(14) "Foobar testing" +int(14) +string(11) "bar bar bar" +int(11) +string(2) "50" +int(2) +string(0) "" +int(0) +string(38) "Testing 1001 6 2.550200 30 foobar f 41" +int(38) +bool(false) +bool(false) +bool(false) +bool(false) +===DONE=== |