mirror of
https://github.com/php/php-src.git
synced 2025-08-18 06:58:55 +02:00
Testcases for vfprintf(), testfest task #133.
This commit is contained in:
parent
ce79e30177
commit
d54cf79cbc
6 changed files with 354 additions and 0 deletions
72
ext/standard/tests/strings/vfprintf_basic.phpt
Normal file
72
ext/standard/tests/strings/vfprintf_basic.phpt
Normal file
|
@ -0,0 +1,72 @@
|
|||
--TEST--
|
||||
Test vfprintf() function : basic functionality
|
||||
--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+" );
|
||||
|
||||
// Set unicode encoding
|
||||
stream_encoding( $fp, 'unicode' );
|
||||
|
||||
// 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 ***
|
||||
unicode(17) "Foo is 30 and bar"
|
||||
int(17)
|
||||
unicode(11) "bar bar bar"
|
||||
int(11)
|
||||
unicode(8) "54 digit"
|
||||
int(8)
|
||||
unicode(3) "1 0"
|
||||
int(3)
|
||||
unicode(5) "A B C"
|
||||
int(5)
|
||||
unicode(35) "1.000000e+3 2.000000E+4 2.000000e+2"
|
||||
int(35)
|
||||
unicode(2) "50"
|
||||
int(2)
|
||||
unicode(35) "Testing 1001 6 2.550200 foobar f 41"
|
||||
int(35)
|
||||
===DONE===
|
47
ext/standard/tests/strings/vfprintf_error1.phpt
Normal file
47
ext/standard/tests/strings/vfprintf_error1.phpt
Normal file
|
@ -0,0 +1,47 @@
|
|||
--TEST--
|
||||
Test vfprintf() function : error conditions (more than expected arguments)
|
||||
--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+" );
|
||||
|
||||
// Set unicode encoding
|
||||
stream_encoding( $fp, 'unicode' );
|
||||
|
||||
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===
|
49
ext/standard/tests/strings/vfprintf_error2.phpt
Normal file
49
ext/standard/tests/strings/vfprintf_error2.phpt
Normal file
|
@ -0,0 +1,49 @@
|
|||
--TEST--
|
||||
Test vfprintf() function : error conditions (less than expected arguments)
|
||||
--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+" );
|
||||
|
||||
// Set unicode encoding
|
||||
stream_encoding( $fp, 'unicode' );
|
||||
|
||||
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===
|
55
ext/standard/tests/strings/vfprintf_error3.phpt
Normal file
55
ext/standard/tests/strings/vfprintf_error3.phpt
Normal file
|
@ -0,0 +1,55 @@
|
|||
--TEST--
|
||||
Test vfprintf() function : error conditions (wrong argument types)
|
||||
--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+" );
|
||||
|
||||
// Set unicode encoding
|
||||
stream_encoding( $fp, 'unicode' );
|
||||
|
||||
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)
|
||||
unicode(5) "Array"
|
||||
int(9)
|
||||
unicode(9) "Foo fake"
|
||||
===DONE===
|
44
ext/standard/tests/strings/vfprintf_error4.phpt
Normal file
44
ext/standard/tests/strings/vfprintf_error4.phpt
Normal file
|
@ -0,0 +1,44 @@
|
|||
--TEST--
|
||||
Test vfprintf() function : error conditions (various conditions)
|
||||
--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+" );
|
||||
|
||||
// Set unicode encoding
|
||||
stream_encoding( $fp, 'unicode' );
|
||||
|
||||
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(): Zero is not a valid argument number in %s on line %d
|
||||
bool(false)
|
||||
===DONE===
|
87
ext/standard/tests/strings/vfprintf_variation1.phpt
Normal file
87
ext/standard/tests/strings/vfprintf_variation1.phpt
Normal file
|
@ -0,0 +1,87 @@
|
|||
--TEST--
|
||||
Test vfprintf() function : variation functionality
|
||||
--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+' );
|
||||
|
||||
// Set unicode encoding
|
||||
stream_encoding( $fp, 'unicode' );
|
||||
|
||||
$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 ***
|
||||
unicode(6) "format"
|
||||
int(6)
|
||||
unicode(17) "Foo is 30 and bar"
|
||||
int(17)
|
||||
unicode(14) "Foobar testing"
|
||||
int(14)
|
||||
unicode(11) "bar bar bar"
|
||||
int(11)
|
||||
unicode(2) "50"
|
||||
int(2)
|
||||
unicode(0) ""
|
||||
int(0)
|
||||
unicode(38) "Testing 1001 6 2.550200 30 foobar f 41"
|
||||
int(38)
|
||||
bool(false)
|
||||
bool(false)
|
||||
bool(false)
|
||||
bool(false)
|
||||
===DONE===
|
Loading…
Add table
Add a link
Reference in a new issue