Annotation of embedaddon/php/ext/standard/tests/file/fread_variation4.phpt, revision 1.1.1.1
1.1 misho 1: --TEST--
2: Test fread() function : usage variations - read beyond file size, write only mode
3: --SKIPIF--
4: <?php
5: if (substr(PHP_OS, 0, 3) == 'WIN') {
6: die('skip.. Not valid for Windows');
7: }
8: ?>
9: --FILE--
10: <?php
11: /*
12: Prototype: string fread ( resource $handle [, int $length] );
13: Description: reads up to length bytes from the file pointer referenced by handle.
14: Reading stops when up to length bytes have been read, EOF (end of file) is
15: reached, (for network streams) when a packet becomes available, or (after
16: opening userspace stream) when 8192 bytes have been read whichever comes first.
17: */
18:
19: // include the file.inc for common functions for test
20: include ("file.inc");
21:
22: /* Function : function check_read(resource $file_handle, int $read_size, int $expect_size)
23: Description : Read data from file of size $read_size and verifies that $expected_size no. of
24: bytes are read.
25: $file_handle : File Handle
26: $read_size : No. of bytes to be read.
27: $expect_size : Expected data length
28: Returns: returns the data read
29: */
30: function check_read($file_handle, $read_size, $expect_size) {
31: // print file pointer position before read
32: var_dump( ftell($file_handle) );
33: var_dump( feof($file_handle) );
34:
35: // read the data of size $read_size
36: echo "Reading $read_size bytes from file, expecting $expect_size bytes ... ";
37: $data_from_file = fread($file_handle, $read_size);
38:
39: // check if data read is of expected size
40: if ( strlen($data_from_file) == $expect_size)
41: echo "OK\n";
42: else
43: echo "Error reading file, total number of bytes read = ".strlen($data_from_file)."\n";
44:
45: // file pointer position after read
46: var_dump( ftell($file_handle) );
47: // check if file pointer at eof()
48: var_dump( feof($file_handle) );
49:
50: return $data_from_file;
51: }
52:
53: echo "*** Testing fread() : usage variations ***\n";
54:
55: $file_modes = array("a","ab","at",
56: "w","wb","wt",
57: "x","xb","xt" );
58:
59: $file_content_types = array("numeric","text","text_with_new_line");
60:
61: foreach($file_content_types as $file_content_type) {
62: echo "\n-- Testing fread() with file having content of type ". $file_content_type ." --\n";
63:
64: /* open the file using $files_modes and perform fread() on it */
65: foreach($file_modes as $file_mode) {
66: if(!strstr($file_mode,"x")){
67: /* create files with $file_content_type */
68: create_files ( dirname(__FILE__), 1, $file_content_type, 0755, 1, "w", "fread_variation", 4);
69: }
70:
71: $filename = dirname(__FILE__)."/fread_variation4.tmp"; // this is name of the file created by create_files()
72: echo "-- File opened in mode ".$file_mode." --\n";
73: $file_handle = fopen($filename, $file_mode);
74: if (!$file_handle) {
75: echo "Error: failed to fopen() file: $filename!";
76: exit();
77: }
78:
79: if(strstr($file_mode,"w") || strstr($file_mode,"x") ) {
80: fill_file($file_handle, $file_content_type, 1024);
81: }
82:
83: rewind($file_handle);
84: echo "-- Reading beyond filesize, expeceted : 1024 bytes --\n";
85: // read file by giving size more than its size
86: rewind($file_handle);
87: $data_from_file = check_read($file_handle, 1030, ( strstr($file_mode, "+") ? 1024 : 0) );
88: if ( $data_from_file != false)
89: var_dump( md5($data_from_file) );
90:
91: echo "-- Reading beyond filesize when file pointer pointing to EOF, expeceted : 0 bytes --\n";
92: rewind($file_handle);
93: // try fread when file pointer at end
94: fseek($file_handle, 0, SEEK_END);
95: //reading file when file pointer at end
96: $data_from_file = check_read($file_handle, 10, 0);
97: if ( $data_from_file != false)
98: var_dump( md5($data_from_file) );
99:
100: // now close the file
101: fclose($file_handle);
102:
103: // delete the file created
104: delete_file($filename); // delete file
105: } // end of inner foreach loop
106: }// end of outer foreach loop
107:
108: echo"Done\n";
109: ?>
110: --EXPECTF--
111: *** Testing fread() : usage variations ***
112:
113: -- Testing fread() with file having content of type numeric --
114: -- File opened in mode a --
115: -- Reading beyond filesize, expeceted : 1024 bytes --
116: int(0)
117: bool(false)
118: Reading 1030 bytes from file, expecting 0 bytes ... OK
119: int(0)
120: bool(false)
121: -- Reading beyond filesize when file pointer pointing to EOF, expeceted : 0 bytes --
122: int(1024)
123: bool(false)
124: Reading 10 bytes from file, expecting 0 bytes ... OK
125: int(1024)
126: bool(false)
127: -- File opened in mode ab --
128: -- Reading beyond filesize, expeceted : 1024 bytes --
129: int(0)
130: bool(false)
131: Reading 1030 bytes from file, expecting 0 bytes ... OK
132: int(0)
133: bool(false)
134: -- Reading beyond filesize when file pointer pointing to EOF, expeceted : 0 bytes --
135: int(1024)
136: bool(false)
137: Reading 10 bytes from file, expecting 0 bytes ... OK
138: int(1024)
139: bool(false)
140: -- File opened in mode at --
141: -- Reading beyond filesize, expeceted : 1024 bytes --
142: int(0)
143: bool(false)
144: Reading 1030 bytes from file, expecting 0 bytes ... OK
145: int(0)
146: bool(false)
147: -- Reading beyond filesize when file pointer pointing to EOF, expeceted : 0 bytes --
148: int(1024)
149: bool(false)
150: Reading 10 bytes from file, expecting 0 bytes ... OK
151: int(1024)
152: bool(false)
153: -- File opened in mode w --
154: -- Reading beyond filesize, expeceted : 1024 bytes --
155: int(0)
156: bool(false)
157: Reading 1030 bytes from file, expecting 0 bytes ... OK
158: int(0)
159: bool(false)
160: -- Reading beyond filesize when file pointer pointing to EOF, expeceted : 0 bytes --
161: int(1024)
162: bool(false)
163: Reading 10 bytes from file, expecting 0 bytes ... OK
164: int(1024)
165: bool(false)
166: -- File opened in mode wb --
167: -- Reading beyond filesize, expeceted : 1024 bytes --
168: int(0)
169: bool(false)
170: Reading 1030 bytes from file, expecting 0 bytes ... OK
171: int(0)
172: bool(false)
173: -- Reading beyond filesize when file pointer pointing to EOF, expeceted : 0 bytes --
174: int(1024)
175: bool(false)
176: Reading 10 bytes from file, expecting 0 bytes ... OK
177: int(1024)
178: bool(false)
179: -- File opened in mode wt --
180: -- Reading beyond filesize, expeceted : 1024 bytes --
181: int(0)
182: bool(false)
183: Reading 1030 bytes from file, expecting 0 bytes ... OK
184: int(0)
185: bool(false)
186: -- Reading beyond filesize when file pointer pointing to EOF, expeceted : 0 bytes --
187: int(1024)
188: bool(false)
189: Reading 10 bytes from file, expecting 0 bytes ... OK
190: int(1024)
191: bool(false)
192: -- File opened in mode x --
193: -- Reading beyond filesize, expeceted : 1024 bytes --
194: int(0)
195: bool(false)
196: Reading 1030 bytes from file, expecting 0 bytes ... OK
197: int(0)
198: bool(false)
199: -- Reading beyond filesize when file pointer pointing to EOF, expeceted : 0 bytes --
200: int(1024)
201: bool(false)
202: Reading 10 bytes from file, expecting 0 bytes ... OK
203: int(1024)
204: bool(false)
205: -- File opened in mode xb --
206: -- Reading beyond filesize, expeceted : 1024 bytes --
207: int(0)
208: bool(false)
209: Reading 1030 bytes from file, expecting 0 bytes ... OK
210: int(0)
211: bool(false)
212: -- Reading beyond filesize when file pointer pointing to EOF, expeceted : 0 bytes --
213: int(1024)
214: bool(false)
215: Reading 10 bytes from file, expecting 0 bytes ... OK
216: int(1024)
217: bool(false)
218: -- File opened in mode xt --
219: -- Reading beyond filesize, expeceted : 1024 bytes --
220: int(0)
221: bool(false)
222: Reading 1030 bytes from file, expecting 0 bytes ... OK
223: int(0)
224: bool(false)
225: -- Reading beyond filesize when file pointer pointing to EOF, expeceted : 0 bytes --
226: int(1024)
227: bool(false)
228: Reading 10 bytes from file, expecting 0 bytes ... OK
229: int(1024)
230: bool(false)
231:
232: -- Testing fread() with file having content of type text --
233: -- File opened in mode a --
234: -- Reading beyond filesize, expeceted : 1024 bytes --
235: int(0)
236: bool(false)
237: Reading 1030 bytes from file, expecting 0 bytes ... OK
238: int(0)
239: bool(false)
240: -- Reading beyond filesize when file pointer pointing to EOF, expeceted : 0 bytes --
241: int(1024)
242: bool(false)
243: Reading 10 bytes from file, expecting 0 bytes ... OK
244: int(1024)
245: bool(false)
246: -- File opened in mode ab --
247: -- Reading beyond filesize, expeceted : 1024 bytes --
248: int(0)
249: bool(false)
250: Reading 1030 bytes from file, expecting 0 bytes ... OK
251: int(0)
252: bool(false)
253: -- Reading beyond filesize when file pointer pointing to EOF, expeceted : 0 bytes --
254: int(1024)
255: bool(false)
256: Reading 10 bytes from file, expecting 0 bytes ... OK
257: int(1024)
258: bool(false)
259: -- File opened in mode at --
260: -- Reading beyond filesize, expeceted : 1024 bytes --
261: int(0)
262: bool(false)
263: Reading 1030 bytes from file, expecting 0 bytes ... OK
264: int(0)
265: bool(false)
266: -- Reading beyond filesize when file pointer pointing to EOF, expeceted : 0 bytes --
267: int(1024)
268: bool(false)
269: Reading 10 bytes from file, expecting 0 bytes ... OK
270: int(1024)
271: bool(false)
272: -- File opened in mode w --
273: -- Reading beyond filesize, expeceted : 1024 bytes --
274: int(0)
275: bool(false)
276: Reading 1030 bytes from file, expecting 0 bytes ... OK
277: int(0)
278: bool(false)
279: -- Reading beyond filesize when file pointer pointing to EOF, expeceted : 0 bytes --
280: int(1024)
281: bool(false)
282: Reading 10 bytes from file, expecting 0 bytes ... OK
283: int(1024)
284: bool(false)
285: -- File opened in mode wb --
286: -- Reading beyond filesize, expeceted : 1024 bytes --
287: int(0)
288: bool(false)
289: Reading 1030 bytes from file, expecting 0 bytes ... OK
290: int(0)
291: bool(false)
292: -- Reading beyond filesize when file pointer pointing to EOF, expeceted : 0 bytes --
293: int(1024)
294: bool(false)
295: Reading 10 bytes from file, expecting 0 bytes ... OK
296: int(1024)
297: bool(false)
298: -- File opened in mode wt --
299: -- Reading beyond filesize, expeceted : 1024 bytes --
300: int(0)
301: bool(false)
302: Reading 1030 bytes from file, expecting 0 bytes ... OK
303: int(0)
304: bool(false)
305: -- Reading beyond filesize when file pointer pointing to EOF, expeceted : 0 bytes --
306: int(1024)
307: bool(false)
308: Reading 10 bytes from file, expecting 0 bytes ... OK
309: int(1024)
310: bool(false)
311: -- File opened in mode x --
312: -- Reading beyond filesize, expeceted : 1024 bytes --
313: int(0)
314: bool(false)
315: Reading 1030 bytes from file, expecting 0 bytes ... OK
316: int(0)
317: bool(false)
318: -- Reading beyond filesize when file pointer pointing to EOF, expeceted : 0 bytes --
319: int(1024)
320: bool(false)
321: Reading 10 bytes from file, expecting 0 bytes ... OK
322: int(1024)
323: bool(false)
324: -- File opened in mode xb --
325: -- Reading beyond filesize, expeceted : 1024 bytes --
326: int(0)
327: bool(false)
328: Reading 1030 bytes from file, expecting 0 bytes ... OK
329: int(0)
330: bool(false)
331: -- Reading beyond filesize when file pointer pointing to EOF, expeceted : 0 bytes --
332: int(1024)
333: bool(false)
334: Reading 10 bytes from file, expecting 0 bytes ... OK
335: int(1024)
336: bool(false)
337: -- File opened in mode xt --
338: -- Reading beyond filesize, expeceted : 1024 bytes --
339: int(0)
340: bool(false)
341: Reading 1030 bytes from file, expecting 0 bytes ... OK
342: int(0)
343: bool(false)
344: -- Reading beyond filesize when file pointer pointing to EOF, expeceted : 0 bytes --
345: int(1024)
346: bool(false)
347: Reading 10 bytes from file, expecting 0 bytes ... OK
348: int(1024)
349: bool(false)
350:
351: -- Testing fread() with file having content of type text_with_new_line --
352: -- File opened in mode a --
353: -- Reading beyond filesize, expeceted : 1024 bytes --
354: int(0)
355: bool(false)
356: Reading 1030 bytes from file, expecting 0 bytes ... OK
357: int(0)
358: bool(false)
359: -- Reading beyond filesize when file pointer pointing to EOF, expeceted : 0 bytes --
360: int(1024)
361: bool(false)
362: Reading 10 bytes from file, expecting 0 bytes ... OK
363: int(1024)
364: bool(false)
365: -- File opened in mode ab --
366: -- Reading beyond filesize, expeceted : 1024 bytes --
367: int(0)
368: bool(false)
369: Reading 1030 bytes from file, expecting 0 bytes ... OK
370: int(0)
371: bool(false)
372: -- Reading beyond filesize when file pointer pointing to EOF, expeceted : 0 bytes --
373: int(1024)
374: bool(false)
375: Reading 10 bytes from file, expecting 0 bytes ... OK
376: int(1024)
377: bool(false)
378: -- File opened in mode at --
379: -- Reading beyond filesize, expeceted : 1024 bytes --
380: int(0)
381: bool(false)
382: Reading 1030 bytes from file, expecting 0 bytes ... OK
383: int(0)
384: bool(false)
385: -- Reading beyond filesize when file pointer pointing to EOF, expeceted : 0 bytes --
386: int(1024)
387: bool(false)
388: Reading 10 bytes from file, expecting 0 bytes ... OK
389: int(1024)
390: bool(false)
391: -- File opened in mode w --
392: -- Reading beyond filesize, expeceted : 1024 bytes --
393: int(0)
394: bool(false)
395: Reading 1030 bytes from file, expecting 0 bytes ... OK
396: int(0)
397: bool(false)
398: -- Reading beyond filesize when file pointer pointing to EOF, expeceted : 0 bytes --
399: int(1024)
400: bool(false)
401: Reading 10 bytes from file, expecting 0 bytes ... OK
402: int(1024)
403: bool(false)
404: -- File opened in mode wb --
405: -- Reading beyond filesize, expeceted : 1024 bytes --
406: int(0)
407: bool(false)
408: Reading 1030 bytes from file, expecting 0 bytes ... OK
409: int(0)
410: bool(false)
411: -- Reading beyond filesize when file pointer pointing to EOF, expeceted : 0 bytes --
412: int(1024)
413: bool(false)
414: Reading 10 bytes from file, expecting 0 bytes ... OK
415: int(1024)
416: bool(false)
417: -- File opened in mode wt --
418: -- Reading beyond filesize, expeceted : 1024 bytes --
419: int(0)
420: bool(false)
421: Reading 1030 bytes from file, expecting 0 bytes ... OK
422: int(0)
423: bool(false)
424: -- Reading beyond filesize when file pointer pointing to EOF, expeceted : 0 bytes --
425: int(1024)
426: bool(false)
427: Reading 10 bytes from file, expecting 0 bytes ... OK
428: int(1024)
429: bool(false)
430: -- File opened in mode x --
431: -- Reading beyond filesize, expeceted : 1024 bytes --
432: int(0)
433: bool(false)
434: Reading 1030 bytes from file, expecting 0 bytes ... OK
435: int(0)
436: bool(false)
437: -- Reading beyond filesize when file pointer pointing to EOF, expeceted : 0 bytes --
438: int(1024)
439: bool(false)
440: Reading 10 bytes from file, expecting 0 bytes ... OK
441: int(1024)
442: bool(false)
443: -- File opened in mode xb --
444: -- Reading beyond filesize, expeceted : 1024 bytes --
445: int(0)
446: bool(false)
447: Reading 1030 bytes from file, expecting 0 bytes ... OK
448: int(0)
449: bool(false)
450: -- Reading beyond filesize when file pointer pointing to EOF, expeceted : 0 bytes --
451: int(1024)
452: bool(false)
453: Reading 10 bytes from file, expecting 0 bytes ... OK
454: int(1024)
455: bool(false)
456: -- File opened in mode xt --
457: -- Reading beyond filesize, expeceted : 1024 bytes --
458: int(0)
459: bool(false)
460: Reading 1030 bytes from file, expecting 0 bytes ... OK
461: int(0)
462: bool(false)
463: -- Reading beyond filesize when file pointer pointing to EOF, expeceted : 0 bytes --
464: int(1024)
465: bool(false)
466: Reading 10 bytes from file, expecting 0 bytes ... OK
467: int(1024)
468: bool(false)
469: Done
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>