summaryrefslogtreecommitdiff
path: root/ext/standard/tests/strings
diff options
context:
space:
mode:
authorRaghubansh Kumar <kraghuba@php.net>2008-06-20 04:21:58 +0000
committerRaghubansh Kumar <kraghuba@php.net>2008-06-20 04:21:58 +0000
commit48b0cc41349653c401b6d7a973e0054b20ac4548 (patch)
tree7eee46095ce3a91a2355685e0e31524da0c1dfc9 /ext/standard/tests/strings
parent2bb7df3504fd7fbbd1fa04dee0a8095fe557cc77 (diff)
downloadphp-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.phpt71
-rw-r--r--ext/standard/tests/strings/vfprintf_error1.phpt46
-rw-r--r--ext/standard/tests/strings/vfprintf_error2.phpt48
-rw-r--r--ext/standard/tests/strings/vfprintf_error3.phpt54
-rw-r--r--ext/standard/tests/strings/vfprintf_error4.phpt43
-rw-r--r--ext/standard/tests/strings/vfprintf_variation1.phpt86
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===