Annotation of embedaddon/php/ext/standard/tests/file/fread_variation2.phpt, revision 1.1.1.1
1.1 misho 1: --TEST--
2: Test fread() function : usage variations - read some/all chars, write only mode (Bug #42036)
3: --FILE--
4: <?php
5: /*
6: Prototype: string fread ( resource $handle [, int $length] );
7: Description: reads up to length bytes from the file pointer referenced by handle.
8: Reading stops when up to length bytes have been read, EOF (end of file) is
9: reached, (for network streams) when a packet becomes available, or (after
10: opening userspace stream) when 8192 bytes have been read whichever comes first.
11: */
12:
13: /* Try reading some or all content of the file opened in write only mode */
14:
15: // include the file.inc for common functions for test
16: include ("file.inc");
17:
18: /* Function : function check_read(resource $file_handle, int $read_size, int $expect_size)
19: Description : Read data from file of size $read_size and verifies that $expected_size no. of
20: bytes are read.
21: $file_handle : File Handle
22: $read_size : No. of bytes to be read.
23: $expect_size : Expected data length
24: Returns: returns the data read
25: */
26: function check_read($file_handle, $read_size, $expect_size) {
27: // print file pointer position before read
28: var_dump( ftell($file_handle) );
29: var_dump( feof($file_handle) );
30:
31: // read the data of size $read_size
32: echo "Reading $read_size bytes from file, expecting $expect_size bytes ... ";
33: $data_from_file = fread($file_handle, $read_size);
34:
35: // check if data read is of expected size
36: if ( strlen($data_from_file) == $expect_size)
37: echo "OK\n";
38: else
39: echo "Error reading file, total number of bytes read = ".strlen($data_from_file)."\n";
40:
41: // file pointer position after read
42: var_dump( ftell($file_handle) );
43: // check if file pointer at eof()
44: var_dump( feof($file_handle) );
45: echo "\n";
46:
47: return $data_from_file;
48: }
49:
50: echo "*** Testing fread() : usage variations ***\n";
51:
52: $file_modes = array("a","ab","at",
53: "w","wb","wt",
54: "x","xb","xt" );
55:
56: $file_content_types = array("numeric","text","text_with_new_line", "alphanumeric");
57:
58: foreach($file_content_types as $file_content_type) {
59: echo "\n-- Testing fread() with file having content of type ". $file_content_type ." --\n";
60:
61: /* open the file using $files_modes and perform fread() on it */
62: foreach($file_modes as $file_mode) {
63: if(!strstr($file_mode,"x")){
64: /* create files with $file_content_type */
65: create_files ( dirname(__FILE__), 1, $file_content_type, 0755, 1, "w", "fread_variation", 2);
66: }
67:
68: $filename = dirname(__FILE__)."/fread_variation2.tmp"; // this is name of the file created by create_files()
69: echo "-- File opened in mode ".$file_mode." --\n";
70: $file_handle = fopen($filename, $file_mode);
71: if (!$file_handle) {
72: echo "Error: failed to fopen() file: $filename!";
73: exit();
74: }
75:
76: if(strstr($file_mode,"w") || strstr($file_mode,"x") ) {
77: fill_file($file_handle, $file_content_type, 1024);
78: }
79:
80: rewind($file_handle);
81: echo "-- Reading entire file content, expeceted : 0 bytes --\n";
82: // read from file, by giving the file actual size,
83: $data_from_file = check_read($file_handle, 1024, (strstr($file_mode, "+") ? 1024 : 0 ) );
84: // calculate the hash and dump it, if data read, expecting here no data was read
85: if ( $data_from_file != false)
86: var_dump( md5($data_from_file) );
87:
88: // reading file by giving less than its size
89: echo "-- Reading file content less than max. file size, expeceted : 0 bytes --\n";
90: rewind($file_handle);
91: $data_from_file = check_read($file_handle, 1000, (strstr($file_mode, "+") ? 1000 : 0 ) );
92: // calculate the hash and dump it, if data read, expecting here no data was read
93: if ( $data_from_file != false)
94: var_dump( md5($data_from_file) );
95:
96: // now close the file
97: fclose($file_handle);
98:
99: // delete the file created
100: delete_file($filename); // delete file
101: } // end of inner foreach loop
102: }// end of outer foreach loop
103:
104: echo "Done\n";
105: ?>
106: --EXPECTF--
107: *** Testing fread() : usage variations ***
108:
109: -- Testing fread() with file having content of type numeric --
110: -- File opened in mode a --
111: -- Reading entire file content, expeceted : 0 bytes --
112: int(0)
113: bool(false)
114: Reading 1024 bytes from file, expecting 0 bytes ... OK
115: int(0)
116: bool(false)
117:
118: -- Reading file content less than max. file size, expeceted : 0 bytes --
119: int(0)
120: bool(false)
121: Reading 1000 bytes from file, expecting 0 bytes ... OK
122: int(0)
123: bool(false)
124:
125: -- File opened in mode ab --
126: -- Reading entire file content, expeceted : 0 bytes --
127: int(0)
128: bool(false)
129: Reading 1024 bytes from file, expecting 0 bytes ... OK
130: int(0)
131: bool(false)
132:
133: -- Reading file content less than max. file size, expeceted : 0 bytes --
134: int(0)
135: bool(false)
136: Reading 1000 bytes from file, expecting 0 bytes ... OK
137: int(0)
138: bool(false)
139:
140: -- File opened in mode at --
141: -- Reading entire file content, expeceted : 0 bytes --
142: int(0)
143: bool(false)
144: Reading 1024 bytes from file, expecting 0 bytes ... OK
145: int(0)
146: bool(false)
147:
148: -- Reading file content less than max. file size, expeceted : 0 bytes --
149: int(0)
150: bool(false)
151: Reading 1000 bytes from file, expecting 0 bytes ... OK
152: int(0)
153: bool(false)
154:
155: -- File opened in mode w --
156: -- Reading entire file content, expeceted : 0 bytes --
157: int(0)
158: bool(false)
159: Reading 1024 bytes from file, expecting 0 bytes ... OK
160: int(0)
161: bool(false)
162:
163: -- Reading file content less than max. file size, expeceted : 0 bytes --
164: int(0)
165: bool(false)
166: Reading 1000 bytes from file, expecting 0 bytes ... OK
167: int(0)
168: bool(false)
169:
170: -- File opened in mode wb --
171: -- Reading entire file content, expeceted : 0 bytes --
172: int(0)
173: bool(false)
174: Reading 1024 bytes from file, expecting 0 bytes ... OK
175: int(0)
176: bool(false)
177:
178: -- Reading file content less than max. file size, expeceted : 0 bytes --
179: int(0)
180: bool(false)
181: Reading 1000 bytes from file, expecting 0 bytes ... OK
182: int(0)
183: bool(false)
184:
185: -- File opened in mode wt --
186: -- Reading entire file content, expeceted : 0 bytes --
187: int(0)
188: bool(false)
189: Reading 1024 bytes from file, expecting 0 bytes ... OK
190: int(0)
191: bool(false)
192:
193: -- Reading file content less than max. file size, expeceted : 0 bytes --
194: int(0)
195: bool(false)
196: Reading 1000 bytes from file, expecting 0 bytes ... OK
197: int(0)
198: bool(false)
199:
200: -- File opened in mode x --
201: -- Reading entire file content, expeceted : 0 bytes --
202: int(0)
203: bool(false)
204: Reading 1024 bytes from file, expecting 0 bytes ... OK
205: int(0)
206: bool(false)
207:
208: -- Reading file content less than max. file size, expeceted : 0 bytes --
209: int(0)
210: bool(false)
211: Reading 1000 bytes from file, expecting 0 bytes ... OK
212: int(0)
213: bool(false)
214:
215: -- File opened in mode xb --
216: -- Reading entire file content, expeceted : 0 bytes --
217: int(0)
218: bool(false)
219: Reading 1024 bytes from file, expecting 0 bytes ... OK
220: int(0)
221: bool(false)
222:
223: -- Reading file content less than max. file size, expeceted : 0 bytes --
224: int(0)
225: bool(false)
226: Reading 1000 bytes from file, expecting 0 bytes ... OK
227: int(0)
228: bool(false)
229:
230: -- File opened in mode xt --
231: -- Reading entire file content, expeceted : 0 bytes --
232: int(0)
233: bool(false)
234: Reading 1024 bytes from file, expecting 0 bytes ... OK
235: int(0)
236: bool(false)
237:
238: -- Reading file content less than max. file size, expeceted : 0 bytes --
239: int(0)
240: bool(false)
241: Reading 1000 bytes from file, expecting 0 bytes ... OK
242: int(0)
243: bool(false)
244:
245:
246: -- Testing fread() with file having content of type text --
247: -- File opened in mode a --
248: -- Reading entire file content, expeceted : 0 bytes --
249: int(0)
250: bool(false)
251: Reading 1024 bytes from file, expecting 0 bytes ... OK
252: int(0)
253: bool(false)
254:
255: -- Reading file content less than max. file size, expeceted : 0 bytes --
256: int(0)
257: bool(false)
258: Reading 1000 bytes from file, expecting 0 bytes ... OK
259: int(0)
260: bool(false)
261:
262: -- File opened in mode ab --
263: -- Reading entire file content, expeceted : 0 bytes --
264: int(0)
265: bool(false)
266: Reading 1024 bytes from file, expecting 0 bytes ... OK
267: int(0)
268: bool(false)
269:
270: -- Reading file content less than max. file size, expeceted : 0 bytes --
271: int(0)
272: bool(false)
273: Reading 1000 bytes from file, expecting 0 bytes ... OK
274: int(0)
275: bool(false)
276:
277: -- File opened in mode at --
278: -- Reading entire file content, expeceted : 0 bytes --
279: int(0)
280: bool(false)
281: Reading 1024 bytes from file, expecting 0 bytes ... OK
282: int(0)
283: bool(false)
284:
285: -- Reading file content less than max. file size, expeceted : 0 bytes --
286: int(0)
287: bool(false)
288: Reading 1000 bytes from file, expecting 0 bytes ... OK
289: int(0)
290: bool(false)
291:
292: -- File opened in mode w --
293: -- Reading entire file content, expeceted : 0 bytes --
294: int(0)
295: bool(false)
296: Reading 1024 bytes from file, expecting 0 bytes ... OK
297: int(0)
298: bool(false)
299:
300: -- Reading file content less than max. file size, expeceted : 0 bytes --
301: int(0)
302: bool(false)
303: Reading 1000 bytes from file, expecting 0 bytes ... OK
304: int(0)
305: bool(false)
306:
307: -- File opened in mode wb --
308: -- Reading entire file content, expeceted : 0 bytes --
309: int(0)
310: bool(false)
311: Reading 1024 bytes from file, expecting 0 bytes ... OK
312: int(0)
313: bool(false)
314:
315: -- Reading file content less than max. file size, expeceted : 0 bytes --
316: int(0)
317: bool(false)
318: Reading 1000 bytes from file, expecting 0 bytes ... OK
319: int(0)
320: bool(false)
321:
322: -- File opened in mode wt --
323: -- Reading entire file content, expeceted : 0 bytes --
324: int(0)
325: bool(false)
326: Reading 1024 bytes from file, expecting 0 bytes ... OK
327: int(0)
328: bool(false)
329:
330: -- Reading file content less than max. file size, expeceted : 0 bytes --
331: int(0)
332: bool(false)
333: Reading 1000 bytes from file, expecting 0 bytes ... OK
334: int(0)
335: bool(false)
336:
337: -- File opened in mode x --
338: -- Reading entire file content, expeceted : 0 bytes --
339: int(0)
340: bool(false)
341: Reading 1024 bytes from file, expecting 0 bytes ... OK
342: int(0)
343: bool(false)
344:
345: -- Reading file content less than max. file size, expeceted : 0 bytes --
346: int(0)
347: bool(false)
348: Reading 1000 bytes from file, expecting 0 bytes ... OK
349: int(0)
350: bool(false)
351:
352: -- File opened in mode xb --
353: -- Reading entire file content, expeceted : 0 bytes --
354: int(0)
355: bool(false)
356: Reading 1024 bytes from file, expecting 0 bytes ... OK
357: int(0)
358: bool(false)
359:
360: -- Reading file content less than max. file size, expeceted : 0 bytes --
361: int(0)
362: bool(false)
363: Reading 1000 bytes from file, expecting 0 bytes ... OK
364: int(0)
365: bool(false)
366:
367: -- File opened in mode xt --
368: -- Reading entire file content, expeceted : 0 bytes --
369: int(0)
370: bool(false)
371: Reading 1024 bytes from file, expecting 0 bytes ... OK
372: int(0)
373: bool(false)
374:
375: -- Reading file content less than max. file size, expeceted : 0 bytes --
376: int(0)
377: bool(false)
378: Reading 1000 bytes from file, expecting 0 bytes ... OK
379: int(0)
380: bool(false)
381:
382:
383: -- Testing fread() with file having content of type text_with_new_line --
384: -- File opened in mode a --
385: -- Reading entire file content, expeceted : 0 bytes --
386: int(0)
387: bool(false)
388: Reading 1024 bytes from file, expecting 0 bytes ... OK
389: int(0)
390: bool(false)
391:
392: -- Reading file content less than max. file size, expeceted : 0 bytes --
393: int(0)
394: bool(false)
395: Reading 1000 bytes from file, expecting 0 bytes ... OK
396: int(0)
397: bool(false)
398:
399: -- File opened in mode ab --
400: -- Reading entire file content, expeceted : 0 bytes --
401: int(0)
402: bool(false)
403: Reading 1024 bytes from file, expecting 0 bytes ... OK
404: int(0)
405: bool(false)
406:
407: -- Reading file content less than max. file size, expeceted : 0 bytes --
408: int(0)
409: bool(false)
410: Reading 1000 bytes from file, expecting 0 bytes ... OK
411: int(0)
412: bool(false)
413:
414: -- File opened in mode at --
415: -- Reading entire file content, expeceted : 0 bytes --
416: int(0)
417: bool(false)
418: Reading 1024 bytes from file, expecting 0 bytes ... OK
419: int(0)
420: bool(false)
421:
422: -- Reading file content less than max. file size, expeceted : 0 bytes --
423: int(0)
424: bool(false)
425: Reading 1000 bytes from file, expecting 0 bytes ... OK
426: int(0)
427: bool(false)
428:
429: -- File opened in mode w --
430: -- Reading entire file content, expeceted : 0 bytes --
431: int(0)
432: bool(false)
433: Reading 1024 bytes from file, expecting 0 bytes ... OK
434: int(0)
435: bool(false)
436:
437: -- Reading file content less than max. file size, expeceted : 0 bytes --
438: int(0)
439: bool(false)
440: Reading 1000 bytes from file, expecting 0 bytes ... OK
441: int(0)
442: bool(false)
443:
444: -- File opened in mode wb --
445: -- Reading entire file content, expeceted : 0 bytes --
446: int(0)
447: bool(false)
448: Reading 1024 bytes from file, expecting 0 bytes ... OK
449: int(0)
450: bool(false)
451:
452: -- Reading file content less than max. file size, expeceted : 0 bytes --
453: int(0)
454: bool(false)
455: Reading 1000 bytes from file, expecting 0 bytes ... OK
456: int(0)
457: bool(false)
458:
459: -- File opened in mode wt --
460: -- Reading entire file content, expeceted : 0 bytes --
461: int(0)
462: bool(false)
463: Reading 1024 bytes from file, expecting 0 bytes ... OK
464: int(0)
465: bool(false)
466:
467: -- Reading file content less than max. file size, expeceted : 0 bytes --
468: int(0)
469: bool(false)
470: Reading 1000 bytes from file, expecting 0 bytes ... OK
471: int(0)
472: bool(false)
473:
474: -- File opened in mode x --
475: -- Reading entire file content, expeceted : 0 bytes --
476: int(0)
477: bool(false)
478: Reading 1024 bytes from file, expecting 0 bytes ... OK
479: int(0)
480: bool(false)
481:
482: -- Reading file content less than max. file size, expeceted : 0 bytes --
483: int(0)
484: bool(false)
485: Reading 1000 bytes from file, expecting 0 bytes ... OK
486: int(0)
487: bool(false)
488:
489: -- File opened in mode xb --
490: -- Reading entire file content, expeceted : 0 bytes --
491: int(0)
492: bool(false)
493: Reading 1024 bytes from file, expecting 0 bytes ... OK
494: int(0)
495: bool(false)
496:
497: -- Reading file content less than max. file size, expeceted : 0 bytes --
498: int(0)
499: bool(false)
500: Reading 1000 bytes from file, expecting 0 bytes ... OK
501: int(0)
502: bool(false)
503:
504: -- File opened in mode xt --
505: -- Reading entire file content, expeceted : 0 bytes --
506: int(0)
507: bool(false)
508: Reading 1024 bytes from file, expecting 0 bytes ... OK
509: int(0)
510: bool(false)
511:
512: -- Reading file content less than max. file size, expeceted : 0 bytes --
513: int(0)
514: bool(false)
515: Reading 1000 bytes from file, expecting 0 bytes ... OK
516: int(0)
517: bool(false)
518:
519:
520: -- Testing fread() with file having content of type alphanumeric --
521: -- File opened in mode a --
522: -- Reading entire file content, expeceted : 0 bytes --
523: int(0)
524: bool(false)
525: Reading 1024 bytes from file, expecting 0 bytes ... OK
526: int(0)
527: bool(false)
528:
529: -- Reading file content less than max. file size, expeceted : 0 bytes --
530: int(0)
531: bool(false)
532: Reading 1000 bytes from file, expecting 0 bytes ... OK
533: int(0)
534: bool(false)
535:
536: -- File opened in mode ab --
537: -- Reading entire file content, expeceted : 0 bytes --
538: int(0)
539: bool(false)
540: Reading 1024 bytes from file, expecting 0 bytes ... OK
541: int(0)
542: bool(false)
543:
544: -- Reading file content less than max. file size, expeceted : 0 bytes --
545: int(0)
546: bool(false)
547: Reading 1000 bytes from file, expecting 0 bytes ... OK
548: int(0)
549: bool(false)
550:
551: -- File opened in mode at --
552: -- Reading entire file content, expeceted : 0 bytes --
553: int(0)
554: bool(false)
555: Reading 1024 bytes from file, expecting 0 bytes ... OK
556: int(0)
557: bool(false)
558:
559: -- Reading file content less than max. file size, expeceted : 0 bytes --
560: int(0)
561: bool(false)
562: Reading 1000 bytes from file, expecting 0 bytes ... OK
563: int(0)
564: bool(false)
565:
566: -- File opened in mode w --
567: -- Reading entire file content, expeceted : 0 bytes --
568: int(0)
569: bool(false)
570: Reading 1024 bytes from file, expecting 0 bytes ... OK
571: int(0)
572: bool(false)
573:
574: -- Reading file content less than max. file size, expeceted : 0 bytes --
575: int(0)
576: bool(false)
577: Reading 1000 bytes from file, expecting 0 bytes ... OK
578: int(0)
579: bool(false)
580:
581: -- File opened in mode wb --
582: -- Reading entire file content, expeceted : 0 bytes --
583: int(0)
584: bool(false)
585: Reading 1024 bytes from file, expecting 0 bytes ... OK
586: int(0)
587: bool(false)
588:
589: -- Reading file content less than max. file size, expeceted : 0 bytes --
590: int(0)
591: bool(false)
592: Reading 1000 bytes from file, expecting 0 bytes ... OK
593: int(0)
594: bool(false)
595:
596: -- File opened in mode wt --
597: -- Reading entire file content, expeceted : 0 bytes --
598: int(0)
599: bool(false)
600: Reading 1024 bytes from file, expecting 0 bytes ... OK
601: int(0)
602: bool(false)
603:
604: -- Reading file content less than max. file size, expeceted : 0 bytes --
605: int(0)
606: bool(false)
607: Reading 1000 bytes from file, expecting 0 bytes ... OK
608: int(0)
609: bool(false)
610:
611: -- File opened in mode x --
612: -- Reading entire file content, expeceted : 0 bytes --
613: int(0)
614: bool(false)
615: Reading 1024 bytes from file, expecting 0 bytes ... OK
616: int(0)
617: bool(false)
618:
619: -- Reading file content less than max. file size, expeceted : 0 bytes --
620: int(0)
621: bool(false)
622: Reading 1000 bytes from file, expecting 0 bytes ... OK
623: int(0)
624: bool(false)
625:
626: -- File opened in mode xb --
627: -- Reading entire file content, expeceted : 0 bytes --
628: int(0)
629: bool(false)
630: Reading 1024 bytes from file, expecting 0 bytes ... OK
631: int(0)
632: bool(false)
633:
634: -- Reading file content less than max. file size, expeceted : 0 bytes --
635: int(0)
636: bool(false)
637: Reading 1000 bytes from file, expecting 0 bytes ... OK
638: int(0)
639: bool(false)
640:
641: -- File opened in mode xt --
642: -- Reading entire file content, expeceted : 0 bytes --
643: int(0)
644: bool(false)
645: Reading 1024 bytes from file, expecting 0 bytes ... OK
646: int(0)
647: bool(false)
648:
649: -- Reading file content less than max. file size, expeceted : 0 bytes --
650: int(0)
651: bool(false)
652: Reading 1000 bytes from file, expecting 0 bytes ... OK
653: int(0)
654: bool(false)
655:
656: Done
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>