summaryrefslogtreecommitdiff
path: root/ext/standard/tests/strings/vprintf_variation3.phpt
diff options
context:
space:
mode:
Diffstat (limited to 'ext/standard/tests/strings/vprintf_variation3.phpt')
-rw-r--r--ext/standard/tests/strings/vprintf_variation3.phpt91
1 files changed, 91 insertions, 0 deletions
diff --git a/ext/standard/tests/strings/vprintf_variation3.phpt b/ext/standard/tests/strings/vprintf_variation3.phpt
new file mode 100644
index 0000000000..41c76487c8
--- /dev/null
+++ b/ext/standard/tests/strings/vprintf_variation3.phpt
@@ -0,0 +1,91 @@
+--TEST--
+Test vprintf() function : usage variations - int formats with int values
+--FILE--
+<?php
+/* Prototype : string vprintf(string format, array args)
+ * Description: Output a formatted string
+ * Source code: ext/standard/formatted_print.c
+*/
+
+/*
+ * Test vprintf() when different int formats and int values are passed to
+ * the '$format' and '$args' arguments of the function
+*/
+
+echo "*** Testing vprintf() : 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 vprintf() with different int formats from the above $format array
+// and with int values from the above $args_array array
+$counter = 1;
+foreach($formats as $format) {
+ echo "\n-- Iteration $counter --\n";
+ $result = vprintf($format, $args_array[$counter-1]);
+ echo "\n";
+ var_dump($result);
+ $counter++;
+}
+
+?>
+===DONE===
+--EXPECT--
+*** Testing vprintf() : int formats with int values ***
+
+-- Iteration 1 --
+0
+int(1)
+
+-- Iteration 2 --
+-1 1
+int(5)
+
+-- Iteration 3 --
+2147483647 d, 2147483640 -2147483640
+int(36)
+
+-- Iteration 4 --
+ 123456 12345678 -1234567 1234567
+int(38)
+
+-- Iteration 5 --
+111 2222 333333 44444444
+int(24)
+
+-- Iteration 6 --
+4667 4011 83 10
+int(15)
+
+-- Iteration 7 --
+%-5678 d
+int(8)
+
+-- Iteration 8 --
+1 2 3 4
+int(7)
+===DONE===