~ubuntu-branches/ubuntu/quantal/php5/quantal

« back to all changes in this revision

Viewing changes to ext/standard/tests/strings/vfprintf_variation4_64bit.phpt

  • Committer: Bazaar Package Importer
  • Author(s): Sean Finney
  • Date: 2009-07-01 09:12:10 UTC
  • mto: (0.9.1) (1.1.17 upstream)
  • mto: This revision was merged to the branch mainline in revision 58.
  • Revision ID: james.westby@ubuntu.com-20090701091210-go0h6506p62on17r
Tags: upstream-5.3.0
ImportĀ upstreamĀ versionĀ 5.3.0

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
--TEST--
 
2
Test vfprintf() function : usage variations - int formats with non-integer values
 
3
--SKIPIF--
 
4
<?php
 
5
if (PHP_INT_SIZE != 8) die("skip this test is for 64bit platform only");
 
6
?>
 
7
--FILE--
 
8
<?php
 
9
/* Prototype  : int vfprintf  ( resource $handle  , string $format , array $args  )
 
10
 * Description: Write a formatted string to a stream
 
11
 * Source code: ext/standard/formatted_print.c
 
12
*/
 
13
 
 
14
/*
 
15
 * Test vfprintf() when different int formats and non-int values are passed to
 
16
 * the '$format' and '$args' arguments of the function
 
17
*/
 
18
 
 
19
echo "*** Testing vfprintf() : int formats and non-integer values ***\n";
 
20
 
 
21
// defining array of int formats
 
22
$formats = 
 
23
  '%d %+d %-d 
 
24
   %ld %Ld %4d %-4d
 
25
   %10.4d %-10.4d %.4d %04.4d
 
26
   %\'#2d %\'2d %\'$2d %\'_2d
 
27
   %3$d %4$d %1$d %2$d';
 
28
 
 
29
// Arrays of non int values for the format defined in $format.
 
30
// Each sub array contains non int values which correspond to each format in $format
 
31
$args_array = array(
 
32
 
 
33
  // array of float values
 
34
  array(2.2, .2, 10.2,
 
35
        123456.234, 123456.234, -1234.6789, +1234.6789,
 
36
        2e10, +2e5, 4e3, 22e+6,
 
37
        12345.780, 12.000000011111, -12.00000111111, -123456.234,
 
38
        3.33, +4.44, 1.11,-2.22 ),
 
39
 
 
40
  // array of strings
 
41
  array(" ", ' ', 'hello',
 
42
        '123hello', "123hello", '-123hello', '+123hello',
 
43
        "\12345678hello", "-\12345678hello", '0123456hello', 'h123456ello',
 
44
        "1234hello", "hello\0world", "NULL", "true",
 
45
        "3", "4", '1', '2'),
 
46
 
 
47
  // different arrays
 
48
  array( array(0), array(1, 2), array(-1, -1),
 
49
         array("123"), array('123'), array('-123'), array("-123"),
 
50
         array(true), array(false), array(TRUE), array(FALSE),
 
51
         array("123hello"), array("1", "2"), array('123hello'), array(12=>"12twelve"),
 
52
         array("3"), array("4"), array("1"), array("2") ),
 
53
 
 
54
  // array of boolean data
 
55
  array( true, TRUE, false,
 
56
         TRUE, 0, FALSE, 1,
 
57
         true, false, TRUE, FALSE,
 
58
         0, 1, 1, 0,
 
59
         1, TRUE, 0, FALSE),
 
60
  
 
61
);
 
62
 
 
63
 
 
64
/* creating dumping file */
 
65
$data_file = dirname(__FILE__) . '/dump.txt';
 
66
if (!($fp = fopen($data_file, 'wt')))
 
67
   return;
 
68
 
 
69
// looping to test vfprintf() with different int formats from the above $format array
 
70
// and with non-int values from the above $args_array array
 
71
$counter = 1;
 
72
foreach($args_array as $args) {
 
73
  fprintf($fp, "\n-- Iteration %d --\n",$counter);
 
74
  vfprintf($fp, $formats, $args);
 
75
  $counter++;
 
76
}
 
77
 
 
78
fclose($fp);
 
79
print_r(file_get_contents($data_file));
 
80
echo "\n";
 
81
 
 
82
unlink($data_file);
 
83
 
 
84
?>
 
85
===DONE===
 
86
--EXPECT--
 
87
*** Testing vfprintf() : int formats and non-integer values ***
 
88
 
 
89
-- Iteration 1 --
 
90
2 +0 10 
 
91
   123456 d -1234 1234
 
92
   20000000000 200000     4000 22000000
 
93
   12345 12 -12 -123456
 
94
   10 123456 2 0
 
95
-- Iteration 2 --
 
96
0 +0 0 
 
97
   123 d -123 123 
 
98
            0 0          123456 0000
 
99
   1234 0 $0 _0
 
100
   0 123 0 0
 
101
-- Iteration 3 --
 
102
1 +1 1 
 
103
   1 d    1 1   
 
104
            1 1          1 0001
 
105
   #1 1 $1 _1
 
106
   1 1 1 1
 
107
-- Iteration 4 --
 
108
1 +1 0 
 
109
   1 d    0 1   
 
110
            1 0          1 0000
 
111
   #0 1 $1 _0
 
112
   0 1 1 1
 
113
===DONE===