Annotation of embedaddon/php/ext/standard/tests/file/ftruncate_variation6.phpt, revision 1.1.1.1
1.1 misho 1: --TEST--
2: Test ftruncate() function : usage variations - truncate file to smaller size
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: bool ftruncate ( resource $handle, int $size );
13: Description: Truncates a file to a given length
14: */
15:
16: /* truncate the file to smaller size and display the content */
17:
18: // include common file related test functions
19: include ("file.inc");
20:
21: echo "*** Testing ftruncate() : usage variations ***\n";
22:
23: /* test ftruncate with file opened in different modes */
24: $file_modes = array("r", "rb", "rt", "r+", "r+b", "r+t",
25: "w", "wb", "wt", "w+", "w+b", "w+t",
26: "x", "xb", "xt", "x+", "x+b", "x+t",
27: "a", "ab", "at", "a+", "a+b", "a+t");
28:
29: $file_content_types = array("numeric","text_with_new_line");
30:
31: foreach($file_content_types as $file_content_type) {
32: echo "\n-- Testing ftruncate() with file having data of type ". $file_content_type ." --\n";
33:
34: for($mode_counter = 0; $mode_counter < count($file_modes); $mode_counter++) {
35: echo "-- Testing ftruncate() with file opening using $file_modes[$mode_counter] mode --\n";
36:
37: // create 1 file with some contents
38: $filename = dirname(__FILE__)."/ftruncate_variation6.tmp";
39: if( strstr($file_modes[$mode_counter], "x") || strstr($file_modes[$mode_counter], "w") ) {
40: // fopen the file using the $file_modes
41: $file_handle = fopen($filename, $file_modes[$mode_counter]);
42: fill_file($file_handle, $file_content_type, 1024);
43: } else {
44: create_files ( dirname(__FILE__), 1, $file_content_type, 0755, 1, "w", "ftruncate_variation", 6);
45: // fopen the file using the $file_modes
46: $file_handle = fopen($filename, $file_modes[$mode_counter]);
47: }
48: if (!$file_handle) {
49: echo "Error: failed to open file $filename!\n";
50: exit();
51: }
52:
53: rewind($file_handle); // file pointer to 0
54:
55: echo "-- Testing ftruncate(): truncate to smaller size and display the file content --\n";
56: /* try to truncate it and display the file content */
57:
58: $new_size = 15;
59: var_dump( filesize($filename) ); // current filesize
60: var_dump( ftell($file_handle) );
61: if(ftruncate($file_handle, $new_size) ){// truncate it
62: echo "File content after truncating file to $new_size size : ";
63: var_dump( file_get_contents($filename) );
64: }
65: var_dump( ftell($file_handle) );
66: var_dump( feof($file_handle) );
67: fclose($file_handle);
68: clearstatcache(); // clear previous size value in cache
69: var_dump( filesize($filename) );
70:
71: //delete all files created
72: delete_file( $filename );
73: }//end of inner for loop
74: }//end of outer foreach loop
75: echo "Done\n";
76: ?>
77: --EXPECTF--
78: *** Testing ftruncate() : usage variations ***
79:
80: -- Testing ftruncate() with file having data of type numeric --
81: -- Testing ftruncate() with file opening using r mode --
82: -- Testing ftruncate(): truncate to smaller size and display the file content --
83: int(1024)
84: int(0)
85: int(0)
86: bool(false)
87: int(1024)
88: -- Testing ftruncate() with file opening using rb mode --
89: -- Testing ftruncate(): truncate to smaller size and display the file content --
90: int(1024)
91: int(0)
92: int(0)
93: bool(false)
94: int(1024)
95: -- Testing ftruncate() with file opening using rt mode --
96: -- Testing ftruncate(): truncate to smaller size and display the file content --
97: int(1024)
98: int(0)
99: int(0)
100: bool(false)
101: int(1024)
102: -- Testing ftruncate() with file opening using r+ mode --
103: -- Testing ftruncate(): truncate to smaller size and display the file content --
104: int(1024)
105: int(0)
106: File content after truncating file to 15 size : string(15) "222222222222222"
107: int(0)
108: bool(false)
109: int(15)
110: -- Testing ftruncate() with file opening using r+b mode --
111: -- Testing ftruncate(): truncate to smaller size and display the file content --
112: int(1024)
113: int(0)
114: File content after truncating file to 15 size : string(15) "222222222222222"
115: int(0)
116: bool(false)
117: int(15)
118: -- Testing ftruncate() with file opening using r+t mode --
119: -- Testing ftruncate(): truncate to smaller size and display the file content --
120: int(1024)
121: int(0)
122: File content after truncating file to 15 size : string(15) "222222222222222"
123: int(0)
124: bool(false)
125: int(15)
126: -- Testing ftruncate() with file opening using w mode --
127: -- Testing ftruncate(): truncate to smaller size and display the file content --
128: int(1024)
129: int(0)
130: File content after truncating file to 15 size : string(15) "222222222222222"
131: int(0)
132: bool(false)
133: int(15)
134: -- Testing ftruncate() with file opening using wb mode --
135: -- Testing ftruncate(): truncate to smaller size and display the file content --
136: int(1024)
137: int(0)
138: File content after truncating file to 15 size : string(15) "222222222222222"
139: int(0)
140: bool(false)
141: int(15)
142: -- Testing ftruncate() with file opening using wt mode --
143: -- Testing ftruncate(): truncate to smaller size and display the file content --
144: int(1024)
145: int(0)
146: File content after truncating file to 15 size : string(15) "222222222222222"
147: int(0)
148: bool(false)
149: int(15)
150: -- Testing ftruncate() with file opening using w+ mode --
151: -- Testing ftruncate(): truncate to smaller size and display the file content --
152: int(1024)
153: int(0)
154: File content after truncating file to 15 size : string(15) "222222222222222"
155: int(0)
156: bool(false)
157: int(15)
158: -- Testing ftruncate() with file opening using w+b mode --
159: -- Testing ftruncate(): truncate to smaller size and display the file content --
160: int(1024)
161: int(0)
162: File content after truncating file to 15 size : string(15) "222222222222222"
163: int(0)
164: bool(false)
165: int(15)
166: -- Testing ftruncate() with file opening using w+t mode --
167: -- Testing ftruncate(): truncate to smaller size and display the file content --
168: int(1024)
169: int(0)
170: File content after truncating file to 15 size : string(15) "222222222222222"
171: int(0)
172: bool(false)
173: int(15)
174: -- Testing ftruncate() with file opening using x mode --
175: -- Testing ftruncate(): truncate to smaller size and display the file content --
176: int(1024)
177: int(0)
178: File content after truncating file to 15 size : string(15) "222222222222222"
179: int(0)
180: bool(false)
181: int(15)
182: -- Testing ftruncate() with file opening using xb mode --
183: -- Testing ftruncate(): truncate to smaller size and display the file content --
184: int(1024)
185: int(0)
186: File content after truncating file to 15 size : string(15) "222222222222222"
187: int(0)
188: bool(false)
189: int(15)
190: -- Testing ftruncate() with file opening using xt mode --
191: -- Testing ftruncate(): truncate to smaller size and display the file content --
192: int(1024)
193: int(0)
194: File content after truncating file to 15 size : string(15) "222222222222222"
195: int(0)
196: bool(false)
197: int(15)
198: -- Testing ftruncate() with file opening using x+ mode --
199: -- Testing ftruncate(): truncate to smaller size and display the file content --
200: int(1024)
201: int(0)
202: File content after truncating file to 15 size : string(15) "222222222222222"
203: int(0)
204: bool(false)
205: int(15)
206: -- Testing ftruncate() with file opening using x+b mode --
207: -- Testing ftruncate(): truncate to smaller size and display the file content --
208: int(1024)
209: int(0)
210: File content after truncating file to 15 size : string(15) "222222222222222"
211: int(0)
212: bool(false)
213: int(15)
214: -- Testing ftruncate() with file opening using x+t mode --
215: -- Testing ftruncate(): truncate to smaller size and display the file content --
216: int(1024)
217: int(0)
218: File content after truncating file to 15 size : string(15) "222222222222222"
219: int(0)
220: bool(false)
221: int(15)
222: -- Testing ftruncate() with file opening using a mode --
223: -- Testing ftruncate(): truncate to smaller size and display the file content --
224: int(1024)
225: int(0)
226: File content after truncating file to 15 size : string(15) "222222222222222"
227: int(0)
228: bool(false)
229: int(15)
230: -- Testing ftruncate() with file opening using ab mode --
231: -- Testing ftruncate(): truncate to smaller size and display the file content --
232: int(1024)
233: int(0)
234: File content after truncating file to 15 size : string(15) "222222222222222"
235: int(0)
236: bool(false)
237: int(15)
238: -- Testing ftruncate() with file opening using at mode --
239: -- Testing ftruncate(): truncate to smaller size and display the file content --
240: int(1024)
241: int(0)
242: File content after truncating file to 15 size : string(15) "222222222222222"
243: int(0)
244: bool(false)
245: int(15)
246: -- Testing ftruncate() with file opening using a+ mode --
247: -- Testing ftruncate(): truncate to smaller size and display the file content --
248: int(1024)
249: int(0)
250: File content after truncating file to 15 size : string(15) "222222222222222"
251: int(0)
252: bool(false)
253: int(15)
254: -- Testing ftruncate() with file opening using a+b mode --
255: -- Testing ftruncate(): truncate to smaller size and display the file content --
256: int(1024)
257: int(0)
258: File content after truncating file to 15 size : string(15) "222222222222222"
259: int(0)
260: bool(false)
261: int(15)
262: -- Testing ftruncate() with file opening using a+t mode --
263: -- Testing ftruncate(): truncate to smaller size and display the file content --
264: int(1024)
265: int(0)
266: File content after truncating file to 15 size : string(15) "222222222222222"
267: int(0)
268: bool(false)
269: int(15)
270:
271: -- Testing ftruncate() with file having data of type text_with_new_line --
272: -- Testing ftruncate() with file opening using r mode --
273: -- Testing ftruncate(): truncate to smaller size and display the file content --
274: int(1024)
275: int(0)
276: int(0)
277: bool(false)
278: int(1024)
279: -- Testing ftruncate() with file opening using rb mode --
280: -- Testing ftruncate(): truncate to smaller size and display the file content --
281: int(1024)
282: int(0)
283: int(0)
284: bool(false)
285: int(1024)
286: -- Testing ftruncate() with file opening using rt mode --
287: -- Testing ftruncate(): truncate to smaller size and display the file content --
288: int(1024)
289: int(0)
290: int(0)
291: bool(false)
292: int(1024)
293: -- Testing ftruncate() with file opening using r+ mode --
294: -- Testing ftruncate(): truncate to smaller size and display the file content --
295: int(1024)
296: int(0)
297: File content after truncating file to 15 size : string(15) "line
298: line of te"
299: int(0)
300: bool(false)
301: int(15)
302: -- Testing ftruncate() with file opening using r+b mode --
303: -- Testing ftruncate(): truncate to smaller size and display the file content --
304: int(1024)
305: int(0)
306: File content after truncating file to 15 size : string(15) "line
307: line of te"
308: int(0)
309: bool(false)
310: int(15)
311: -- Testing ftruncate() with file opening using r+t mode --
312: -- Testing ftruncate(): truncate to smaller size and display the file content --
313: int(1024)
314: int(0)
315: File content after truncating file to 15 size : string(15) "line
316: line of te"
317: int(0)
318: bool(false)
319: int(15)
320: -- Testing ftruncate() with file opening using w mode --
321: -- Testing ftruncate(): truncate to smaller size and display the file content --
322: int(1024)
323: int(0)
324: File content after truncating file to 15 size : string(15) "line
325: line of te"
326: int(0)
327: bool(false)
328: int(15)
329: -- Testing ftruncate() with file opening using wb mode --
330: -- Testing ftruncate(): truncate to smaller size and display the file content --
331: int(1024)
332: int(0)
333: File content after truncating file to 15 size : string(15) "line
334: line of te"
335: int(0)
336: bool(false)
337: int(15)
338: -- Testing ftruncate() with file opening using wt mode --
339: -- Testing ftruncate(): truncate to smaller size and display the file content --
340: int(1024)
341: int(0)
342: File content after truncating file to 15 size : string(15) "line
343: line of te"
344: int(0)
345: bool(false)
346: int(15)
347: -- Testing ftruncate() with file opening using w+ mode --
348: -- Testing ftruncate(): truncate to smaller size and display the file content --
349: int(1024)
350: int(0)
351: File content after truncating file to 15 size : string(15) "line
352: line of te"
353: int(0)
354: bool(false)
355: int(15)
356: -- Testing ftruncate() with file opening using w+b mode --
357: -- Testing ftruncate(): truncate to smaller size and display the file content --
358: int(1024)
359: int(0)
360: File content after truncating file to 15 size : string(15) "line
361: line of te"
362: int(0)
363: bool(false)
364: int(15)
365: -- Testing ftruncate() with file opening using w+t mode --
366: -- Testing ftruncate(): truncate to smaller size and display the file content --
367: int(1024)
368: int(0)
369: File content after truncating file to 15 size : string(15) "line
370: line of te"
371: int(0)
372: bool(false)
373: int(15)
374: -- Testing ftruncate() with file opening using x mode --
375: -- Testing ftruncate(): truncate to smaller size and display the file content --
376: int(1024)
377: int(0)
378: File content after truncating file to 15 size : string(15) "line
379: line of te"
380: int(0)
381: bool(false)
382: int(15)
383: -- Testing ftruncate() with file opening using xb mode --
384: -- Testing ftruncate(): truncate to smaller size and display the file content --
385: int(1024)
386: int(0)
387: File content after truncating file to 15 size : string(15) "line
388: line of te"
389: int(0)
390: bool(false)
391: int(15)
392: -- Testing ftruncate() with file opening using xt mode --
393: -- Testing ftruncate(): truncate to smaller size and display the file content --
394: int(1024)
395: int(0)
396: File content after truncating file to 15 size : string(15) "line
397: line of te"
398: int(0)
399: bool(false)
400: int(15)
401: -- Testing ftruncate() with file opening using x+ mode --
402: -- Testing ftruncate(): truncate to smaller size and display the file content --
403: int(1024)
404: int(0)
405: File content after truncating file to 15 size : string(15) "line
406: line of te"
407: int(0)
408: bool(false)
409: int(15)
410: -- Testing ftruncate() with file opening using x+b mode --
411: -- Testing ftruncate(): truncate to smaller size and display the file content --
412: int(1024)
413: int(0)
414: File content after truncating file to 15 size : string(15) "line
415: line of te"
416: int(0)
417: bool(false)
418: int(15)
419: -- Testing ftruncate() with file opening using x+t mode --
420: -- Testing ftruncate(): truncate to smaller size and display the file content --
421: int(1024)
422: int(0)
423: File content after truncating file to 15 size : string(15) "line
424: line of te"
425: int(0)
426: bool(false)
427: int(15)
428: -- Testing ftruncate() with file opening using a mode --
429: -- Testing ftruncate(): truncate to smaller size and display the file content --
430: int(1024)
431: int(0)
432: File content after truncating file to 15 size : string(15) "line
433: line of te"
434: int(0)
435: bool(false)
436: int(15)
437: -- Testing ftruncate() with file opening using ab mode --
438: -- Testing ftruncate(): truncate to smaller size and display the file content --
439: int(1024)
440: int(0)
441: File content after truncating file to 15 size : string(15) "line
442: line of te"
443: int(0)
444: bool(false)
445: int(15)
446: -- Testing ftruncate() with file opening using at mode --
447: -- Testing ftruncate(): truncate to smaller size and display the file content --
448: int(1024)
449: int(0)
450: File content after truncating file to 15 size : string(15) "line
451: line of te"
452: int(0)
453: bool(false)
454: int(15)
455: -- Testing ftruncate() with file opening using a+ mode --
456: -- Testing ftruncate(): truncate to smaller size and display the file content --
457: int(1024)
458: int(0)
459: File content after truncating file to 15 size : string(15) "line
460: line of te"
461: int(0)
462: bool(false)
463: int(15)
464: -- Testing ftruncate() with file opening using a+b mode --
465: -- Testing ftruncate(): truncate to smaller size and display the file content --
466: int(1024)
467: int(0)
468: File content after truncating file to 15 size : string(15) "line
469: line of te"
470: int(0)
471: bool(false)
472: int(15)
473: -- Testing ftruncate() with file opening using a+t mode --
474: -- Testing ftruncate(): truncate to smaller size and display the file content --
475: int(1024)
476: int(0)
477: File content after truncating file to 15 size : string(15) "line
478: line of te"
479: int(0)
480: bool(false)
481: int(15)
482: Done
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>