Annotation of embedaddon/php/ext/standard/tests/file/fgets_error.phpt, revision 1.1.1.1
1.1 misho 1: --TEST--
2: Test fgets() function : error conditions
3: --FILE--
4: <?php
5: /*
6: Prototype: string fgets ( resource $handle [, int $length] );
7: Description: Gets line from file pointer
8: */
9:
10: echo "*** Testing error conditions ***\n";
11: // zero argument
12: echo "-- Testing fgets() with zero argument --\n";
13: var_dump( fgets() );
14:
15: // more than expected no. of args
16: echo "-- Testing fgets() with more than expected number of arguments --\n";
17: $fp = fopen(__FILE__, "r");
18: var_dump( fgets($fp, 10, $fp) );
19:
20: // invalid length argument
21: echo "-- Testing fgets() with invalid length arguments --\n";
22: $len = 0;
23: var_dump( fgets($fp, $len) );
24: $len = -10;
25: var_dump( fgets($fp, $len) );
26: $len = 1;
27: var_dump( fgets($fp, $len) ); // return length - 1 always, expect false
28:
29:
30: // test invalid arguments : non-resources
31: echo "-- Testing fgets() with invalid arguments --\n";
32: $invalid_args = array (
33: "string",
34: 10,
35: 10.5,
36: true,
37: array(1,2,3),
38: new stdclass,
39: );
40: /* loop to test fgets() with different invalid type of args */
41: for($loop_counter = 1; $loop_counter <= count($invalid_args); $loop_counter++) {
42: echo "-- Iteration $loop_counter --\n";
43: var_dump( fgets($invalid_args[$loop_counter - 1], 10) );
44: }
45:
46: // fgets() on a file handle which is already closed
47: echo "-- Testing fgets() with closed/unset file handle --";
48: fclose($fp);
49: var_dump(fgets($fp,10));
50:
51: // fgets() on a file handle which is unset
52: $file_handle = fopen(__FILE__, "r");
53: unset($file_handle); //unset file handle
54: var_dump( fgets(@$file_handle,10));
55:
56: echo "Done\n";
57: ?>
58: --EXPECTF--
59: *** Testing error conditions ***
60: -- Testing fgets() with zero argument --
61:
62: Warning: fgets() expects at least 1 parameter, 0 given in %s on line %d
63: bool(false)
64: -- Testing fgets() with more than expected number of arguments --
65:
66: Warning: fgets() expects at most 2 parameters, 3 given in %s on line %d
67: bool(false)
68: -- Testing fgets() with invalid length arguments --
69:
70: Warning: fgets(): Length parameter must be greater than 0 in %s on line %d
71: bool(false)
72:
73: Warning: fgets(): Length parameter must be greater than 0 in %s on line %d
74: bool(false)
75: bool(false)
76: -- Testing fgets() with invalid arguments --
77: -- Iteration 1 --
78:
79: Warning: fgets() expects parameter 1 to be resource, string given in %s on line %d
80: bool(false)
81: -- Iteration 2 --
82:
83: Warning: fgets() expects parameter 1 to be resource, integer given in %s on line %d
84: bool(false)
85: -- Iteration 3 --
86:
87: Warning: fgets() expects parameter 1 to be resource, double given in %s on line %d
88: bool(false)
89: -- Iteration 4 --
90:
91: Warning: fgets() expects parameter 1 to be resource, boolean given in %s on line %d
92: bool(false)
93: -- Iteration 5 --
94:
95: Warning: fgets() expects parameter 1 to be resource, array given in %s on line %d
96: bool(false)
97: -- Iteration 6 --
98:
99: Warning: fgets() expects parameter 1 to be resource, object given in %s on line %d
100: bool(false)
101: -- Testing fgets() with closed/unset file handle --
102: Warning: fgets(): %d is not a valid stream resource in %s on line %d
103: bool(false)
104:
105: Warning: fgets() expects parameter 1 to be resource, null given in %s on line %d
106: bool(false)
107: Done
108:
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>