]> granicus.if.org Git - php/commitdiff
New vfprintf() tests. Tested on Window, Linux and Linux 64 bit
authorandy wharmby <wharmby@php.net>
Tue, 20 Jan 2009 14:19:40 +0000 (14:19 +0000)
committerandy wharmby <wharmby@php.net>
Tue, 20 Jan 2009 14:19:40 +0000 (14:19 +0000)
42 files changed:
ext/standard/tests/strings/sprintf_variation23.phpt
ext/standard/tests/strings/sprintf_variation36.phpt
ext/standard/tests/strings/sprintf_variation48.phpt
ext/standard/tests/strings/vfprintf_basic1.phpt [new file with mode: 0644]
ext/standard/tests/strings/vfprintf_basic2.phpt [new file with mode: 0644]
ext/standard/tests/strings/vfprintf_basic3.phpt [new file with mode: 0644]
ext/standard/tests/strings/vfprintf_basic4.phpt [new file with mode: 0644]
ext/standard/tests/strings/vfprintf_basic5.phpt [new file with mode: 0644]
ext/standard/tests/strings/vfprintf_basic6.phpt [new file with mode: 0644]
ext/standard/tests/strings/vfprintf_basic7.phpt [new file with mode: 0644]
ext/standard/tests/strings/vfprintf_basic7_64bit.phpt [new file with mode: 0644]
ext/standard/tests/strings/vfprintf_basic8.phpt [new file with mode: 0644]
ext/standard/tests/strings/vfprintf_basic9.phpt [new file with mode: 0644]
ext/standard/tests/strings/vfprintf_variation10.phpt [new file with mode: 0644]
ext/standard/tests/strings/vfprintf_variation11.phpt [new file with mode: 0644]
ext/standard/tests/strings/vfprintf_variation11_64bit.phpt [new file with mode: 0644]
ext/standard/tests/strings/vfprintf_variation12.phpt [new file with mode: 0644]
ext/standard/tests/strings/vfprintf_variation12_64bit.phpt [new file with mode: 0644]
ext/standard/tests/strings/vfprintf_variation13.phpt [new file with mode: 0644]
ext/standard/tests/strings/vfprintf_variation13_64bit.phpt [new file with mode: 0644]
ext/standard/tests/strings/vfprintf_variation14.phpt [new file with mode: 0644]
ext/standard/tests/strings/vfprintf_variation14_64bit.phpt [new file with mode: 0644]
ext/standard/tests/strings/vfprintf_variation15.phpt [new file with mode: 0644]
ext/standard/tests/strings/vfprintf_variation15_64bit.phpt [new file with mode: 0644]
ext/standard/tests/strings/vfprintf_variation16.phpt [new file with mode: 0644]
ext/standard/tests/strings/vfprintf_variation16_64bit.phpt [new file with mode: 0644]
ext/standard/tests/strings/vfprintf_variation17.phpt [new file with mode: 0644]
ext/standard/tests/strings/vfprintf_variation18.phpt [new file with mode: 0644]
ext/standard/tests/strings/vfprintf_variation19.phpt [new file with mode: 0644]
ext/standard/tests/strings/vfprintf_variation19_64bit.phpt [new file with mode: 0644]
ext/standard/tests/strings/vfprintf_variation20.phpt [new file with mode: 0644]
ext/standard/tests/strings/vfprintf_variation21.phpt [new file with mode: 0644]
ext/standard/tests/strings/vfprintf_variation3.phpt [new file with mode: 0644]
ext/standard/tests/strings/vfprintf_variation4.phpt [new file with mode: 0644]
ext/standard/tests/strings/vfprintf_variation4_64bit.phpt [new file with mode: 0644]
ext/standard/tests/strings/vfprintf_variation5.phpt [new file with mode: 0644]
ext/standard/tests/strings/vfprintf_variation6.phpt [new file with mode: 0644]
ext/standard/tests/strings/vfprintf_variation7.phpt [new file with mode: 0644]
ext/standard/tests/strings/vfprintf_variation8.phpt [new file with mode: 0644]
ext/standard/tests/strings/vfprintf_variation9.phpt [new file with mode: 0644]
ext/standard/tests/strings/vsprintf_variation15.phpt
ext/standard/tests/strings/vsprintf_variation8.phpt

index f502e589ddf16e6c295fc3da7f71fa4e7735f7e5..69ebc0129096e6dc09a6cabc253d7ff035500059 100644 (file)
@@ -39,42 +39,40 @@ foreach($resource_values as $resource_value) {
 
 // closing the resources
 fclose($fp);
-fclose($dfp);
+closedir($dfp);
 
-echo "Done";
 ?>
+===DONE===
 --EXPECTF--
 *** Testing sprintf() : char formats with resource values ***
 
 -- Iteration 1 --
-unicode(1) "\ 5"
+unicode(1) "%a"
 unicode(1) "c"
-unicode(1) "\ 5"
+unicode(1) "%a"
 unicode(1) "c"
-unicode(2) " \ 5"
-unicode(2) "\ 5 "
-unicode(2) "   \ 5"
+unicode(2) " %a"
+unicode(2) "%a "
+unicode(2) "   %a"
 unicode(2) "
-\ 5"
-unicode(1) "\ 5"
-unicode(1) "\ 5"
+%a"
+unicode(1) "%a"
+unicode(1) "%a"
 unicode(11) "a-bA-B@#$&]"
 unicode(1) "c"
 
 -- Iteration 2 --
-unicode(1) "\ 6"
+unicode(1) "%a"
+unicode(1) "%a"
+unicode(1) "%a"
 unicode(1) "c"
-unicode(1) "\ 6"
-unicode(1) "c"
-unicode(2) " \ 6"
-unicode(2) "\ 6 "
-unicode(2) "   \ 6"
+unicode(2) " %a"
+unicode(2) "%a "
+unicode(2) "   %a"
 unicode(2) "
-\ 6"
-unicode(1) "\ 6"
-unicode(1) "\ 6"
+%a"
+unicode(1) "%a"
+unicode(1) "%a"
 unicode(11) "a-bA-B@#$&]"
 unicode(1) "c"
-
-Warning: fclose(): %d is not a valid stream resource in %s on line %d
-Done
+===DONE===
index e3947dc556844517594734e40defa1e8f2f2d40d..792c24249668dd5ea8dbc89f809d4dc8a97fa068 100644 (file)
@@ -37,38 +37,42 @@ foreach($resource_values as $resource_value) {
   $count++;
 };
 
-echo "Done";
+// closing the resources
+fclose($fp);
+closedir($dfp);
+
 ?>
+===DONE===
 --EXPECTF--
 *** Testing sprintf() : hexa formats with resource values ***
 
 -- Iteration 1 --
-unicode(%d) "%d"
-unicode(%d) "%dx"
-unicode(%d) "%d"
+unicode(%d) "%a"
+unicode(%d) "%ax"
+unicode(%d) "%a"
 unicode(1) "x"
-unicode(%d) " %d"
-unicode(%d) "%d "
-unicode(%d) "  %d"
+unicode(%d) " %a"
+unicode(%d) "%a "
+unicode(%d) "  %a"
 unicode(%d) "
-%d"
-unicode(%d) "   %d"
-unicode(%d) "                             %d"
+%a"
+unicode(4) "%a"
+unicode(30) "%a"
 unicode(10) "0-9A-Fa-f]"
 unicode(1) "x"
 
 -- Iteration 2 --
-unicode(%d) "%d"
-unicode(%d) "%dx"
-unicode(%d) "%d"
+unicode(%d) "%a"
+unicode(%d) "%ax"
+unicode(%d) "%a"
 unicode(1) "x"
-unicode(%d) " %d"
-unicode(%d) "%d "
-unicode(%d) "  %d"
+unicode(%d) " %a"
+unicode(%d) "%a "
+unicode(%d) "  %a"
 unicode(%d) "
-%d"
-unicode(%d) "   %d"
-unicode(%d) "                             %d"
+%a"
+unicode(4) "%a"
+unicode(30) "%a"
 unicode(10) "0-9A-Fa-f]"
 unicode(1) "x"
-Done
+===DONE===
index 949f448fa2960a16b1235ff80943984a2d15267f..3317ae41ab593087bb6d13cc812d754ec4959993 100644 (file)
@@ -41,9 +41,8 @@ foreach($resource_values as $resource_value) {
 fclose($fp);
 closedir($dfp);
 
-
-echo "Done";
 ?>
+===DONE===
 --EXPECTF--
 *** Testing sprintf() : scientific formats with resource values ***
 
@@ -58,7 +57,7 @@ unicode(%d) " %f"
 unicode(%d) "
 %f"
 unicode(%d) "%f"
-unicode(%d) "%s%f"
+unicode(30) "%s%f"
 unicode(%d) "0-1]"
 unicode(1) "e"
 
@@ -73,7 +72,7 @@ unicode(%d) " %f"
 unicode(%d) "
 %f"
 unicode(%d) "%f"
-unicode(%d) "%s%f"
+unicode(30) "%s%f"
 unicode(%d) "0-1]"
 unicode(1) "e"
-Done
+===DONE===
diff --git a/ext/standard/tests/strings/vfprintf_basic1.phpt b/ext/standard/tests/strings/vfprintf_basic1.phpt
new file mode 100644 (file)
index 0000000..3129d4f
--- /dev/null
@@ -0,0 +1,49 @@
+--TEST--
+Test vfprintf() function : basic functionality - string format
+--FILE--
+<?php
+/* Prototype  : int vfprintf  ( resource $handle  , string $format , array $args  )
+ * Description: Write a formatted string to a stream
+ * Source code: ext/standard/formatted_print.c
+*/
+
+echo "*** Testing vfprintf() : basic functionality - using string format ***\n";
+
+// Initialise all required variables
+$format = "format";
+$format1 = "%s\n";
+$format2 = "%s %s\n";
+$format3 = "%s %s %s\n";
+$arg1 = array("one");
+$arg2 = array("one","two");
+$arg3 = array("one","two","three");
+
+
+/* creating dumping file */
+$data_file = dirname(__FILE__) . '/dump.txt';
+if (!($fp = fopen($data_file, 'wt')))
+   return;
+
+$result = vfprintf($fp, $format1, $arg1);
+var_dump($result);
+$result = vfprintf($fp, $format2, $arg2);
+var_dump($result);
+$result = vfprintf($fp, $format3, $arg3);
+var_dump($result);
+
+fclose($fp);
+print_r(file_get_contents($data_file));
+
+unlink($data_file);
+
+?>
+===DONE===
+--EXPECT--
+*** Testing vfprintf() : basic functionality - using string format ***
+int(4)
+int(8)
+int(14)
+one
+one two
+one two three
+===DONE===
diff --git a/ext/standard/tests/strings/vfprintf_basic2.phpt b/ext/standard/tests/strings/vfprintf_basic2.phpt
new file mode 100644 (file)
index 0000000..a7e0dbc
--- /dev/null
@@ -0,0 +1,51 @@
+--TEST--
+Test vfprintf() function : basic functionality - integer format
+--FILE--
+<?php
+/* Prototype  : int vfprintf  ( resource $handle  , string $format , array $args  )
+ * Description: Write a formatted string to a stream
+ * Source code: ext/standard/formatted_print.c
+*/
+
+/*
+ *  Testing vfprintf() : basic functionality - using integer format
+*/
+
+echo "*** Testing vfprintf() : basic functionality - using integer format ***\n";
+
+// Initialise all required variables
+$format = "format";
+$format1 = "%d";
+$format2 = "%d %d";
+$format3 = "%d %d %d";
+$arg1 = array(111);
+$arg2 = array(111,222);
+$arg3 = array(111,222,333);
+
+/* creating dumping file */
+$data_file = dirname(__FILE__) . '/dump.txt';
+if (!($fp = fopen($data_file, 'wt')))
+   return;
+
+vfprintf($fp, $format1, $arg1);
+fprintf($fp, "\n"); 
+
+vfprintf($fp, $format2, $arg2);
+fprintf($fp, "\n"); 
+
+vfprintf($fp, $format3, $arg3);
+fprintf($fp, "\n"); 
+
+fclose($fp);
+print_r(file_get_contents($data_file));
+
+unlink($data_file);
+
+?>
+===DONE===
+--EXPECT--
+*** Testing vfprintf() : basic functionality - using integer format ***
+111
+111 222
+111 222 333
+===DONE===
diff --git a/ext/standard/tests/strings/vfprintf_basic3.phpt b/ext/standard/tests/strings/vfprintf_basic3.phpt
new file mode 100644 (file)
index 0000000..8c52e57
--- /dev/null
@@ -0,0 +1,63 @@
+--TEST--
+Test vfprintf() function : basic functionality - float format
+--FILE--
+<?php
+/* Prototype  : int vfprintf  ( resource $handle  , string $format , array $args  )
+ * Description: Write a formatted string to a stream
+ * Source code: ext/standard/formatted_print.c
+*/
+
+echo "*** Testing vfprintf() : basic functionality - using float format ***\n";
+
+// Initialise all required variables
+
+$format = "format";
+$format1 = "%f";
+$format2 = "%f %f";
+$format3 = "%f %f %f";
+
+$format11 = "%F";
+$format22 = "%F %F";
+$format33 = "%F %F %F";
+$arg1 = array(11.11);
+$arg2 = array(11.11,22.22);
+$arg3 = array(11.11,22.22,33.33);
+
+/* creating dumping file */
+$data_file = dirname(__FILE__) . '/dump.txt';
+if (!($fp = fopen($data_file, 'wt')))
+   return;
+
+vfprintf($fp, $format1,$arg1);
+fprintf($fp, "\n"); 
+
+vfprintf($fp,$format11,$arg1);
+fprintf($fp, "\n"); 
+
+vfprintf($fp,$format2,$arg2);
+fprintf($fp, "\n"); 
+
+vfprintf($fp,$format22,$arg2);
+fprintf($fp, "\n"); 
+
+vfprintf($fp,$format3,$arg3);
+fprintf($fp, "\n"); 
+
+vfprintf($fp, $format33,$arg3);
+fprintf($fp, "\n"); 
+
+fclose($fp);
+print_r(file_get_contents($data_file));
+
+unlink($data_file);
+?>
+===DONE===
+--EXPECT--
+*** Testing vfprintf() : basic functionality - using float format ***
+11.110000
+11.110000
+11.110000 22.220000
+11.110000 22.220000
+11.110000 22.220000 33.330000
+11.110000 22.220000 33.330000
+===DONE===
diff --git a/ext/standard/tests/strings/vfprintf_basic4.phpt b/ext/standard/tests/strings/vfprintf_basic4.phpt
new file mode 100644 (file)
index 0000000..76b3a04
--- /dev/null
@@ -0,0 +1,46 @@
+--TEST--
+Test vfprintf() function : basic functionality - bool format
+--FILE--
+<?php
+/* Prototype  : int vfprintf  ( resource $handle  , string $format , array $args  )
+ * Description: Write a formatted string to a stream
+ * Source code: ext/standard/formatted_print.c
+*/
+
+echo "*** Testing vfprintf() : basic functionality - using bool format ***\n";
+
+// Initialise all required variables
+$format = "format";
+$format1 = "%b";
+$format2 = "%b %b";
+$format3 = "%b %b %b";
+$arg1 = array(TRUE);
+$arg2 = array(TRUE,FALSE);
+$arg3 = array(TRUE,FALSE,TRUE);
+
+/* creating dumping file */
+$data_file = dirname(__FILE__) . '/dump.txt';
+if (!($fp = fopen($data_file, 'wt')))
+   return;
+
+vfprintf($fp, $format1,$arg1);
+fprintf($fp, "\n");
+
+vfprintf($fp, $format2,$arg2);
+fprintf($fp, "\n");
+
+vfprintf($fp, $format3,$arg3);
+fprintf($fp, "\n");
+
+fclose($fp);
+print_r(file_get_contents($data_file));
+
+unlink($data_file);
+?>
+===DONE===
+--EXPECT--
+*** Testing vfprintf() : basic functionality - using bool format ***
+1
+1 0
+1 0 1
+===DONE===
diff --git a/ext/standard/tests/strings/vfprintf_basic5.phpt b/ext/standard/tests/strings/vfprintf_basic5.phpt
new file mode 100644 (file)
index 0000000..1acb7eb
--- /dev/null
@@ -0,0 +1,46 @@
+--TEST--
+Test vfprintf() function : basic functionality - char format
+--FILE--
+<?php
+/* Prototype  : int vfprintf  ( resource $handle  , string $format , array $args  )
+ * Description: Write a formatted string to a stream
+ * Source code: ext/standard/formatted_print.c
+*/
+
+echo "*** Testing vfprintf() : basic functionality - using char format ***\n";
+
+// Initialise all required variables
+$format = "format";
+$format1 = "%c";
+$format2 = "%c %c";
+$format3 = "%c %c %c";
+$arg1 = array(65);
+$arg2 = array(65,66);
+$arg3 = array(65,66,67);
+
+/* creating dumping file */
+$data_file = dirname(__FILE__) . '/dump.txt';
+if (!($fp = fopen($data_file, 'wt')))
+   return;
+   
+vfprintf($fp, $format1,$arg1);
+fprintf($fp, "\n");
+
+vfprintf($fp, $format2,$arg2);
+fprintf($fp, "\n");
+
+vfprintf($fp, $format3,$arg3);
+fprintf($fp, "\n");
+
+fclose($fp);
+print_r(file_get_contents($data_file));
+
+unlink($data_file);
+?>
+===DONE===
+--EXPECT--
+*** Testing vfprintf() : basic functionality - using char format ***
+A
+A B
+A B C
+===DONE===
diff --git a/ext/standard/tests/strings/vfprintf_basic6.phpt b/ext/standard/tests/strings/vfprintf_basic6.phpt
new file mode 100644 (file)
index 0000000..be28226
--- /dev/null
@@ -0,0 +1,48 @@
+--TEST--
+Test vfprintf() function : basic functionality - exponential format
+--FILE--
+<?php
+/* Prototype  : int vfprintf  ( resource $handle  , string $format , array $args  )
+ * Description: Write a formatted string to a stream
+ * Source code: ext/standard/formatted_print.c
+*/
+
+
+echo "*** Testing vfprintf() : basic functionality - using exponential format ***\n";
+
+// Initialise all required variables
+$format = "format";
+$format1 = "%e";
+$format2 = "%e %e";
+$format3 = "%e %e %e";
+$arg1 = array(1000);
+$arg2 = array(1000,2000);
+$arg3 = array(1000,2000,3000);
+
+/* creating dumping file */
+$data_file = dirname(__FILE__) . '/dump.txt';
+if (!($fp = fopen($data_file, 'wt')))
+   return;
+   
+vfprintf($fp, $format1,$arg1);
+fprintf($fp, "\n");
+
+vfprintf($fp, $format2,$arg2);
+fprintf($fp, "\n");
+
+vfprintf($fp, $format3,$arg3);
+fprintf($fp, "\n");
+
+fclose($fp);
+print_r(file_get_contents($data_file));
+
+unlink($data_file);
+
+?>
+===DONE===
+--EXPECT--
+*** Testing vfprintf() : basic functionality - using exponential format ***
+1.000000e+3
+1.000000e+3 2.000000e+3
+1.000000e+3 2.000000e+3 3.000000e+3
+===DONE===
diff --git a/ext/standard/tests/strings/vfprintf_basic7.phpt b/ext/standard/tests/strings/vfprintf_basic7.phpt
new file mode 100644 (file)
index 0000000..740fc17
--- /dev/null
@@ -0,0 +1,51 @@
+--TEST--
+Test vfprintf() function : basic functionality - unsigned format
+--SKIPIF--
+<?php
+if (PHP_INT_SIZE != 4) die("skip this test is for 32bit platform only");
+?>
+--FILE--
+<?php
+/* Prototype  : int vfprintf  ( resource $handle  , string $format , array $args  )
+ * Description: Write a formatted string to a stream
+ * Source code: ext/standard/formatted_print.c
+*/
+
+echo "*** Testing vfprintf() : basic functionality - using unsigned format ***\n";
+
+// Initialise all required variables
+$format = "format";
+$format1 = "%u";
+$format2 = "%u %u";
+$format3 = "%u %u %u";
+$arg1 = array(-1111);
+$arg2 = array(-1111,-1234567);
+$arg3 = array(-1111,-1234567,-2345432);
+
+/* creating dumping file */
+$data_file = dirname(__FILE__) . '/dump.txt';
+if (!($fp = fopen($data_file, 'wt')))
+   return;
+   
+vfprintf($fp, $format1,$arg1);
+fprintf($fp, "\n");
+
+vfprintf($fp, $format2,$arg2);
+fprintf($fp, "\n");
+
+vfprintf($fp, $format3,$arg3);
+fprintf($fp, "\n");
+
+fclose($fp);
+print_r(file_get_contents($data_file));
+
+unlink($data_file);
+
+?>
+===DONE===
+--EXPECT--
+*** Testing vfprintf() : basic functionality - using unsigned format ***
+4294966185
+4294966185 4293732729
+4294966185 4293732729 4292621864
+===DONE===
diff --git a/ext/standard/tests/strings/vfprintf_basic7_64bit.phpt b/ext/standard/tests/strings/vfprintf_basic7_64bit.phpt
new file mode 100644 (file)
index 0000000..77fae2c
--- /dev/null
@@ -0,0 +1,51 @@
+--TEST--
+Test vfprintf() function : basic functionality - unsigned format
+--SKIPIF--
+<?php
+if (PHP_INT_SIZE != 8) die("skip this test is for 64bit platform only");
+?>
+--FILE--
+<?php
+/* Prototype  : int vfprintf  ( resource $handle  , string $format , array $args  )
+ * Description: Write a formatted string to a stream
+ * Source code: ext/standard/formatted_print.c
+*/
+
+echo "*** Testing vfprintf() : basic functionality - using unsigned format ***\n";
+
+// Initialise all required variables
+$format = "format";
+$format1 = "%u";
+$format2 = "%u %u";
+$format3 = "%u %u %u";
+$arg1 = array(-1111);
+$arg2 = array(-1111,-1234567);
+$arg3 = array(-1111,-1234567,-2345432);
+
+/* creating dumping file */
+$data_file = dirname(__FILE__) . '/dump.txt';
+if (!($fp = fopen($data_file, 'wt')))
+   return;
+   
+vfprintf($fp, $format1,$arg1);
+fprintf($fp, "\n");
+
+vfprintf($fp, $format2,$arg2);
+fprintf($fp, "\n");
+
+vfprintf($fp, $format3,$arg3);
+fprintf($fp, "\n");
+
+fclose($fp);
+print_r(file_get_contents($data_file));
+
+unlink($data_file);
+
+?>
+===DONE===
+--EXPECT--
+*** Testing vfprintf() : basic functionality - using unsigned format ***
+18446744073709550505
+18446744073709550505 18446744073708317049
+18446744073709550505 18446744073708317049 18446744073707206184
+===DONE===
diff --git a/ext/standard/tests/strings/vfprintf_basic8.phpt b/ext/standard/tests/strings/vfprintf_basic8.phpt
new file mode 100644 (file)
index 0000000..6fe2151
--- /dev/null
@@ -0,0 +1,46 @@
+--TEST--
+Test vfprintf() function : basic functionality - octal format
+--FILE--
+<?php
+/* Prototype  : int vfprintf  ( resource $handle  , string $format , array $args  )
+ * Description: Write a formatted string to a stream
+ * Source code: ext/standard/formatted_print.c
+*/
+
+echo "*** Testing vfprintf() : basic functionality - using octal format ***\n";
+
+// Initialise all required variables
+$format = "format";
+$format1 = "%o";
+$format2 = "%o %o";
+$format3 = "%o %o %o";
+$arg1 = array(021);
+$arg2 = array(021,0347);
+$arg3 = array(021,0347,05678);
+
+/* creating dumping file */
+$data_file = dirname(__FILE__) . '/dump.txt';
+if (!($fp = fopen($data_file, 'wt')))
+   return;
+   
+vfprintf($fp, $format1,$arg1);
+fprintf($fp, "\n");
+
+vfprintf($fp, $format2,$arg2);
+fprintf($fp, "\n");
+
+vfprintf($fp, $format3,$arg3);
+fprintf($fp, "\n");
+
+fclose($fp);
+print_r(file_get_contents($data_file));
+
+unlink($data_file);
+?>
+===DONE===
+--EXPECT--
+*** Testing vfprintf() : basic functionality - using octal format ***
+21
+21 347
+21 347 567
+===DONE===
diff --git a/ext/standard/tests/strings/vfprintf_basic9.phpt b/ext/standard/tests/strings/vfprintf_basic9.phpt
new file mode 100644 (file)
index 0000000..8294c84
--- /dev/null
@@ -0,0 +1,60 @@
+--TEST--
+Test vfprintf) function : basic functionality - hexadecimal format
+--FILE--
+<?php
+/* Prototype  : int vfprintf  ( resource $handle  , string $format , array $args  )
+ * Description: Write a formatted string to a stream
+ * Source code: ext/standard/formatted_print.c
+*/
+
+echo "*** Testing vfprintf) : basic functionality - using hexadecimal format ***\n";
+
+// Initialising different format strings
+$format = "format";
+$format1 = "%x";
+$format2 = "%x %x";
+$format3 = "%x %x %x";
+
+$format11 = "%X";
+$format22 = "%X %X";
+$format33 = "%X %X %X";
+
+$arg1 = array(11);
+$arg2 = array(11,132);
+$arg3 = array(11,132,177);
+
+/* creating dumping file */
+$data_file = dirname(__FILE__) . '/dump.txt';
+if (!($fp = fopen($data_file, 'wt')))
+   return;
+
+vfprintf($fp, $format1, $arg1);
+fprintf($fp, "\n");
+vfprintf($fp, $format11, $arg1);
+fprintf($fp, "\n");
+
+vfprintf($fp, $format2, $arg2);
+fprintf($fp, "\n");
+vfprintf($fp, $format22, $arg2);
+fprintf($fp, "\n");
+
+vfprintf($fp, $format3, $arg3);
+fprintf($fp, "\n");
+vfprintf($fp, $format33, $arg3);
+fprintf($fp, "\n");
+
+fclose($fp);
+print_r(file_get_contents($data_file));
+
+unlink($data_file);
+?>
+===DONE===
+--EXPECT--
+*** Testing vfprintf) : basic functionality - using hexadecimal format ***
+b
+B
+b 84
+B 84
+b 84 b1
+B 84 B1
+===DONE===
diff --git a/ext/standard/tests/strings/vfprintf_variation10.phpt b/ext/standard/tests/strings/vfprintf_variation10.phpt
new file mode 100644 (file)
index 0000000..84d739d
--- /dev/null
@@ -0,0 +1,121 @@
+--TEST--
+Test vfprintf() function : usage variations - char formats with non-char values
+--FILE--
+<?php
+/* Prototype  : int vfprintf  ( resource $handle  , string $format , array $args  )
+ * Description: Write a formatted string to a stream
+ * Source code: ext/standard/formatted_print.c
+*/
+
+/*
+ * Test vfprintf() when different char formats and non-char values are passed to 
+ * the '$format' and '$args' arguments of the function
+*/
+
+echo "*** Testing vfprintf() : char formats and non-char values ***\n";
+
+// defining an array of various char formats
+$formats = 
+  '%c %+c %-c 
+   %lc %Lc %4c %-4c
+   %10.4c %-10.4c %04c %04.4c
+   %\'10c %\'10c %\'$10c %\'_10c
+   %3$c %4$c %1$c %2$c';
+
+// Arrays of non char values for the format defined in $format. 
+// Each sub array contains non char values which correspond to each format in $format
+$args_array = array(
+
+  // array of float values
+  array(65.8, -65.8, +66.8,
+        93.2, -93.2, 126.8, -126.49,
+        35.44, -35.68, 32.99, -32.00,
+        -61.51, 61.51, 50.49, -54.50,
+        83.33, +84.44, 81.11, 82.22),
+
+  // array of int values
+  array(65, -65, +66,
+        169, -169, 126, -126,
+        35, -35, 32, -32,
+        -61, 61, 50, -54,
+        83, +84, 81, 82),
+
+  // array of strings
+  array(" ", ' ', 'hello',
+        '123hello', "123hello", '-123hello', '+123hello',
+        "\12345678hello", "-\12345678hello", '0123456hello', 'h123456ello',
+        "1234hello", "hello\0world", "NULL", "true",
+        "3", "4", '1', '2'),
+
+  // different arrays
+  array( array(0), array(1, 2), array(-1, -1),
+         array("123"), array('123'), array('-123'), array("-123"),
+         array(true), array(false), array(TRUE), array(FALSE),
+         array("123hello"), array("1", "2"), array('123hello'), array(12=>"12twelve"),
+         array("3"), array("4"), array("1"), array("2") ),
+
+  // array of boolean data
+  array( true, TRUE, false,
+         TRUE, 0, FALSE, 1,
+         true, false, TRUE, FALSE,
+         0, 1, 1, 0,
+         1, TRUE, 0, FALSE),
+  
+);
+
+/* creating dumping file */
+$data_file = dirname(__FILE__) . '/dump.txt';
+if (!($fp = fopen($data_file, 'wt')))
+   return;
+
+// looping to test vfprintf() with different char formats from the above $format array
+// and with non-char values from the above $args_array array
+$counter = 1;
+foreach($args_array as $args) {
+  fprintf($fp, "\n-- Iteration %d --\n",$counter);
+  vfprintf($fp, $formats, $args);
+  $counter++;
+}
+
+fclose($fp);
+print_r(file_get_contents($data_file));
+echo "\n";
+
+unlink($data_file);
+
+?>
+===DONE===
+--EXPECTF--
+*** Testing vfprintf() : char formats and non-char values ***
+
+-- Iteration 1 --
+A %s B 
+   ] c %s %s
+   # %s   %s
+   %s = 2 %s
+   B ] A %s
+-- Iteration 2 --
+A %s B 
+   %s c %s %s
+   # %s   %s
+   %s = 2 %s
+   B %s A %s
+-- Iteration 3 --
+%c %c %c 
+   { c %s {
+   %c %c @ %c
+   %s %c %c %c
+   %c { %c %c
+-- Iteration 4 --
+%c %c %c 
+   %c c %c %c
+   %c %c %c %c
+   %c %c %c %c
+   %c %c %c %c
+-- Iteration 5 --
+%c %c %c 
+   %c c %c %c
+   %c %c %c %c
+   %c %c %c %c
+   %c %c %c %c
+===DONE===
diff --git a/ext/standard/tests/strings/vfprintf_variation11.phpt b/ext/standard/tests/strings/vfprintf_variation11.phpt
new file mode 100644 (file)
index 0000000..45f1f61
--- /dev/null
@@ -0,0 +1,88 @@
+--TEST--
+Test vfprintf() function : usage variations - octal formats with octal values
+--SKIPIF--
+<?php
+if (PHP_INT_SIZE != 4) die("skip this test is for 32bit platform only");
+?>
+--FILE--
+<?php
+/* Prototype  : int vfprintf  ( resource $handle  , string $format , array $args  )
+ * Description: Write a formatted string to a stream
+ * Source code: ext/standard/formatted_print.c
+*/
+
+/*
+ * Test vfprintf() when different octal formats and octal values are passed to
+ * the '$format' and '$args' arguments of the function
+*/
+
+echo "*** Testing vfprintf() : 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)
+
+);
+
+/* creating dumping file */
+$data_file = dirname(__FILE__) . '/dump.txt';
+if (!($fp = fopen($data_file, 'wt')))
+   return;
+
+// looping to test vfprintf() 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) {
+  fprintf($fp, "\n-- Iteration %d --\n",$counter);
+  vfprintf($fp, $format, $args_array[$counter-1]);
+  $counter++;
+}
+
+fclose($fp);
+print_r(file_get_contents($data_file));
+echo "\n";
+
+unlink($data_file);
+
+?>
+===DONE===
+--EXPECT--
+*** Testing vfprintf() : octal formats with octal values ***
+
+-- Iteration 1 --
+0
+-- Iteration 2 --
+37777777777 1 
+-- Iteration 3 --
+20000000000 o, 17777777777 20000000001
+-- Iteration 4 --
+                      37776543211 0000
+-- Iteration 5 --
+111 2222 37777444445 37733333334
+-- Iteration 6 --
+11073 7653 123 12
+-- Iteration 7 --
+% %o o
+-- Iteration 8 --
+1 2 3 4
+===DONE===
diff --git a/ext/standard/tests/strings/vfprintf_variation11_64bit.phpt b/ext/standard/tests/strings/vfprintf_variation11_64bit.phpt
new file mode 100644 (file)
index 0000000..d654984
--- /dev/null
@@ -0,0 +1,88 @@
+--TEST--
+Test vfprintf() 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  : int vfprintf  ( resource $handle  , string $format , array $args  )
+ * Description: Write a formatted string to a stream
+ * Source code: ext/standard/formatted_print.c
+*/
+
+/*
+ * Test vfprintf() when different octal formats and octal values are passed to
+ * the '$format' and '$args' arguments of the function
+*/
+
+echo "*** Testing vfprintf() : 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)
+
+);
+
+/* creating dumping file */
+$data_file = dirname(__FILE__) . '/dump.txt';
+if (!($fp = fopen($data_file, 'wt')))
+   return;
+
+// looping to test vfprintf() 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) {
+  fprintf($fp, "\n-- Iteration %d --\n",$counter);
+  vfprintf($fp, $format, $args_array[$counter-1]);
+  $counter++;
+}
+
+fclose($fp);
+print_r(file_get_contents($data_file));
+echo "\n";
+
+unlink($data_file);
+
+?>
+===DONE===
+--EXPECT--
+*** Testing vfprintf() : octal formats with octal values ***
+
+-- Iteration 1 --
+0
+-- Iteration 2 --
+1777777777777777777777 1 
+-- Iteration 3 --
+1777777777760000000000 o, 17777777777 1777777777760000000001
+-- Iteration 4 --
+                      1777777777777776543211 0000
+-- Iteration 5 --
+111 2222 1777777777777777444445 1777777777777733333334
+-- Iteration 6 --
+11073 7653 123 12
+-- Iteration 7 --
+% %o o
+-- Iteration 8 --
+1 2 3 4
+===DONE===
diff --git a/ext/standard/tests/strings/vfprintf_variation12.phpt b/ext/standard/tests/strings/vfprintf_variation12.phpt
new file mode 100644 (file)
index 0000000..e95fd5b
--- /dev/null
@@ -0,0 +1,125 @@
+--TEST--
+Test vfprintf() function : usage variations - octal formats with non-octal values
+--SKIPIF--
+<?php
+if (PHP_INT_SIZE != 4) die("skip this test is for 32bit platform only");
+?>
+--FILE--
+<?php
+/* Prototype  : int vfprintf  ( resource $handle  , string $format , array $args  )
+ * Description: Write a formatted string to a stream
+ * Source code: ext/standard/formatted_print.c
+*/
+
+/*
+ * Test vfprintf() when different octal formats and non-octal values are passed to
+ * the '$format' and '$args' arguments of the function
+*/
+
+echo "*** Testing vfprintf() : octal formats and non-octal values ***\n";
+
+// defining array of octal formats
+$formats = 
+  '%o %+o %-o 
+   %lo %Lo %4o %-4o
+   %10.4o %-10.4o %.4o 
+   %\'#2o %\'2o %\'$2o %\'_2o
+   %3$o %4$o %1$o %2$o';
+
+// Arrays of non octal values for the format defined in $format.
+// Each sub array contains non octal values which correspond to each format in $format
+$args_array = array(
+
+  // array of float values
+  array(2.2, .2, 10.2,
+        123456.234, 123456.234, -1234.6789, +1234.6789,
+        2e10, +2e12, 22e+12,
+        12345.780, 12.000000011111, -12.00000111111, -123456.234,
+        3.33, +4.44, 1.11,-2.22 ),
+
+  // array of int values
+  array(2, -2, +2,
+        123456, 123456234, -12346789, +12346789,
+        123200, +20000, 22212,
+        12345780, 1211111, -12111111, -12345634,
+        3, +4, 1,-2 ),
+
+  // array of strings
+  array(" ", ' ', 'hello',
+        '123hello', "123hello", '-123hello', '+123hello',
+        "\12345678hello", "-\12345678hello", 'h123456ello',
+        "1234hello", "hello\0world", "NULL", "true",
+        "3", "4", '1', '2'),
+
+  // different arrays
+  array( array(0), array(1, 2), array(-1, -1),
+         array("123"), array('123'), array('-123'), array("-123"),
+         array(true), array(false), array(FALSE),
+         array("123hello"), array("1", "2"), array('123hello'), array(12=>"12twelve"),
+         array("3"), array("4"), array("1"), array("2") ),
+
+  // array of boolean data
+  array( true, TRUE, false,
+         TRUE, 0, FALSE, 1,
+         true, false, TRUE,
+         0, 1, 1, 0,
+         1, TRUE, 0, FALSE),
+  
+);
+
+/* creating dumping file */
+$data_file = dirname(__FILE__) . '/dump.txt';
+if (!($fp = fopen($data_file, 'wt')))
+   return;
+
+// looping to test vfprintf() with different octal formats from the above $format array
+// and with non-octal values from the above $args_array array
+$counter = 1;
+foreach($args_array as $args) {
+  fprintf($fp, "\n-- Iteration %d --\n",$counter);
+  vfprintf($fp, $formats, $args);
+  $counter++;
+}
+
+fclose($fp);
+print_r(file_get_contents($data_file));
+echo "\n";
+
+unlink($data_file);
+?>
+===DONE===
+--EXPECT--
+*** Testing vfprintf() : octal formats and non-octal values ***
+
+-- Iteration 1 --
+2 0 12 
+   361100 o 37777775456 2322
+                          
+   30071 14 37777777764 37777416700
+   12 361100 2 0
+-- Iteration 2 --
+2 37777777776 2 
+   361100 o 37720715133 57062645
+                          
+   57060664 4475347 37721631371 37720717336
+   2 361100 2 37777777776
+-- Iteration 3 --
+0 0 0 
+   173 o 37777777605 173 
+                          
+   2322 0 $0 _0
+   0 173 0 0
+-- Iteration 4 --
+1 1 1 
+   1 o    1 1   
+                          
+   #1 1 $1 _1
+   1 1 1 1
+-- Iteration 5 --
+1 1 0 
+   1 o    0 1   
+                          
+   #0 1 $1 _0
+   0 1 1 1
+===DONE===
diff --git a/ext/standard/tests/strings/vfprintf_variation12_64bit.phpt b/ext/standard/tests/strings/vfprintf_variation12_64bit.phpt
new file mode 100644 (file)
index 0000000..a1e57bc
--- /dev/null
@@ -0,0 +1,125 @@
+--TEST--
+Test vfprintf() function : usage variations - octal formats with non-octal values
+--SKIPIF--
+<?php
+if (PHP_INT_SIZE != 8) die("skip this test is for 64bit platform only");
+?>
+--FILE--
+<?php
+/* Prototype  : int vfprintf  ( resource $handle  , string $format , array $args  )
+ * Description: Write a formatted string to a stream
+ * Source code: ext/standard/formatted_print.c
+*/
+
+/*
+ * Test vfprintf() when different octal formats and non-octal values are passed to
+ * the '$format' and '$args' arguments of the function
+*/
+
+echo "*** Testing vfprintf() : octal formats and non-octal values ***\n";
+
+// defining array of octal formats
+$formats = 
+  '%o %+o %-o 
+   %lo %Lo %4o %-4o
+   %10.4o %-10.4o %.4o 
+   %\'#2o %\'2o %\'$2o %\'_2o
+   %3$o %4$o %1$o %2$o';
+
+// Arrays of non octal values for the format defined in $format.
+// Each sub array contains non octal values which correspond to each format in $format
+$args_array = array(
+
+  // array of float values
+  array(2.2, .2, 10.2,
+        123456.234, 123456.234, -1234.6789, +1234.6789,
+        2e10, +2e12, 22e+12,
+        12345.780, 12.000000011111, -12.00000111111, -123456.234,
+        3.33, +4.44, 1.11,-2.22 ),
+
+  // array of int values
+  array(2, -2, +2,
+        123456, 123456234, -12346789, +12346789,
+        123200, +20000, 22212,
+        12345780, 1211111, -12111111, -12345634,
+        3, +4, 1,-2 ),
+
+  // array of strings
+  array(" ", ' ', 'hello',
+        '123hello', "123hello", '-123hello', '+123hello',
+        "\12345678hello", "-\12345678hello", 'h123456ello',
+        "1234hello", "hello\0world", "NULL", "true",
+        "3", "4", '1', '2'),
+
+  // different arrays
+  array( array(0), array(1, 2), array(-1, -1),
+         array("123"), array('123'), array('-123'), array("-123"),
+         array(true), array(false), array(FALSE),
+         array("123hello"), array("1", "2"), array('123hello'), array(12=>"12twelve"),
+         array("3"), array("4"), array("1"), array("2") ),
+
+  // array of boolean data
+  array( true, TRUE, false,
+         TRUE, 0, FALSE, 1,
+         true, false, TRUE,
+         0, 1, 1, 0,
+         1, TRUE, 0, FALSE),
+  
+);
+
+/* creating dumping file */
+$data_file = dirname(__FILE__) . '/dump.txt';
+if (!($fp = fopen($data_file, 'wt')))
+   return;
+
+// looping to test vfprintf() with different octal formats from the above $format array
+// and with non-octal values from the above $args_array array
+$counter = 1;
+foreach($args_array as $args) {
+  fprintf($fp, "\n-- Iteration %d --\n",$counter);
+  vfprintf($fp, $formats, $args);
+  $counter++;
+}
+
+fclose($fp);
+print_r(file_get_contents($data_file));
+echo "\n";
+
+unlink($data_file);
+?>
+===DONE===
+--EXPECT--
+*** Testing vfprintf() : octal formats and non-octal values ***
+
+-- Iteration 1 --
+2 0 12 
+   361100 o 1777777777777777775456 2322
+                          
+   30071 14 1777777777777777777764 1777777777777777416700
+   12 361100 2 0
+-- Iteration 2 --
+2 1777777777777777777776 2 
+   361100 o 1777777777777720715133 57062645
+                          
+   57060664 4475347 1777777777777721631371 1777777777777720717336
+   2 361100 2 1777777777777777777776
+-- Iteration 3 --
+0 0 0 
+   173 o 1777777777777777777605 173 
+                          
+   2322 0 $0 _0
+   0 173 0 0
+-- Iteration 4 --
+1 1 1 
+   1 o    1 1   
+                          
+   #1 1 $1 _1
+   1 1 1 1
+-- Iteration 5 --
+1 1 0 
+   1 o    0 1   
+                          
+   #0 1 $1 _0
+   0 1 1 1
+===DONE===
diff --git a/ext/standard/tests/strings/vfprintf_variation13.phpt b/ext/standard/tests/strings/vfprintf_variation13.phpt
new file mode 100644 (file)
index 0000000..245feb5
--- /dev/null
@@ -0,0 +1,88 @@
+--TEST--
+Test vfprintf() function : usage variations - hexa formats with hexa values
+--SKIPIF--
+<?php
+if (PHP_INT_SIZE != 4) die("skip this test is for 32bit platform only");
+?>
+--FILE--
+<?php
+/* Prototype  : int vfprintf  ( resource $handle  , string $format , array $args  )
+ * Description: Write a formatted string to a stream
+ * Source code: ext/standard/formatted_print.c
+*/
+
+/*
+ * Test vfprintf() when different hexa formats and hexa values are passed to
+ * the '$format' and '$args' arguments of the function
+*/
+
+echo "*** Testing vfprintf() : hexa formats with hexa values ***\n";
+
+// defining array of different hexa formats
+$formats = array(
+  "%x",
+  "%+x %-x %X",
+  "%lx %Lx, %4x %-4x",
+  "%10.4x %-10.4x %04x %04.4x",
+  "%'#2x %'2x %'$2x %'_2x",
+  "%x %x %x %x",
+  "% %%x x%",
+  '%3$x %4$x %1$x %2$x'
+);
+
+// Arrays of hexa values for the format defined in $format.
+// Each sub array contains hexa values which correspond to each format string in $format
+$args_array = array(
+  array(0x0),
+  array(-0x1, 0x1, +0x22),
+  array(0x7FFFFFFF, -0x7fffffff, +0x7000000, -0x80000000),
+  array(123456, 12345678, -1234567, 1234567),
+  array(1, 0x2222, 0333333, -0x44444444),
+  array(0x123b, 0xfAb, "0xaxz", 01293),
+  array(0x1234, 0x34, 0x2ff),
+  array(0x3, 0x4, 0x1, 0x2)
+
+);
+
+/* creating dumping file */
+$data_file = dirname(__FILE__) . '/dump.txt';
+if (!($fp = fopen($data_file, 'wt')))
+   return;
+
+// looping to test vfprintf() with different char octal from the above $format array
+// and with octal values from the above $args_array array
+$counter = 1;
+foreach($formats as $format) {
+  fprintf($fp, "\n-- Iteration %d --\n",$counter);
+  vfprintf($fp, $format, $args_array[$counter-1]);
+  $counter++;
+}
+
+fclose($fp);
+print_r(file_get_contents($data_file));
+echo "\n";
+
+unlink($data_file);
+
+?>
+===DONE===
+--EXPECT--
+*** Testing vfprintf() : hexa formats with hexa values ***
+
+-- Iteration 1 --
+0
+-- Iteration 2 --
+ffffffff 1 22
+-- Iteration 3 --
+7fffffff x, 7000000 80000000
+-- Iteration 4 --
+                      ffed2979 0000
+-- Iteration 5 --
+#1 2222 1b6db bbbbbbbc
+-- Iteration 6 --
+123b fab 0 a
+-- Iteration 7 --
+%34 x
+-- Iteration 8 --
+1 2 3 4
+===DONE===
diff --git a/ext/standard/tests/strings/vfprintf_variation13_64bit.phpt b/ext/standard/tests/strings/vfprintf_variation13_64bit.phpt
new file mode 100644 (file)
index 0000000..bf6fcb5
--- /dev/null
@@ -0,0 +1,88 @@
+--TEST--
+Test vfprintf() function : usage variations - hexa formats with hexa values
+--SKIPIF--
+<?php
+if (PHP_INT_SIZE != 8) die("skip this test is for 64bit platform only");
+?>
+--FILE--
+<?php
+/* Prototype  : int vfprintf  ( resource $handle  , string $format , array $args  )
+ * Description: Write a formatted string to a stream
+ * Source code: ext/standard/formatted_print.c
+*/
+
+/*
+ * Test vfprintf() when different hexa formats and hexa values are passed to
+ * the '$format' and '$args' arguments of the function
+*/
+
+echo "*** Testing vfprintf() : hexa formats with hexa values ***\n";
+
+// defining array of different hexa formats
+$formats = array(
+  "%x",
+  "%+x %-x %X",
+  "%lx %Lx, %4x %-4x",
+  "%10.4x %-10.4x %04x %04.4x",
+  "%'#2x %'2x %'$2x %'_2x",
+  "%x %x %x %x",
+  "% %%x x%",
+  '%3$x %4$x %1$x %2$x'
+);
+
+// Arrays of hexa values for the format defined in $format.
+// Each sub array contains hexa values which correspond to each format string in $format
+$args_array = array(
+  array(0x0),
+  array(-0x1, 0x1, +0x22),
+  array(0x7FFFFFFF, -0x7fffffff, +0x7000000, -0x80000000),
+  array(123456, 12345678, -1234567, 1234567),
+  array(1, 0x2222, 0333333, -0x44444444),
+  array(0x123b, 0xfAb, "0xaxz", 01293),
+  array(0x1234, 0x34, 0x2ff),
+  array(0x3, 0x4, 0x1, 0x2)
+
+);
+
+/* creating dumping file */
+$data_file = dirname(__FILE__) . '/dump.txt';
+if (!($fp = fopen($data_file, 'wt')))
+   return;
+
+// looping to test vfprintf() with different char octal from the above $format array
+// and with octal values from the above $args_array array
+$counter = 1;
+foreach($formats as $format) {
+  fprintf($fp, "\n-- Iteration %d --\n",$counter);
+  vfprintf($fp, $format, $args_array[$counter-1]);
+  $counter++;
+}
+
+fclose($fp);
+print_r(file_get_contents($data_file));
+echo "\n";
+
+unlink($data_file);
+
+?>
+===DONE===
+--EXPECT--
+*** Testing vfprintf() : hexa formats with hexa values ***
+
+-- Iteration 1 --
+0
+-- Iteration 2 --
+ffffffffffffffff 1 22
+-- Iteration 3 --
+7fffffff x, 7000000 ffffffff80000000
+-- Iteration 4 --
+                      ffffffffffed2979 0000
+-- Iteration 5 --
+#1 2222 1b6db ffffffffbbbbbbbc
+-- Iteration 6 --
+123b fab 0 a
+-- Iteration 7 --
+%34 x
+-- Iteration 8 --
+1 2 3 4
+===DONE===
diff --git a/ext/standard/tests/strings/vfprintf_variation14.phpt b/ext/standard/tests/strings/vfprintf_variation14.phpt
new file mode 100644 (file)
index 0000000..c714d89
--- /dev/null
@@ -0,0 +1,125 @@
+--TEST--
+Test vfprintf() function : usage variations - hexa formats with non-hexa values
+--SKIPIF--
+<?php
+if (PHP_INT_SIZE != 4) die("skip this test is for 32bit platform only");
+?>
+--FILE--
+<?php
+/* Prototype  : int vfprintf  ( resource $handle  , string $format , array $args  )
+ * Description: Write a formatted string to a stream
+ * Source code: ext/standard/formatted_print.c
+*/
+
+/*
+ * Test vfprintf() when different hexa formats and non-hexa values are passed to
+ * the '$format' and '$args' arguments of the function
+*/
+
+echo "*** Testing vfprintf() : hexa formats and non-hexa values ***\n";
+
+// defining array of different hexa formats
+$formats = 
+  '%x %+x %-x 
+   %lx %Lx %4x %-4x
+   %10.4x %-10.4x %.4x 
+   %\'#2x %\'2x %\'$2x %\'_2x
+   %3$x %4$x %1$x %2$x';
+
+// Arrays of non hexa values for the format defined in $format.
+// Each sub array contains non hexa values which correspond to each format in $format
+$args_array = array(
+
+  // array of float values
+  array(2.2, .2, 10.2,
+        123456.234, 123456.234, -1234.6789, +1234.6789,
+        2e10, +2e12, 22e+12,
+        12345.780, 12.000000011111, -12.00000111111, -123456.234,
+        3.33, +4.44, 1.11,-2.22 ),
+
+  // array of int values
+  array(2, -2, +2,
+        123456, 123456234, -12346789, +12346789,
+        123200, +20000, 22212,
+        12345780, 1211111, -12111111, -12345634,
+        3, +4, 1,-2 ),
+
+  // array of strings
+  array(" ", ' ', 'hello',
+        '123hello', "123hello", '-123hello', '+123hello',
+        "\12345678hello", "-\12345678hello", 'h123456ello',
+        "1234hello", "hello\0world", "NULL", "true",
+        "3", "4", '1', '2'),
+
+  // different arrays
+  array( array(0), array(1, 2), array(-1, -1),
+         array("123"), array('123'), array('-123'), array("-123"),
+         array(true), array(TRUE), array(FALSE),
+         array("123hello"), array("1", "2"), array('123hello'), array(12=>"12twelve"),
+         array("3"), array("4"), array("1"), array("2") ),
+
+  // array of boolean data
+  array( true, TRUE, false,
+         TRUE, 0, FALSE, 1,
+         true, TRUE, FALSE,
+         0, 1, 1, 0,
+         1, TRUE, 0, FALSE),
+  
+);
+
+/* creating dumping file */
+$data_file = dirname(__FILE__) . '/dump.txt';
+if (!($fp = fopen($data_file, 'wt')))
+   return;
+
+// looping to test vfprintf() with different hexa formats from the above $format array
+// and with non-hexa values from the above $args_array array
+$counter = 1;
+foreach($args_array as $args) {
+  fprintf($fp, "\n-- Iteration %d --\n",$counter);
+  vfprintf($fp, $formats, $args);
+  $counter++;
+}
+
+fclose($fp);
+print_r(file_get_contents($data_file));
+echo "\n";
+
+unlink($data_file);
+
+?>
+===DONE===
+--EXPECT--
+*** Testing vfprintf() : hexa formats and non-hexa values ***
+
+-- Iteration 1 --
+2 0 a 
+   1e240 x fffffb2e 4d2 
+                          
+   3039 c fffffff4 fffe1dc0
+   a 1e240 2 0
+-- Iteration 2 --
+2 fffffffe 2 
+   1e240 x ff439a5b bc65a5
+                          
+   bc61b4 127ae7 ff4732f9 ff439ede
+   2 1e240 2 fffffffe
+-- Iteration 3 --
+0 0 0 
+   7b x ffffff85 7b  
+                          
+   4d2 0 $0 _0
+   0 7b 0 0
+-- Iteration 4 --
+1 1 1 
+   1 x    1 1   
+                          
+   #1 1 $1 _1
+   1 1 1 1
+-- Iteration 5 --
+1 1 0 
+   1 x    0 1   
+                          
+   #0 1 $1 _0
+   0 1 1 1
+===DONE===
diff --git a/ext/standard/tests/strings/vfprintf_variation14_64bit.phpt b/ext/standard/tests/strings/vfprintf_variation14_64bit.phpt
new file mode 100644 (file)
index 0000000..930ee3d
--- /dev/null
@@ -0,0 +1,125 @@
+--TEST--
+Test vfprintf() function : usage variations - hexa formats with non-hexa values
+--SKIPIF--
+<?php
+if (PHP_INT_SIZE != 8) die("skip this test is for 64bit platform only");
+?>
+--FILE--
+<?php
+/* Prototype  : int vfprintf  ( resource $handle  , string $format , array $args  )
+ * Description: Write a formatted string to a stream
+ * Source code: ext/standard/formatted_print.c
+*/
+
+/*
+ * Test vfprintf() when different hexa formats and non-hexa values are passed to
+ * the '$format' and '$args' arguments of the function
+*/
+
+echo "*** Testing vfprintf() : hexa formats and non-hexa values ***\n";
+
+// defining array of different hexa formats
+$formats = 
+  '%x %+x %-x 
+   %lx %Lx %4x %-4x
+   %10.4x %-10.4x %.4x 
+   %\'#2x %\'2x %\'$2x %\'_2x
+   %3$x %4$x %1$x %2$x';
+
+// Arrays of non hexa values for the format defined in $format.
+// Each sub array contains non hexa values which correspond to each format in $format
+$args_array = array(
+
+  // array of float values
+  array(2.2, .2, 10.2,
+        123456.234, 123456.234, -1234.6789, +1234.6789,
+        2e10, +2e12, 22e+12,
+        12345.780, 12.000000011111, -12.00000111111, -123456.234,
+        3.33, +4.44, 1.11,-2.22 ),
+
+  // array of int values
+  array(2, -2, +2,
+        123456, 123456234, -12346789, +12346789,
+        123200, +20000, 22212,
+        12345780, 1211111, -12111111, -12345634,
+        3, +4, 1,-2 ),
+
+  // array of strings
+  array(" ", ' ', 'hello',
+        '123hello', "123hello", '-123hello', '+123hello',
+        "\12345678hello", "-\12345678hello", 'h123456ello',
+        "1234hello", "hello\0world", "NULL", "true",
+        "3", "4", '1', '2'),
+
+  // different arrays
+  array( array(0), array(1, 2), array(-1, -1),
+         array("123"), array('123'), array('-123'), array("-123"),
+         array(true), array(TRUE), array(FALSE),
+         array("123hello"), array("1", "2"), array('123hello'), array(12=>"12twelve"),
+         array("3"), array("4"), array("1"), array("2") ),
+
+  // array of boolean data
+  array( true, TRUE, false,
+         TRUE, 0, FALSE, 1,
+         true, TRUE, FALSE,
+         0, 1, 1, 0,
+         1, TRUE, 0, FALSE),
+  
+);
+
+/* creating dumping file */
+$data_file = dirname(__FILE__) . '/dump.txt';
+if (!($fp = fopen($data_file, 'wt')))
+   return;
+
+// looping to test vfprintf() with different hexa formats from the above $format array
+// and with non-hexa values from the above $args_array array
+$counter = 1;
+foreach($args_array as $args) {
+  fprintf($fp, "\n-- Iteration %d --\n",$counter);
+  vfprintf($fp, $formats, $args);
+  $counter++;
+}
+
+fclose($fp);
+print_r(file_get_contents($data_file));
+echo "\n";
+
+unlink($data_file);
+
+?>
+===DONE===
+--EXPECT--
+*** Testing vfprintf() : hexa formats and non-hexa values ***
+
+-- Iteration 1 --
+2 0 a 
+   1e240 x fffffffffffffb2e 4d2 
+                          
+   3039 c fffffffffffffff4 fffffffffffe1dc0
+   a 1e240 2 0
+-- Iteration 2 --
+2 fffffffffffffffe 2 
+   1e240 x ffffffffff439a5b bc65a5
+                          
+   bc61b4 127ae7 ffffffffff4732f9 ffffffffff439ede
+   2 1e240 2 fffffffffffffffe
+-- Iteration 3 --
+0 0 0 
+   7b x ffffffffffffff85 7b  
+                          
+   4d2 0 $0 _0
+   0 7b 0 0
+-- Iteration 4 --
+1 1 1 
+   1 x    1 1   
+                          
+   #1 1 $1 _1
+   1 1 1 1
+-- Iteration 5 --
+1 1 0 
+   1 x    0 1   
+                          
+   #0 1 $1 _0
+   0 1 1 1
+===DONE===
diff --git a/ext/standard/tests/strings/vfprintf_variation15.phpt b/ext/standard/tests/strings/vfprintf_variation15.phpt
new file mode 100644 (file)
index 0000000..a404695
--- /dev/null
@@ -0,0 +1,75 @@
+--TEST--
+Test vfprintf() function : usage variations - unsigned formats with unsigned values
+--SKIPIF--
+<?php
+if (PHP_INT_SIZE != 4) die("skip this test is for 32bit platform only");
+?>
+--FILE--
+<?php
+/* Prototype  : int vfprintf  ( resource $handle  , string $format , array $args  )
+ * Description: Write a formatted string to a stream
+ * Source code: ext/standard/formatted_print.c
+*/
+
+/*
+ * Test vfprintf() when different unsigned formats and unsigned values
+ * are passed to the '$format' and '$args' arguments of the function
+*/
+
+echo "*** Testing vfprintf() : unsigned formats and unsigned values ***\n";
+
+// defining array of unsigned formats
+$formats = array(
+  '%u %+u %-u', 
+  '%lu %Lu %4u %-4u',
+  '%10.4u %-10.4u %.4u', 
+  '%\'#2u %\'2u %\'$2u %\'_2u',
+  '%3$u %4$u %1$u %2$u'
+);
+
+// Arrays of unsigned values for the format defined in $format.
+// Each sub array contains unsigned values which correspond to each format string in $format
+$args_array = array(
+  array(1234567, 01234567, 0 ),
+  array(12345678900, 12345678900, 1234, 12345),
+  array("1234000", 10.1234567e10, 1.2e2),
+  array(1, 0, 00, "10_"),
+  array(3, 4, 1, 2)
+);
+
+/* creating dumping file */
+$data_file = dirname(__FILE__) . '/dump.txt';
+if (!($fp = fopen($data_file, 'wt')))
+   return;
+
+// looping to test vfprintf() with different unsigned formats from the above $format array
+// and with signed and other types of  values from the above $args_array array
+$counter = 1;
+foreach($formats as $format) {
+  fprintf($fp, "\n-- Iteration %d --\n",$counter);
+  vfprintf($fp, $format, $args_array[$counter-1]);
+  $counter++;
+}
+
+fclose($fp);
+print_r(file_get_contents($data_file));
+echo "\n";
+
+unlink($data_file); 
+
+?>
+===DONE===
+--EXPECT--
+*** Testing vfprintf() : unsigned formats and unsigned values ***
+
+-- Iteration 1 --
+1234567 342391 0
+-- Iteration 2 --
+2147483647 u 1234 12345
+-- Iteration 3 --
+   1234000 2147483647 120
+-- Iteration 4 --
+#1 0 $0 10
+-- Iteration 5 --
+1 2 3 4
+===DONE===
diff --git a/ext/standard/tests/strings/vfprintf_variation15_64bit.phpt b/ext/standard/tests/strings/vfprintf_variation15_64bit.phpt
new file mode 100644 (file)
index 0000000..d2e331c
--- /dev/null
@@ -0,0 +1,75 @@
+--TEST--
+Test vfprintf() function : usage variations - unsigned formats with unsigned values
+--SKIPIF--
+<?php
+if (PHP_INT_SIZE != 8) die("skip this test is for 64bit platform only");
+?>
+--FILE--
+<?php
+/* Prototype  : int vfprintf  ( resource $handle  , string $format , array $args  )
+ * Description: Write a formatted string to a stream
+ * Source code: ext/standard/formatted_print.c
+*/
+
+/*
+ * Test vfprintf() when different unsigned formats and unsigned values
+ * are passed to the '$format' and '$args' arguments of the function
+*/
+
+echo "*** Testing vfprintf() : unsigned formats and unsigned values ***\n";
+
+// defining array of unsigned formats
+$formats = array(
+  '%u %+u %-u', 
+  '%lu %Lu %4u %-4u',
+  '%10.4u %-10.4u %.4u', 
+  '%\'#2u %\'2u %\'$2u %\'_2u',
+  '%3$u %4$u %1$u %2$u'
+);
+
+// Arrays of unsigned values for the format defined in $format.
+// Each sub array contains unsigned values which correspond to each format string in $format
+$args_array = array(
+  array(1234567, 01234567, 0 ),
+  array(12345678900, 12345678900, 1234, 12345),
+  array("1234000", 10.1234567e10, 1.2e2),
+  array(1, 0, 00, "10_"),
+  array(3, 4, 1, 2)
+);
+
+/* creating dumping file */
+$data_file = dirname(__FILE__) . '/dump.txt';
+if (!($fp = fopen($data_file, 'wt')))
+   return;
+
+// looping to test vfprintf() with different unsigned formats from the above $format array
+// and with signed and other types of  values from the above $args_array array
+$counter = 1;
+foreach($formats as $format) {
+  fprintf($fp, "\n-- Iteration %d --\n",$counter);
+  vfprintf($fp, $format, $args_array[$counter-1]);
+  $counter++;
+}
+
+fclose($fp);
+print_r(file_get_contents($data_file));
+echo "\n";
+
+unlink($data_file); 
+
+?>
+===DONE===
+--EXPECT--
+*** Testing vfprintf() : unsigned formats and unsigned values ***
+
+-- Iteration 1 --
+1234567 342391 0
+-- Iteration 2 --
+12345678900 u 1234 12345
+-- Iteration 3 --
+   1234000 101234567000 120
+-- Iteration 4 --
+#1 0 $0 10
+-- Iteration 5 --
+1 2 3 4
+===DONE===
diff --git a/ext/standard/tests/strings/vfprintf_variation16.phpt b/ext/standard/tests/strings/vfprintf_variation16.phpt
new file mode 100644 (file)
index 0000000..8be18ce
--- /dev/null
@@ -0,0 +1,112 @@
+--TEST--
+Test vfprintf() function : usage variations - unsigned formats with signed and other types of values
+--SKIPIF--
+<?php
+if (PHP_INT_SIZE != 4) die("skip this test is for 32bit platform only");
+?>
+--FILE--
+<?php
+/* Prototype  : int vfprintf  ( resource $handle  , string $format , array $args  )
+ * Description: Write a formatted string to a stream
+ * Source code: ext/standard/formatted_print.c
+*/
+
+/*
+ * Test vfprintf() when different unsigned formats and signed values and other types of values
+ * are passed to the '$format' and '$args' arguments of the function
+*/
+
+echo "*** Testing vfprintf() : unsigned formats and signed & other types of values ***\n";
+
+// defining array of unsigned formats
+$formats = 
+  '%u %+u %-u 
+   %lu %Lu %4u %-4u
+   %10.4u %-10.4u %.4u 
+   %\'#2u %\'2u %\'$2u %\'_2u
+   %3$u %4$u %1$u %2$u';
+
+// Arrays of signed and other type of values for the format defined in $format.
+// Each sub array contains signed values which correspond to each format in $format
+$args_array = array(
+
+  // array of float values
+  array(+2.2, +.2, +10.2,
+        +123456.234, +123456.234, +1234.6789,
+        +2e10, +2e12, +22e+12,
+        +12345.780, +12.000000011111, -12.00000111111, -123456.234,
+        +3.33, +4.44, +1.11,-2.22 ),
+
+  // array of strings
+  array(" ", ' ', 'hello',
+        '123hello', "123hello", '-123hello', '+123hello',
+        "\12345678hello", "-\12345678hello", 'h123456ello',
+        "1234hello", "hello\0world", "NULL", "true",
+        "3", "4", '1', '2'),
+
+  // different arrays
+  array( array(0), array(1, 2), array(-1, -1),
+         array("123"), array('123'), array('-123'), array("-123"),
+         array(true), array(TRUE), array(FALSE),
+         array("123hello"), array("1", "2"), array('123hello'), array(12=>"12twelve"),
+         array("3"), array("4"), array("1"), array("2") ),
+
+  // array of boolean data
+  array( true, TRUE, false,
+         TRUE, 0, FALSE, 1,
+         true, TRUE, FALSE,
+         0, 1, 1, 0,
+         1, TRUE, 0, FALSE),
+  
+);
+/* creating dumping file */
+$data_file = dirname(__FILE__) . '/dump.txt';
+if (!($fp = fopen($data_file, 'wt')))
+   return;
+
+// looping to test vfprintf() with different unsigned formats from the above $format array
+// and with signed and other types of  values from the above $args_array array
+$counter = 1;
+foreach($args_array as $args) {
+  fprintf($fp, "\n-- Iteration %d --\n",$counter);
+  vfprintf($fp, $formats, $args);
+  $counter++;
+}
+
+fclose($fp);
+print_r(file_get_contents($data_file));
+echo "\n";
+
+unlink($data_file);  
+
+?>
+===DONE===
+--EXPECT--
+*** Testing vfprintf() : unsigned formats and signed & other types of values ***
+
+-- Iteration 1 --
+2 0 10 
+   123456 u 1234 2147483647
+   2147483647 2147483647 12345 
+   12 4294967284 4294843840 _3
+   10 123456 2 0
+-- Iteration 2 --
+0 0 0 
+   123 u 4294967173 123 
+            0 0          0 
+   1234 0 $0 _0
+   0 123 0 0
+-- Iteration 3 --
+1 1 1 
+   1 u    1 1   
+            1 1          1 
+   #1 1 $1 _1
+   1 1 1 1
+-- Iteration 4 --
+1 1 0 
+   1 u    0 1   
+            1 1          0 
+   #0 1 $1 _0
+   0 1 1 1
+===DONE===
\ No newline at end of file
diff --git a/ext/standard/tests/strings/vfprintf_variation16_64bit.phpt b/ext/standard/tests/strings/vfprintf_variation16_64bit.phpt
new file mode 100644 (file)
index 0000000..381e67c
--- /dev/null
@@ -0,0 +1,112 @@
+--TEST--
+Test vfprintf() function : usage variations - unsigned formats with signed and other types of values
+--SKIPIF--
+<?php
+if (PHP_INT_SIZE != 8) die("skip this test is for 64bit platform only");
+?>
+--FILE--
+<?php
+/* Prototype  : int vfprintf  ( resource $handle  , string $format , array $args  )
+ * Description: Write a formatted string to a stream
+ * Source code: ext/standard/formatted_print.c
+*/
+
+/*
+ * Test vfprintf() when different unsigned formats and signed values and other types of values
+ * are passed to the '$format' and '$args' arguments of the function
+*/
+
+echo "*** Testing vfprintf() : unsigned formats and signed & other types of values ***\n";
+
+// defining array of unsigned formats
+$formats = 
+  '%u %+u %-u 
+   %lu %Lu %4u %-4u
+   %10.4u %-10.4u %.4u 
+   %\'#2u %\'2u %\'$2u %\'_2u
+   %3$u %4$u %1$u %2$u';
+
+// Arrays of signed and other type of values for the format defined in $format.
+// Each sub array contains signed values which correspond to each format in $format
+$args_array = array(
+
+  // array of float values
+  array(+2.2, +.2, +10.2,
+        +123456.234, +123456.234, +1234.6789,
+        +2e10, +2e12, +22e+12,
+        +12345.780, +12.000000011111, -12.00000111111, -123456.234,
+        +3.33, +4.44, +1.11,-2.22 ),
+
+  // array of strings
+  array(" ", ' ', 'hello',
+        '123hello', "123hello", '-123hello', '+123hello',
+        "\12345678hello", "-\12345678hello", 'h123456ello',
+        "1234hello", "hello\0world", "NULL", "true",
+        "3", "4", '1', '2'),
+
+  // different arrays
+  array( array(0), array(1, 2), array(-1, -1),
+         array("123"), array('123'), array('-123'), array("-123"),
+         array(true), array(TRUE), array(FALSE),
+         array("123hello"), array("1", "2"), array('123hello'), array(12=>"12twelve"),
+         array("3"), array("4"), array("1"), array("2") ),
+
+  // array of boolean data
+  array( true, TRUE, false,
+         TRUE, 0, FALSE, 1,
+         true, TRUE, FALSE,
+         0, 1, 1, 0,
+         1, TRUE, 0, FALSE),
+  
+);
+/* creating dumping file */
+$data_file = dirname(__FILE__) . '/dump.txt';
+if (!($fp = fopen($data_file, 'wt')))
+   return;
+
+// looping to test vfprintf() with different unsigned formats from the above $format array
+// and with signed and other types of  values from the above $args_array array
+$counter = 1;
+foreach($args_array as $args) {
+  fprintf($fp, "\n-- Iteration %d --\n",$counter);
+  vfprintf($fp, $formats, $args);
+  $counter++;
+}
+
+fclose($fp);
+print_r(file_get_contents($data_file));
+echo "\n";
+
+unlink($data_file);  
+
+?>
+===DONE===
+--EXPECT--
+*** Testing vfprintf() : unsigned formats and signed & other types of values ***
+
+-- Iteration 1 --
+2 0 10 
+   123456 u 1234 20000000000
+   2000000000000 22000000000000 12345 
+   12 18446744073709551604 18446744073709428160 _3
+   10 123456 2 0
+-- Iteration 2 --
+0 0 0 
+   123 u 18446744073709551493 123 
+            0 0          0 
+   1234 0 $0 _0
+   0 123 0 0
+-- Iteration 3 --
+1 1 1 
+   1 u    1 1   
+            1 1          1 
+   #1 1 $1 _1
+   1 1 1 1
+-- Iteration 4 --
+1 1 0 
+   1 u    0 1   
+            1 1          0 
+   #0 1 $1 _0
+   0 1 1 1
+===DONE===
diff --git a/ext/standard/tests/strings/vfprintf_variation17.phpt b/ext/standard/tests/strings/vfprintf_variation17.phpt
new file mode 100644 (file)
index 0000000..871ae98
--- /dev/null
@@ -0,0 +1,70 @@
+--TEST--
+Test vfprintf() function : usage variations - scientific formats with scientific values
+--FILE--
+<?php
+/* Prototype  : int vfprintf  ( resource $handle  , string $format , array $args  )
+ * Description: Write a formatted string to a stream
+ * Source code: ext/standard/formatted_print.c
+*/
+
+/*
+ * Test vfprintf() when different scientific formats and scientific values
+ * are passed to the '$format' and '$args' arguments of the function
+*/
+
+echo "*** Testing vfprintf() : scientific formats and scientific values ***\n";
+
+// defining array of scientific formats
+$formats = array(
+  '%e %+e %-e', 
+  '%le %Le %4e %-4e',
+  '%10.4e %-10.4e %.4e', 
+  '%\'#20e %\'20e %\'$20e %\'_20e',
+  '%3$e %4$e %1$e %2$e'
+);
+
+// Arrays of scientific values for the format defined in $format.
+// Each sub array contains scientific values which correspond to each format string in $format
+$args_array = array(
+  array(0, 1e0, "10e2" ),
+  array(2.2e2, 10e10, 1000e-2, 1000e7),
+  array(-22e12, 10e20, 1.2e2),
+  array(1e1, +1e2, -1e3, "1e2_"),
+  array(3e3, 4e3, 1e3, 2e3)
+);
+
+/* creating dumping file */
+$data_file = dirname(__FILE__) . '/dump.txt';
+if (!($fp = fopen($data_file, 'wt')))
+   return;
+   
+// looping to test vfprintf() with different scientific formats from the above $format array
+// and with signed and other types of  values from the above $args_array array
+$counter = 1;
+foreach($formats as $format) {
+  fprintf($fp, "\n-- Iteration %d --\n",$counter);
+  vfprintf($fp, $format, $args_array[$counter-1]);
+  $counter++;
+}
+
+fclose($fp);
+print_r(file_get_contents($data_file));
+echo "\n";
+
+unlink($data_file); 
+?>
+===DONE===
+--EXPECT--
+*** Testing vfprintf() : scientific formats and scientific values ***
+
+-- Iteration 1 --
+0.000000e+0 +1.000000e+0 1.000000e+3
+-- Iteration 2 --
+2.200000e+2 e 1.000000e+1 1.000000e+10
+-- Iteration 3 --
+-2.2000e+13 1.0000e+21 1.2000e+2
+-- Iteration 4 --
+#########1.000000e+1 1.000000e+2 $$$$$$$$-1.000000e+3 _________1.000000e+2
+-- Iteration 5 --
+1.000000e+3 2.000000e+3 3.000000e+3 4.000000e+3
+===DONE===
diff --git a/ext/standard/tests/strings/vfprintf_variation18.phpt b/ext/standard/tests/strings/vfprintf_variation18.phpt
new file mode 100644 (file)
index 0000000..7616862
--- /dev/null
@@ -0,0 +1,107 @@
+--TEST--
+Test vfprintf() function : usage variations - scientific formats with non-scientific values
+--FILE--
+<?php
+/* Prototype  : int vfprintf  ( resource $handle  , string $format , array $args  )
+ * Description: Write a formatted string to a stream
+ * Source code: ext/standard/formatted_print.c
+*/
+
+/*
+ * Test vfprintf() when different scientific formats and non-scientific values are passed to
+ * the '$format' and '$args' arguments of the function
+*/
+
+echo "*** Testing vfprintf() : scientific formats and non-scientific values ***\n";
+
+// defining array of non-scientific formats
+$formats = 
+  '%e %+e %-e 
+   %le %Le %4e %-4e
+   %10.4e %-10.4e %04e %04.4e
+   %\'#2e %\'2e %\'$2e %\'_2e
+   %3$e %4$e %1$e %2$e';
+
+// Arrays of non scientific values for the format defined in $format.
+// Each sub array contains non scientific values which correspond to each format in $format
+$args_array = array(
+
+  // array of float values
+  array(2.2, .2, 10.2,
+        123456.234, 123456.234, -1234.6789, +1234.6789,
+        20.00, +212.2, -411000000000, 2212.000000000001,
+        12345.780, 12.000000011111, -12.00000111111, -123456.234,
+        3.33, +4.44, 1.11,-2.22 ),
+
+  // array of strings
+  array(" ", ' ', 'hello',
+        '123hello', "123hello", '-123hello', '+123hello',
+        "\12345678hello", "-\12345678hello", '0123456hello', 'h123456ello',
+        "1234hello", "hello\0world", "NULL", "true",
+        "3", "4", '1', '2'),
+
+  // different arrays
+  array( array(0), array(1, 2), array(-1, -1),
+         array("123"), array('123'), array('-123'), array("-123"),
+         array(true), array(false), array(TRUE), array(FALSE),
+         array("123hello"), array("1", "2"), array('123hello'), array(12=>"12twelve"),
+         array("3"), array("4"), array("1"), array("2") ),
+
+  // array of boolean data
+  array( true, TRUE, false,
+         TRUE, 0, FALSE, 1,
+         true, false, TRUE, FALSE,
+         0, 1, 1, 0,
+         1, TRUE, 0, FALSE),
+  
+);
+
+/* creating dumping file */
+$data_file = dirname(__FILE__) . '/dump.txt';
+if (!($fp = fopen($data_file, 'wt')))
+   return;
+   
+// looping to test vfprintf() with different scientific formats from the above $format array
+// and with non-scientific values from the above $args_array array
+$counter = 1;
+foreach($args_array as $args) {
+  fprintf($fp, "\n-- Iteration %d --\n",$counter);
+  vfprintf($fp, $formats, $args);
+  $counter++;
+}
+
+fclose($fp);
+print_r(file_get_contents($data_file));
+echo "\n";
+
+unlink($data_file); 
+?>
+===DONE===
+--EXPECT--
+*** Testing vfprintf() : scientific formats and non-scientific values ***
+
+-- Iteration 1 --
+2.200000e+0 +2.000000e-1 1.020000e+1 
+   1.234562e+5 e -1.234679e+3 1.234679e+3
+    2.0000e+1 2.1220e+2  -4.110000e+11 2.2120e+3
+   1.234578e+4 1.200000e+1 -1.200000e+1 -1.234562e+5
+   1.020000e+1 1.234562e+5 2.200000e+0 2.000000e-1
+-- Iteration 2 --
+0.000000e+0 +0.000000e+0 0.000000e+0 
+   1.230000e+2 e -1.230000e+2 1.230000e+2
+    0.0000e+0 0.0000e+0  1.234560e+5 0.0000e+0
+   1.234000e+3 0.000000e+0 0.000000e+0 0.000000e+0
+   0.000000e+0 1.230000e+2 0.000000e+0 0.000000e+0
+-- Iteration 3 --
+1.000000e+0 +1.000000e+0 1.000000e+0 
+   1.000000e+0 e 1.000000e+0 1.000000e+0
+    1.0000e+0 1.0000e+0  1.000000e+0 1.0000e+0
+   1.000000e+0 1.000000e+0 1.000000e+0 1.000000e+0
+   1.000000e+0 1.000000e+0 1.000000e+0 1.000000e+0
+-- Iteration 4 --
+1.000000e+0 +1.000000e+0 0.000000e+0 
+   1.000000e+0 e 0.000000e+0 1.000000e+0
+    1.0000e+0 0.0000e+0  1.000000e+0 0.0000e+0
+   0.000000e+0 1.000000e+0 1.000000e+0 0.000000e+0
+   0.000000e+0 1.000000e+0 1.000000e+0 1.000000e+0
+===DONE===
diff --git a/ext/standard/tests/strings/vfprintf_variation19.phpt b/ext/standard/tests/strings/vfprintf_variation19.phpt
new file mode 100644 (file)
index 0000000..7ee01a9
--- /dev/null
@@ -0,0 +1,94 @@
+--TEST--
+Test vfprintf() function : usage variations - with whitespaces in format strings
+--SKIPIF--
+<?php
+if (PHP_INT_SIZE != 4) die("skip this test is for 32bit platform only");
+?>
+--FILE--
+<?php
+/* Prototype  : int vfprintf  ( resource $handle  , string $format , array $args  )
+ * Description: Write a formatted string to a stream
+ * Source code: ext/standard/formatted_print.c
+*/
+
+echo "*** Testing vfprintf() : with  white spaces in format strings ***\n";
+
+// initializing the format array
+$formats = array(
+  "% d  %  d  %   d",
+  "% f  %  f  %   f",
+  "% F  %  F  %   F",
+  "% b  %  b  %   b",
+  "% c  %  c  %   c",
+  "% e  %  e  %   e",
+  "% u  %  u  %   u",
+  "% o  %  o  %   o",
+  "% x  %  x  %   x",
+  "% X  %  X  %   X",
+  "% E  %  E  %   E"
+);
+
+// initializing the args array
+
+$args_array = array(
+  array(111, 222, 333),
+  array(1.1, .2, -0.6),
+  array(1.12, -1.13, +0.23),
+  array(1, 2, 3),
+  array(65, 66, 67),
+  array(2e1, 2e-1, -2e1),
+  array(-11, +22, 33),
+  array(012, -02394, +02389),
+  array(0x11, -0x22, +0x33),
+  array(0x11, -0x22, +0x33),
+  array(2e1, 2e-1, -2e1)
+);
+
+
+/* creating dumping file */
+$data_file = dirname(__FILE__) . '/dump.txt';
+if (!($fp = fopen($data_file, 'wt')))
+   return;
+   
+// looping to test vfprintf() with different scientific formats from the above $format array
+// and with non-scientific values from the above $args_array array
+$counter = 1;
+foreach($formats as $format) {
+  fprintf($fp, "\n-- Iteration %d --\n",$counter);
+  vfprintf($fp,$format, $args_array[$counter-1]);
+  $counter++;
+}
+
+fclose($fp);
+print_r(file_get_contents($data_file));
+echo "\n";
+
+unlink($data_file); 
+?>
+===DONE===
+--EXPECT--
+*** Testing vfprintf() : with  white spaces in format strings ***
+
+-- Iteration 1 --
+111  222  333
+-- Iteration 2 --
+1.100000  0.200000  -0.600000
+-- Iteration 3 --
+1.120000  -1.130000  0.230000
+-- Iteration 4 --
+1  10  11
+-- Iteration 5 --
+A  B  C
+-- Iteration 6 --
+2.000000e+1  2.000000e-1  -2.000000e+1
+-- Iteration 7 --
+4294967285  22  33
+-- Iteration 8 --
+12  37777777755  23
+-- Iteration 9 --
+11  ffffffde  33
+-- Iteration 10 --
+11  FFFFFFDE  33
+-- Iteration 11 --
+2.000000E+1  2.000000E-1  -2.000000E+1
+===DONE===
diff --git a/ext/standard/tests/strings/vfprintf_variation19_64bit.phpt b/ext/standard/tests/strings/vfprintf_variation19_64bit.phpt
new file mode 100644 (file)
index 0000000..58810a8
--- /dev/null
@@ -0,0 +1,94 @@
+--TEST--
+Test vfprintf() function : usage variations - with whitespaces in format strings
+--SKIPIF--
+<?php
+if (PHP_INT_SIZE != 8) die("skip this test is for 64bit platform only");
+?>
+--FILE--
+<?php
+/* Prototype  : int vfprintf  ( resource $handle  , string $format , array $args  )
+ * Description: Write a formatted string to a stream
+ * Source code: ext/standard/formatted_print.c
+*/
+
+echo "*** Testing vfprintf() : with  white spaces in format strings ***\n";
+
+// initializing the format array
+$formats = array(
+  "% d  %  d  %   d",
+  "% f  %  f  %   f",
+  "% F  %  F  %   F",
+  "% b  %  b  %   b",
+  "% c  %  c  %   c",
+  "% e  %  e  %   e",
+  "% u  %  u  %   u",
+  "% o  %  o  %   o",
+  "% x  %  x  %   x",
+  "% X  %  X  %   X",
+  "% E  %  E  %   E"
+);
+
+// initializing the args array
+
+$args_array = array(
+  array(111, 222, 333),
+  array(1.1, .2, -0.6),
+  array(1.12, -1.13, +0.23),
+  array(1, 2, 3),
+  array(65, 66, 67),
+  array(2e1, 2e-1, -2e1),
+  array(-11, +22, 33),
+  array(012, -02394, +02389),
+  array(0x11, -0x22, +0x33),
+  array(0x11, -0x22, +0x33),
+  array(2e1, 2e-1, -2e1)
+);
+
+
+/* creating dumping file */
+$data_file = dirname(__FILE__) . '/dump.txt';
+if (!($fp = fopen($data_file, 'wt')))
+   return;
+   
+// looping to test vfprintf() with different scientific formats from the above $format array
+// and with non-scientific values from the above $args_array array
+$counter = 1;
+foreach($formats as $format) {
+  fprintf($fp, "\n-- Iteration %d --\n",$counter);
+  vfprintf($fp,$format, $args_array[$counter-1]);
+  $counter++;
+}
+
+fclose($fp);
+print_r(file_get_contents($data_file));
+echo "\n";
+
+unlink($data_file); 
+?>
+===DONE===
+--EXPECT--
+*** Testing vfprintf() : with  white spaces in format strings ***
+
+-- Iteration 1 --
+111  222  333
+-- Iteration 2 --
+1.100000  0.200000  -0.600000
+-- Iteration 3 --
+1.120000  -1.130000  0.230000
+-- Iteration 4 --
+1  10  11
+-- Iteration 5 --
+A  B  C
+-- Iteration 6 --
+2.000000e+1  2.000000e-1  -2.000000e+1
+-- Iteration 7 --
+18446744073709551605  22  33
+-- Iteration 8 --
+12  1777777777777777777755  23
+-- Iteration 9 --
+11  ffffffffffffffde  33
+-- Iteration 10 --
+11  FFFFFFFFFFFFFFDE  33
+-- Iteration 11 --
+2.000000E+1  2.000000E-1  -2.000000E+1
+===DONE===
diff --git a/ext/standard/tests/strings/vfprintf_variation20.phpt b/ext/standard/tests/strings/vfprintf_variation20.phpt
new file mode 100644 (file)
index 0000000..cd348d8
--- /dev/null
@@ -0,0 +1,175 @@
+--TEST--
+Test vfprintf() function : usage variations - unexpected values for the format argument
+--FILE--
+<?php
+/* Prototype  : int vfprintf  ( resource $handle  , string $format , array $args  )
+ * Description: Write a formatted string to a stream
+ * Source code: ext/standard/formatted_print.c
+*/
+
+/*
+ * Test vfprintf() when different unexpected format strings are passed to
+ * the '$format' argument of the function
+*/
+
+echo "*** Testing vfprintf() : with unexpected values for format argument ***\n";
+
+// initialising the required variables
+$args = array(1, 2);
+
+//get an unset variable
+$unset_var = 10;
+unset ($unset_var);
+
+// declaring a class
+class sample
+{
+  public function __toString() {
+  return "object";
+  }
+}
+
+// Defining resource
+$file_handle = fopen(__FILE__, 'r');
+
+
+//array of values to iterate over
+$values = array(
+
+                 // int data
+/*1*/    0,
+                 1,
+                 12345,
+                 -2345,
+               
+                 // float data
+/*5*/    10.5,
+                 -10.5,
+                 10.1234567e10,
+                 10.7654321E-10,
+                 .5,
+               
+                 // array data
+/*10*/   array(),
+                 array(0),
+                 array(1),
+                 array(1,2),
+                 array('color' => 'red', 'item' => 'pen'),
+               
+                 // null data
+/*15*/   NULL,
+                 null,
+               
+                 // boolean data
+/*17*/   true,
+                 false,
+                 TRUE,
+                 FALSE,
+               
+                 // empty data
+/*21*/   "",
+                 '',
+               
+                 // object data
+/*23*/   new sample(),
+               
+                 // undefined data
+/*24*/   @$undefined_var,
+               
+                 // unset data
+/*25*/   @$unset_var,
+                
+                 // resource data
+/*26*/   $file_handle
+);
+
+/* creating dumping file */
+$data_file = dirname(__FILE__) . '/dump.txt';
+if (!($fp = fopen($data_file, 'wt')))
+   return;
+
+fprintf($fp, "\n*** Testing vprintf() with with unexpected values for format argument ***\n");
+
+$counter = 1;
+foreach( $values as $value ) {
+  fprintf( $fp, "\n-- Iteration %d --\n",$counter);
+  vfprintf($fp, $value, $args);
+  $counter++;
+}
+
+fclose($fp);
+print_r(file_get_contents($data_file));
+echo "\n";
+
+unlink($data_file);
+
+?>
+===DONE===
+--EXPECTF--
+*** Testing vfprintf() : with unexpected values for format argument ***
+
+Notice: Array to string conversion in %s on line %d
+
+Notice: Array to string conversion in %s on line %d
+
+Notice: Array to string conversion in %s on line %d
+
+Notice: Array to string conversion in %s on line %d
+
+Notice: Array to string conversion in %s on line %d
+
+*** Testing vprintf() with with unexpected values for format argument ***
+
+-- Iteration 1 --
+0
+-- Iteration 2 --
+1
+-- Iteration 3 --
+12345
+-- Iteration 4 --
+-2345
+-- Iteration 5 --
+10.5
+-- Iteration 6 --
+-10.5
+-- Iteration 7 --
+101234567000
+-- Iteration 8 --
+1.07654321E-9
+-- Iteration 9 --
+0.5
+-- Iteration 10 --
+Array
+-- Iteration 11 --
+Array
+-- Iteration 12 --
+Array
+-- Iteration 13 --
+Array
+-- Iteration 14 --
+Array
+-- Iteration 15 --
+
+-- Iteration 16 --
+
+-- Iteration 17 --
+1
+-- Iteration 18 --
+
+-- Iteration 19 --
+1
+-- Iteration 20 --
+
+-- Iteration 21 --
+
+-- Iteration 22 --
+
+-- Iteration 23 --
+object
+-- Iteration 24 --
+
+-- Iteration 25 --
+
+-- Iteration 26 --
+Resource id #%d
+===DONE===
diff --git a/ext/standard/tests/strings/vfprintf_variation21.phpt b/ext/standard/tests/strings/vfprintf_variation21.phpt
new file mode 100644 (file)
index 0000000..4dc9ed5
--- /dev/null
@@ -0,0 +1,168 @@
+--TEST--
+Test vfprintf() function : usage variations - unexpected values for args argument
+--FILE--
+<?php
+/* Prototype  : int vfprintf  ( resource $handle  , string $format , array $args  )
+ * Description: Write a formatted string to a stream
+ * Source code: ext/standard/formatted_print.c
+*/
+
+/*
+ * Test vfprintf() when different unexpected values are passed to
+ * the '$args' arguments of the function
+*/
+
+echo "*** Testing vfprintf() : with unexpected values for args argument ***\n";
+
+// initialising the required variables
+$format = '%s';
+
+//get an unset variable
+$unset_var = 10;
+unset ($unset_var);
+
+// declaring a class
+class sample
+{
+  public function __toString() {
+  return "object";
+  }
+}
+
+// Defining resource
+$file_handle = fopen(__FILE__, 'r');
+
+
+//array of values to iterate over
+$values = array(
+
+                 // int data
+/*1*/    0,
+                 1,
+                 12345,
+                 -2345,
+               
+                 // float data
+/*5*/    10.5,
+                 -10.5,
+                 10.1234567e10,
+                 10.7654321E-10,
+                 .5,
+               
+                 // null data
+/*10*/   NULL,
+                 null,
+               
+                 // boolean data
+/*12*/   true,
+                 false,
+                 TRUE,
+                 FALSE,
+               
+                 // empty data
+/*16*/   "",
+                 '',
+               
+                 // string data
+/*18*/   "string",
+                 'string',
+               
+                 // object data
+/*20*/   new sample(),
+               
+                 // undefined data
+/*21*/   @$undefined_var,
+               
+                 // unset data
+/*22*/   @$unset_var,
+               
+                 // resource data
+/*23*/   $file_handle
+);
+
+/* creating dumping file */
+$data_file = dirname(__FILE__) . '/dump.txt';
+if (!($fp = fopen($data_file, 'wt')))
+   return;
+
+fprintf($fp, "\n*** Testing vprintf() with unexpected values for args argument ***\n");
+
+$counter = 1;
+foreach( $values as $value ) {
+  fprintf($fp, "\n-- Iteration %d --\n",$counter);
+  vfprintf($fp, $format, $value);
+  $counter++;
+}
+
+fclose($fp);
+print_r(file_get_contents($data_file));
+echo "\n";
+
+unlink($data_file);
+
+
+?>
+===DONE===
+--EXPECTF--
+*** Testing vfprintf() : with unexpected values for args argument ***
+
+Warning: vfprintf(): Too few arguments in %s on line %d
+
+Warning: vfprintf(): Too few arguments in %s on line %d
+
+Warning: vfprintf(): Too few arguments in %s on line %d
+
+Warning: vfprintf(): Too few arguments in %s on line %d
+
+Warning: vfprintf(): Too few arguments in %s on line %d
+
+*** Testing vprintf() with unexpected values for args argument ***
+
+-- Iteration 1 --
+0
+-- Iteration 2 --
+1
+-- Iteration 3 --
+12345
+-- Iteration 4 --
+-2345
+-- Iteration 5 --
+10.5
+-- Iteration 6 --
+-10.5
+-- Iteration 7 --
+101234567000
+-- Iteration 8 --
+1.07654321E-9
+-- Iteration 9 --
+0.5
+-- Iteration 10 --
+
+-- Iteration 11 --
+
+-- Iteration 12 --
+1
+-- Iteration 13 --
+
+-- Iteration 14 --
+1
+-- Iteration 15 --
+
+-- Iteration 16 --
+
+-- Iteration 17 --
+
+-- Iteration 18 --
+string
+-- Iteration 19 --
+string
+-- Iteration 20 --
+
+-- Iteration 21 --
+
+-- Iteration 22 --
+
+-- Iteration 23 --
+Resource id #%d
+===DONE===
+
diff --git a/ext/standard/tests/strings/vfprintf_variation3.phpt b/ext/standard/tests/strings/vfprintf_variation3.phpt
new file mode 100644 (file)
index 0000000..02535ce
--- /dev/null
@@ -0,0 +1,87 @@
+--TEST--
+Test vfprintf() function : usage variations - int formats with int values
+--FILE--
+<?php
+/* Prototype  : int vfprintf  ( resource $handle  , string $format , array $args  )
+ * Description: Write a formatted string to a stream
+ * Source code: ext/standard/formatted_print.c
+*/
+
+/*
+ * Test vfprintf() when different int formats and int values are passed to
+ * the '$format' and '$args' arguments of the function
+*/
+
+echo "*** Testing vfprintf() : int formats with int values ***\n";
+
+
+// defining array of int formats
+$formats = array(
+  "%d",
+  "%+d %-d %D",
+  "%ld %Ld, %4d %-4d",
+  "%10.4d %-10.4d %04d %04.4d",
+  "%'#2d %'2d %'$2d %'_2d",
+  "%d %d %d %d",
+  "% %%d d%",
+  '%3$d %4$d %1$d %2$d'
+);
+
+// Arrays of int values for the format defined in $format.
+// Each sub array contains int values which correspond to each format string in $format
+$args_array = array(
+  array(0),
+  array(-1, 1, +22),
+  array(2147483647, -2147483648, +2147483640, -2147483640),
+  array(123456, 12345678, -1234567, 1234567),
+  array(111, 2222, 333333, 44444444),
+  array(0x123b, 0xfAb, 0123, 01293),
+  array(1234, -5678, 2345),
+  array(3, 4, 1, 2)
+
+);
+
+// looping to test vfprintf() with different int formats from the above $format array
+// and with int values from the above $args_array array
+
+/* creating dumping file */
+$data_file = dirname(__FILE__) . '/dump.txt';
+if (!($fp = fopen($data_file, 'wt')))
+   return;
+
+$counter = 1;
+foreach($formats as $format) {
+  fprintf($fp, "\n-- Iteration %d --\n",$counter);
+  vfprintf($fp, $format, $args_array[$counter-1]);
+  $counter++;
+}
+
+fclose($fp);
+print_r(file_get_contents($data_file));
+echo "\n";
+
+unlink($data_file);
+
+?>
+===DONE===
+--EXPECT--
+*** Testing vfprintf() : int formats with int values ***
+
+-- Iteration 1 --
+0
+-- Iteration 2 --
+-1 1 
+-- Iteration 3 --
+2147483647 d, 2147483640 -2147483640
+-- Iteration 4 --
+    123456 12345678   -1234567 1234567
+-- Iteration 5 --
+111 2222 333333 44444444
+-- Iteration 6 --
+4667 4011 83 10
+-- Iteration 7 --
+%-5678 d
+-- Iteration 8 --
+1 2 3 4
+===DONE===
+
diff --git a/ext/standard/tests/strings/vfprintf_variation4.phpt b/ext/standard/tests/strings/vfprintf_variation4.phpt
new file mode 100644 (file)
index 0000000..bdef534
--- /dev/null
@@ -0,0 +1,113 @@
+--TEST--
+Test vfprintf() function : usage variations - int formats with non-integer values
+--SKIPIF--
+<?php
+if (PHP_INT_SIZE != 4) die("skip this test is for 32bit platform only");
+?>
+--FILE--
+<?php
+/* Prototype  : int vfprintf  ( resource $handle  , string $format , array $args  )
+ * Description: Write a formatted string to a stream
+ * Source code: ext/standard/formatted_print.c
+*/
+
+/*
+ * Test vfprintf() when different int formats and non-int values are passed to
+ * the '$format' and '$args' arguments of the function
+*/
+
+echo "*** Testing vfprintf() : int formats and non-integer values ***\n";
+
+// defining array of int formats
+$formats = 
+  '%d %+d %-d 
+   %ld %Ld %4d %-4d
+   %10.4d %-10.4d %.4d %04.4d
+   %\'#2d %\'2d %\'$2d %\'_2d
+   %3$d %4$d %1$d %2$d';
+
+// Arrays of non int values for the format defined in $format.
+// Each sub array contains non int values which correspond to each format in $format
+$args_array = array(
+
+  // array of float values
+  array(2.2, .2, 10.2,
+        123456.234, 123456.234, -1234.6789, +1234.6789,
+        2e10, +2e5, 4e3, 22e+6,
+        12345.780, 12.000000011111, -12.00000111111, -123456.234,
+        3.33, +4.44, 1.11,-2.22 ),
+
+  // array of strings
+  array(" ", ' ', 'hello',
+        '123hello', "123hello", '-123hello', '+123hello',
+        "\12345678hello", "-\12345678hello", '0123456hello', 'h123456ello',
+        "1234hello", "hello\0world", "NULL", "true",
+        "3", "4", '1', '2'),
+
+  // different arrays
+  array( array(0), array(1, 2), array(-1, -1),
+         array("123"), array('123'), array('-123'), array("-123"),
+         array(true), array(false), array(TRUE), array(FALSE),
+         array("123hello"), array("1", "2"), array('123hello'), array(12=>"12twelve"),
+         array("3"), array("4"), array("1"), array("2") ),
+
+  // array of boolean data
+  array( true, TRUE, false,
+         TRUE, 0, FALSE, 1,
+         true, false, TRUE, FALSE,
+         0, 1, 1, 0,
+         1, TRUE, 0, FALSE),
+  
+);
+
+
+/* creating dumping file */
+$data_file = dirname(__FILE__) . '/dump.txt';
+if (!($fp = fopen($data_file, 'wt')))
+   return;
+
+// looping to test vfprintf() with different int formats from the above $format array
+// and with non-int values from the above $args_array array
+$counter = 1;
+foreach($args_array as $args) {
+  fprintf($fp, "\n-- Iteration %d --\n",$counter);
+  vfprintf($fp, $formats, $args);
+  $counter++;
+}
+
+fclose($fp);
+print_r(file_get_contents($data_file));
+echo "\n";
+
+unlink($data_file);
+
+?>
+===DONE===
+--EXPECT--
+*** Testing vfprintf() : int formats and non-integer values ***
+
+-- Iteration 1 --
+2 +0 10 
+   123456 d -1234 1234
+   2147483647 200000     4000 22000000
+   12345 12 -12 -123456
+   10 123456 2 0
+-- Iteration 2 --
+0 +0 0 
+   123 d -123 123 
+            0 0          123456 0000
+   1234 0 $0 _0
+   0 123 0 0
+-- Iteration 3 --
+1 +1 1 
+   1 d    1 1   
+            1 1          1 0001
+   #1 1 $1 _1
+   1 1 1 1
+-- Iteration 4 --
+1 +1 0 
+   1 d    0 1   
+            1 0          1 0000
+   #0 1 $1 _0
+   0 1 1 1
+===DONE===
\ No newline at end of file
diff --git a/ext/standard/tests/strings/vfprintf_variation4_64bit.phpt b/ext/standard/tests/strings/vfprintf_variation4_64bit.phpt
new file mode 100644 (file)
index 0000000..f7038ff
--- /dev/null
@@ -0,0 +1,113 @@
+--TEST--
+Test vfprintf() function : usage variations - int formats with non-integer values
+--SKIPIF--
+<?php
+if (PHP_INT_SIZE != 8) die("skip this test is for 64bit platform only");
+?>
+--FILE--
+<?php
+/* Prototype  : int vfprintf  ( resource $handle  , string $format , array $args  )
+ * Description: Write a formatted string to a stream
+ * Source code: ext/standard/formatted_print.c
+*/
+
+/*
+ * Test vfprintf() when different int formats and non-int values are passed to
+ * the '$format' and '$args' arguments of the function
+*/
+
+echo "*** Testing vfprintf() : int formats and non-integer values ***\n";
+
+// defining array of int formats
+$formats = 
+  '%d %+d %-d 
+   %ld %Ld %4d %-4d
+   %10.4d %-10.4d %.4d %04.4d
+   %\'#2d %\'2d %\'$2d %\'_2d
+   %3$d %4$d %1$d %2$d';
+
+// Arrays of non int values for the format defined in $format.
+// Each sub array contains non int values which correspond to each format in $format
+$args_array = array(
+
+  // array of float values
+  array(2.2, .2, 10.2,
+        123456.234, 123456.234, -1234.6789, +1234.6789,
+        2e10, +2e5, 4e3, 22e+6,
+        12345.780, 12.000000011111, -12.00000111111, -123456.234,
+        3.33, +4.44, 1.11,-2.22 ),
+
+  // array of strings
+  array(" ", ' ', 'hello',
+        '123hello', "123hello", '-123hello', '+123hello',
+        "\12345678hello", "-\12345678hello", '0123456hello', 'h123456ello',
+        "1234hello", "hello\0world", "NULL", "true",
+        "3", "4", '1', '2'),
+
+  // different arrays
+  array( array(0), array(1, 2), array(-1, -1),
+         array("123"), array('123'), array('-123'), array("-123"),
+         array(true), array(false), array(TRUE), array(FALSE),
+         array("123hello"), array("1", "2"), array('123hello'), array(12=>"12twelve"),
+         array("3"), array("4"), array("1"), array("2") ),
+
+  // array of boolean data
+  array( true, TRUE, false,
+         TRUE, 0, FALSE, 1,
+         true, false, TRUE, FALSE,
+         0, 1, 1, 0,
+         1, TRUE, 0, FALSE),
+  
+);
+
+
+/* creating dumping file */
+$data_file = dirname(__FILE__) . '/dump.txt';
+if (!($fp = fopen($data_file, 'wt')))
+   return;
+
+// looping to test vfprintf() with different int formats from the above $format array
+// and with non-int values from the above $args_array array
+$counter = 1;
+foreach($args_array as $args) {
+  fprintf($fp, "\n-- Iteration %d --\n",$counter);
+  vfprintf($fp, $formats, $args);
+  $counter++;
+}
+
+fclose($fp);
+print_r(file_get_contents($data_file));
+echo "\n";
+
+unlink($data_file);
+
+?>
+===DONE===
+--EXPECT--
+*** Testing vfprintf() : int formats and non-integer values ***
+
+-- Iteration 1 --
+2 +0 10 
+   123456 d -1234 1234
+   20000000000 200000     4000 22000000
+   12345 12 -12 -123456
+   10 123456 2 0
+-- Iteration 2 --
+0 +0 0 
+   123 d -123 123 
+            0 0          123456 0000
+   1234 0 $0 _0
+   0 123 0 0
+-- Iteration 3 --
+1 +1 1 
+   1 d    1 1   
+            1 1          1 0001
+   #1 1 $1 _1
+   1 1 1 1
+-- Iteration 4 --
+1 +1 0 
+   1 d    0 1   
+            1 0          1 0000
+   #0 1 $1 _0
+   0 1 1 1
+===DONE===
diff --git a/ext/standard/tests/strings/vfprintf_variation5.phpt b/ext/standard/tests/strings/vfprintf_variation5.phpt
new file mode 100644 (file)
index 0000000..4bac1eb
--- /dev/null
@@ -0,0 +1,86 @@
+--TEST--
+Test vfprintf() function : usage variations - float formats with float values
+--FILE--
+<?php
+/* Prototype  : int vfprintf  ( resource $handle  , string $format , array $args  )
+ * Description: Write a formatted string to a stream
+ * Source code: ext/standard/formatted_print.c
+*/
+
+/*
+ * Test vfprintf() when different float formats and float values are passed to
+ * the '$format' and '$args' arguments of the function
+*/
+
+echo "*** Testing vfprintf() : int formats with float values ***\n";
+
+
+// defining array of float formats
+$formats = array(
+  "%f",
+  "%+f %-f %F",
+  "%lf %Lf, %4f %-4f",
+  "%10.4f %-10.4F %04f %04.4f",
+  "%'#2f %'2f %'$2f %'_2f",
+  "%f %f %f %f",
+  "% %%f f%",
+  '%3$f %4$f %1$f %2$f'
+);
+
+// Arrays of float values for the format defined in $format.
+// Each sub array contains float values which correspond to each format string in $format
+$args_array = array(
+  array(0.0),
+  array(-0.1, +0.1, +10.0000006),
+  array(2147483649, -2147483647, +2147483640, -2147483640),
+  array(2e5, 2e-5, -2e5, -2e-5),
+  array(0.2E5, -0.2e40, 0.2E-20, 0.2E+20),
+  array(0x123b, 0xfAb, 0123, 01293),
+  array(1234.1234, -5678.5678, 2345.2345),
+  array(3.33, 4.44, 1.11, 2.22)
+
+);
+
+/* creating dumping file */
+$data_file = dirname(__FILE__) . '/dump.txt';
+if (!($fp = fopen($data_file, 'wt')))
+   return;
+
+// looping to test vprintf() with different float formats from the above $format array
+// and with float values from the above $args_array array
+$counter = 1;
+foreach($formats as $format) {
+  fprintf($fp, "\n-- Iteration %d --\n",$counter);
+  vfprintf($fp, $format, $args_array[$counter-1]);
+  $counter++;
+}
+
+fclose($fp);
+print_r(file_get_contents($data_file));
+echo "\n";
+
+unlink($data_file);
+
+?>
+===DONE===
+--EXPECT--
+*** Testing vfprintf() : int formats with float values ***
+
+-- Iteration 1 --
+0.000000
+-- Iteration 2 --
+-0.100000 0.100000 10.000001
+-- Iteration 3 --
+2147483649.000000 f, 2147483640.000000 -2147483640.000000
+-- Iteration 4 --
+200000.0000 0.0000     -200000.000000 -0.0000
+-- Iteration 5 --
+20000.000000 -1999999999999999879418332743206357172224.000000 0.000000 20000000000000000000.000000
+-- Iteration 6 --
+4667.000000 4011.000000 83.000000 10.000000
+-- Iteration 7 --
+%-5678.567800 f
+-- Iteration 8 --
+1.110000 2.220000 3.330000 4.440000
+===DONE===
+
diff --git a/ext/standard/tests/strings/vfprintf_variation6.phpt b/ext/standard/tests/strings/vfprintf_variation6.phpt
new file mode 100644 (file)
index 0000000..6b5425d
--- /dev/null
@@ -0,0 +1,108 @@
+--TEST--
+Test vfprintf() function : usage variations - float formats with non-float values
+--FILE--
+<?php
+/* Prototype  : int vfprintf  ( resource $handle  , string $format , array $args  )
+ * Description: Write a formatted string to a stream
+ * Source code: ext/standard/formatted_print.c
+*/
+
+/*
+ * Test vfprintf() when different float formats and non-float values are passed to
+ * the '$format' and '$args' arguments of the function
+*/
+
+echo "*** Testing vfprintf() : float formats and non-float values ***\n";
+
+// defining array of float formats
+$formats = 
+  '%f %+f %-f 
+   %lf %Lf %4f %-4f
+   %10.4f %-10.4f %04f %04.4f
+   %\'#2f %\'2f %\'$2f %\'_2f
+   %3$f %4$f %1$f %2$f';
+
+// Arrays of non float values for the format defined in $format.
+// Each sub array contains non float values which correspond to each format in $format
+$args_array = array(
+
+  // array of int values
+  array(2, -2, +2,
+        123456, 123456234, -12346789, +12346789,
+        123200, +20000, -40000, 22212,
+        12345780, 1211111, -12111111, -12345634,
+        3, +4, 1,-2 ),
+
+  // array of strings
+  array(" ", ' ', 'hello',
+        '123hello', "123hello", '-123hello', '+123hello',
+        "\12345678hello", "-\12345678hello", '0123456hello', 'h123456ello',
+        "1234hello", "hello\0world", "NULL", "true",
+        "3", "4", '1', '2'),
+
+  // different arrays
+  array( array(0), array(1, 2), array(-1, -1),
+         array("123"), array('123'), array('-123'), array("-123"),
+         array(true), array(false), array(TRUE), array(FALSE),
+         array("123hello"), array("1", "2"), array('123hello'), array(12=>"12twelve"),
+         array("3"), array("4"), array("1"), array("2") ),
+
+  // array of boolean data
+  array( true, TRUE, false,
+         TRUE, 0, FALSE, 1,
+         true, false, TRUE, FALSE,
+         0, 1, 1, 0,
+         1, TRUE, 0, FALSE),
+  
+);
+
+/* creating dumping file */
+$data_file = dirname(__FILE__) . '/dump.txt';
+if (!($fp = fopen($data_file, 'wt')))
+   return;
+
+// looping to test vfprintf() with different float formats from the above $format array
+// and with non-float values from the above $args_array array
+$counter = 1;
+foreach($args_array as $args) {
+  fprintf($fp, "\n-- Iteration %d --\n",$counter);
+  vfprintf($fp, $formats, $args);
+  $counter++;
+}
+
+fclose($fp);
+print_r(file_get_contents($data_file));
+echo "\n";
+
+unlink($data_file);
+
+?>
+===DONE===
+--EXPECT--
+*** Testing vfprintf() : float formats and non-float values ***
+
+-- Iteration 1 --
+2.000000 -2.000000 2.000000 
+   123456.000000 f -12346789.000000 12346789.000000
+   123200.0000 20000.0000 -40000.000000 22212.0000
+   12345780.000000 1211111.000000 -12111111.000000 -12345634.000000
+   2.000000 123456.000000 2.000000 -2.000000
+-- Iteration 2 --
+0.000000 +0.000000 0.000000 
+   123.000000 f -123.000000 123.000000
+       0.0000 0.0000     123456.000000 0.0000
+   1234.000000 0.000000 0.000000 0.000000
+   0.000000 123.000000 0.000000 0.000000
+-- Iteration 3 --
+1.000000 +1.000000 1.000000 
+   1.000000 f 1.000000 1.000000
+       1.0000 1.0000     1.000000 1.0000
+   1.000000 1.000000 1.000000 1.000000
+   1.000000 1.000000 1.000000 1.000000
+-- Iteration 4 --
+1.000000 +1.000000 0.000000 
+   1.000000 f 0.000000 1.000000
+       1.0000 0.0000     1.000000 0.0000
+   0.000000 1.000000 1.000000 0.000000
+   0.000000 1.000000 1.000000 1.000000
+===DONE===
diff --git a/ext/standard/tests/strings/vfprintf_variation7.phpt b/ext/standard/tests/strings/vfprintf_variation7.phpt
new file mode 100644 (file)
index 0000000..a206fd8
Binary files /dev/null and b/ext/standard/tests/strings/vfprintf_variation7.phpt differ
diff --git a/ext/standard/tests/strings/vfprintf_variation8.phpt b/ext/standard/tests/strings/vfprintf_variation8.phpt
new file mode 100644 (file)
index 0000000..cda05c4
--- /dev/null
@@ -0,0 +1,111 @@
+--TEST--
+Test vfprintf() function : usage variations - string formats with non-string values
+--FILE--
+<?php
+/* Prototype  : int vfprintf  ( resource $handle  , string $format , array $args  )
+ * Description: Write a formatted string to a stream
+ * Source code: ext/standard/formatted_print.c
+*/
+
+/*
+ * Test vfprintf() when different string formats and non-string values are passed to
+ * the '$format' and '$args' arguments of the function
+*/
+
+error_reporting(E_ALL & ~E_NOTICE);
+
+echo "*** Testing vfprintf() : string formats and non-string values ***\n";
+
+// defining array of string formats
+$formats = 
+  '%s %+s %-s 
+   %ls %Ls %4s %-4s
+   %10.4s %-10.4s %04s %04.4s
+   %\'#2s %\'2s %\'$2s %\'_2s
+   %3$s %4$s %1$s %2$s';
+
+// Arrays of non string values for the format defined in $format.
+// Each sub array contains non string values which correspond to each format in $format
+$args_array = array(
+
+  // array of float values
+  array(2.2, .2, 10.2,
+        123456.234, 123456.234, -1234.6789, +1234.6789,
+        2.1234567e10, +2.7654321e10, -2.7654321e10,
+        12345.780, 12.000000011111, -12.00000111111, -123456.234,
+        3.33, +4.44, 1.11,-2.22 ),
+  
+ // array of int values
+ array(2, -2, +2,
+       123456, 123456234, -12346789, +12346789,
+       123200, +20000, -40000, 22212,
+       12345780, 1211111, -12111111, -12345634,
+       3, +4, 1,-2 ),
+
+
+  // different arrays
+  array( array(0), array(1, 2), array(-1, -1),
+         array("123"), array('123'), array('-123'), array("-123"),
+         array(true), array(false), array(TRUE), array(FALSE),
+         array("123hello"), array("1", "2"), array('123hello'), array(12=>"12twelve"),
+         array("3"), array("4"), array("1"), array("2") ),
+
+  // array of boolean data
+  array( true, TRUE, false,
+         TRUE, 0, FALSE, 1,
+         true, false, TRUE, FALSE,
+         0, 1, 1, 0,
+         1, TRUE, 0, FALSE),
+  
+);
+
+/* creating dumping file */
+$data_file = dirname(__FILE__) . '/dump.txt';
+if (!($fp = fopen($data_file, 'wt')))
+   return;
+
+// looping to test vfprintf() with different string formats from the above $format array
+// and with non-string values from the above $args_array array
+$counter = 1;
+foreach($args_array as $args) {
+  fprintf($fp, "\n-- Iteration %d --\n",$counter);
+  vfprintf($fp, $formats, $args);
+  $counter++;
+}
+
+fclose($fp);
+print_r(file_get_contents($data_file));
+echo "\n";
+
+unlink($data_file);
+?>
+===DONE===
+--EXPECT--
+*** Testing vfprintf() : string formats and non-string values ***
+
+-- Iteration 1 --
+2.2 0.2 10.2 
+   123456.234 s -1234.6789 1234.6789
+         2123 2765       -27654321000 1234
+   12.000000011111 -12.00000111111 -123456.234 3.33
+   10.2 123456.234 2.2 0.2
+-- Iteration 2 --
+2 -2 2 
+   123456 s -12346789 12346789
+         1232 2000       -40000 2221
+   12345780 1211111 -12111111 -12345634
+   2 123456 2 -2
+-- Iteration 3 --
+Array Array Array 
+   Array s Array Array
+         Arra Arra       Array Arra
+   Array Array Array Array
+   Array Array Array Array
+-- Iteration 4 --
+1 1  
+   1 s      1   
+            1            0001 0000
+   #0 1 $1 _0
+    1 1 1
+===DONE===
diff --git a/ext/standard/tests/strings/vfprintf_variation9.phpt b/ext/standard/tests/strings/vfprintf_variation9.phpt
new file mode 100644 (file)
index 0000000..a67c579
--- /dev/null
@@ -0,0 +1,85 @@
+--TEST--
+Test vfprintf() function : usage variations - char formats with char values
+--FILE--
+<?php
+/* Prototype  : int vfprintf  ( resource $handle  , string $format , array $args  )
+ * Description: Write a formatted string to a stream
+ * Source code: ext/standard/formatted_print.c
+*/
+
+/*
+* Test vfprintf() for char formats with an array of chars passed to the function
+*/
+
+echo "*** Testing vfprintf() : char formats with char values ***\n";
+
+
+// defining array of char formats
+$formats = array(
+  "%c",
+  "%+c %-c %C",
+  "%lc %Lc, %4c %-4c",
+  "%10.4c %-10.4c %04c %04.4c",
+  "%'#2c %'2c %'$2c %'_2c",
+  "%c %c %c %c",
+  "% %%c c%",
+  '%3$c %4$c %1$c %2$c'
+);
+
+// Arrays of char values for the format defined in $format.
+// Each sub array contains char values which correspond to each format string in $format
+$args_array = array(
+  array(0),
+  array('c', 67, 68),
+  array(' ', " ", -67, +67),
+  array(97, -97, 98, +98),
+  array(97, -97, 98, +98),
+  array(0x123b, 0xfAb, 0123, 01293),
+  array(38, -1234, 2345),
+  array(67, 68, 65, 66)
+
+);
+
+/* creating dumping file */
+$data_file = dirname(__FILE__) . '/dump.txt';
+if (!($fp = fopen($data_file, 'wt')))
+   return;
+
+// looping to test vfprintf() with different char formats from the above $format array
+// and with char values from the above $args_array array
+$counter = 1;
+foreach($formats as $format) {
+  fprintf($fp, "\n-- Iteration %d --\n",$counter);
+  vfprintf($fp, $format, $args_array[$counter-1]);
+  $counter++;
+}
+
+fclose($fp);
+print_r(file_get_contents($data_file));
+echo "\n";
+
+unlink($data_file);
+?>
+===DONE===
+--EXPECTF--
+*** Testing vfprintf() : char formats with char values ***
+
+-- Iteration 1 --
+%c
+-- Iteration 2 --
+%c C 
+-- Iteration 3 --
+%c c, %s C
+-- Iteration 4 --
+a %s b b
+-- Iteration 5 --
+a %s b b
+-- Iteration 6 --
+; %s S 
+
+-- Iteration 7 --
+%. c
+-- Iteration 8 --
+A B C D
+===DONE===
index 4026d833d17ca37e988f909ac61111c5279a6071..8252c2628d0b0959f1c11940298701a4d7eaf46b 100644 (file)
@@ -32,7 +32,7 @@ $formats = array(
 $args_array = array(
   array(1234567, 01234567, 0 ),
   array(12345678900, 12345678900, 1234, 12345),
-  array("1234000", 10e20, 1.2e2),
+  array("1234000", 10.1234567e5, 1.2e2),
   array(1, 0, 00, "10_"),
   array(3, 4, 1, 2)
 );
@@ -46,8 +46,8 @@ foreach($formats as $format) {
   $counter++;
 }
 
-echo "Done";
 ?>
+===Done===
 --EXPECT--
 *** Testing vsprintf() : unsigned formats and unsigned values ***
 
@@ -58,11 +58,11 @@ unicode(16) "1234567 342391 0"
 unicode(23) "2147483647 u 1234 12345"
 
 -- Iteration 3 --
-unicode(25) "   1234000 2147483647 120"
+unicode(25) "   1234000 1012345    120"
 
 -- Iteration 4 --
 unicode(10) "#1 0 $0 10"
 
 -- Iteration 5 --
 unicode(7) "1 2 3 4"
-Done
+===Done===
index c0268ab511c5b3a1a33ebab745e1566201a94881..79f8c30518a07c91c45159760adb702a7a8d7f19 100644 (file)
@@ -12,12 +12,14 @@ Test vsprintf() function : usage variations - string formats with non-string val
  * the '$format' and '$args' arguments of the function
 */
 
+error_reporting(E_ALL & ~E_NOTICE);
+
 echo "*** Testing vsprintf() : string formats and non-string values ***\n";
 
 // defining array of string formats
 $formats = 
   '%s %+s %-s 
-   %ls %Ls %4s %-4s
+   %ls %4s %-4s
    %10.4s %-10.4s %04s %04.4s
    %\'#2s %\'2s %\'$2s %\'_2s
    %3$s %4$s %1$s %2$s';
@@ -28,14 +30,14 @@ $args_array = array(
 
   // array of float values
   array(2.2, .2, 10.2,
-        123456.234, 123456.234, -1234.6789, +1234.6789,
-        2e10, +2e12, -4e11, 22e+12,
+        123456.234, -1234.6789, +1234.6789,
+        2.1234567e10, +2.7654321e10, -2.7654321e10, 2.1234567e10,
         12345.780, 12.000000011111, -12.00000111111, -123456.234,
         3.33, +4.44, 1.11,-2.22 ),
-
+  
  // array of int values
  array(2, -2, +2,
-       123456, 123456234, -12346789, +12346789,
+       123456, -12346789, +12346789,
        123200, +20000, -40000, 22212,
        12345780, 1211111, -12111111, -12345634,
        3, +4, 1,-2 ),
@@ -43,14 +45,14 @@ $args_array = array(
 
   // different arrays
   array( array(0), array(1, 2), array(-1, -1),
-         array("123"), array('123'), array('-123'), array("-123"),
+         array("123"), array('-123'), array("-123"),
          array(true), array(false), array(TRUE), array(FALSE),
          array("123hello"), array("1", "2"), array('123hello'), array(12=>"12twelve"),
          array("3"), array("4"), array("1"), array("2") ),
 
   // array of boolean data
   array( true, TRUE, false,
-         TRUE, 0, FALSE, 1,
+         TRUE, FALSE, 1,
          true, false, TRUE, FALSE,
          0, 1, 1, 0,
          1, TRUE, 0, FALSE),
@@ -66,72 +68,36 @@ foreach($args_array as $args) {
   $counter++;
 }
 
-echo "Done";
 ?>
---EXPECTF--
+===DONE===
+--EXPECT--
 *** Testing vsprintf() : string formats and non-string values ***
 
 -- Iteration 1 --
-unicode(177) "2.2 0.2 10.2 
-   123456.234 -1234.6789 1234.6789
-         2000 2000       -400000000000 2200
+unicode(174) "2.2 0.2 10.2 
+   123456.234 -1234.6789 1234.6789
+         2123 2765       -27654321000 2123
    12345.78 12.000000011111 -12.00000111111 -123456.234
    10.2 123456.234 2.2 0.2"
 
 -- Iteration 2 --
-unicode(132) "2 -2 2 
-   123456 -12346789 12346789
+unicode(130) "2 -2 2 
+   123456 -12346789 12346789
          1232 2000       -40000 2221
    12345780 1211111 -12111111 -12345634
    2 123456 2 -2"
 
 -- Iteration 3 --
-
-Notice: Array to string conversion in %s on line %d
-
-Notice: Array to string conversion in %s on line %d
-
-Notice: Array to string conversion in %s on line %d
-
-Notice: Array to string conversion in %s on line %d
-
-Notice: Array to string conversion in %s on line %d
-
-Notice: Array to string conversion in %s on line %d
-
-Notice: Array to string conversion in %s on line %d
-
-Notice: Array to string conversion in %s on line %d
-
-Notice: Array to string conversion in %s on line %d
-
-Notice: Array to string conversion in %s on line %d
-
-Notice: Array to string conversion in %s on line %d
-
-Notice: Array to string conversion in %s on line %d
-
-Notice: Array to string conversion in %s on line %d
-
-Notice: Array to string conversion in %s on line %d
-
-Notice: Array to string conversion in %s on line %d
-
-Notice: Array to string conversion in %s on line %d
-
-Notice: Array to string conversion in %s on line %d
-
-Notice: Array to string conversion in %s on line %d
-unicode(131) "Array Array Array 
-   Array s Array Array
+unicode(129) "Array Array Array 
+   Array Array Array
          Arra Arra       Array Arra
    Array Array Array Array
    Array Array Array Array"
 
 -- Iteration 4 --
-unicode(81) "1 1  
-   1      1   
+unicode(79) "1 1  
+   1      1   
             1            0001 0000
    #0 1 $1 _0
     1 1 1"
-Done
+===DONE===
\ No newline at end of file