Annotation of embedaddon/php/ext/standard/tests/file/fread_variation4.phpt, revision 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>