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