Annotation of embedaddon/php/ext/standard/tests/file/fread_variation3.phpt, revision 1.1.1.1

1.1       misho       1: --TEST--
                      2: Test fread() function : usage variations - read beyond file size, read/write 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+","a+b","a+t",
                     56:                     "w+","w+b","w+t",
                     57:                     "x+","x+b","x+t");
                     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", 3);
                     69:     }
                     70:     
                     71:     $filename = dirname(__FILE__)."/fread_variation3.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:       $data_to_be_written="";
                     81:       fill_file($file_handle, $file_content_type, 1024);
                     82:     }
                     83: 
                     84:     rewind($file_handle);
                     85: 
                     86:     // read file by giving size more than its size
                     87:     echo "-- Reading beyond filesize, expeceted : 1024 bytes --\n";
                     88:     rewind($file_handle);
                     89:     $data_from_file = check_read($file_handle, 1030, ( strstr($file_mode, "+") ? 1024 : 1024) );
                     90:     if ( $data_from_file != false)
                     91:       var_dump( md5($data_from_file) );
                     92: 
                     93:     rewind($file_handle);
                     94:     echo "-- Reading beyond filesize when file pointer pointing to EOF, expeceted : 0 bytes --\n";
                     95:     // try fread when file pointer at end
                     96:     fseek($file_handle, 0, SEEK_END);
                     97:     //reading file when file pointer at end
                     98:     $data_from_file = check_read($file_handle, 10, 0);
                     99:     if ( $data_from_file != false)
                    100:       var_dump( md5($data_from_file) );
                    101: 
                    102:     // now close the file
                    103:     fclose($file_handle);
                    104: 
                    105:     // delete the file created
                    106:     delete_file($filename); // delete file
                    107:   } // end of inner foreach loop
                    108: }// end of outer foreach loop
                    109: 
                    110: echo"Done\n";
                    111: ?>
                    112: --EXPECTF--
                    113: *** Testing fread() : usage variations ***
                    114: 
                    115: -- Testing fread() with file having content of type numeric --
                    116: -- File opened in mode a+ --
                    117: -- Reading beyond filesize, expeceted : 1024 bytes --
                    118: int(0)
                    119: bool(false)
                    120: Reading 1030 bytes from file, expecting 1024 bytes ... OK
                    121: int(1024)
                    122: bool(true)
                    123: string(32) "950b7457d1deb6332f2fc5d42f3129d6"
                    124: -- Reading beyond filesize when file pointer pointing to EOF, expeceted : 0 bytes --
                    125: int(1024)
                    126: bool(false)
                    127: Reading 10 bytes from file, expecting 0 bytes ... OK
                    128: int(1024)
                    129: bool(true)
                    130: -- File opened in mode a+b --
                    131: -- Reading beyond filesize, expeceted : 1024 bytes --
                    132: int(0)
                    133: bool(false)
                    134: Reading 1030 bytes from file, expecting 1024 bytes ... OK
                    135: int(1024)
                    136: bool(true)
                    137: string(32) "950b7457d1deb6332f2fc5d42f3129d6"
                    138: -- Reading beyond filesize when file pointer pointing to EOF, expeceted : 0 bytes --
                    139: int(1024)
                    140: bool(false)
                    141: Reading 10 bytes from file, expecting 0 bytes ... OK
                    142: int(1024)
                    143: bool(true)
                    144: -- File opened in mode a+t --
                    145: -- Reading beyond filesize, expeceted : 1024 bytes --
                    146: int(0)
                    147: bool(false)
                    148: Reading 1030 bytes from file, expecting 1024 bytes ... OK
                    149: int(1024)
                    150: bool(true)
                    151: string(32) "950b7457d1deb6332f2fc5d42f3129d6"
                    152: -- Reading beyond filesize when file pointer pointing to EOF, expeceted : 0 bytes --
                    153: int(1024)
                    154: bool(false)
                    155: Reading 10 bytes from file, expecting 0 bytes ... OK
                    156: int(1024)
                    157: bool(true)
                    158: -- File opened in mode w+ --
                    159: -- Reading beyond filesize, expeceted : 1024 bytes --
                    160: int(0)
                    161: bool(false)
                    162: Reading 1030 bytes from file, expecting 1024 bytes ... OK
                    163: int(1024)
                    164: bool(true)
                    165: string(32) "950b7457d1deb6332f2fc5d42f3129d6"
                    166: -- Reading beyond filesize when file pointer pointing to EOF, expeceted : 0 bytes --
                    167: int(1024)
                    168: bool(false)
                    169: Reading 10 bytes from file, expecting 0 bytes ... OK
                    170: int(1024)
                    171: bool(true)
                    172: -- File opened in mode w+b --
                    173: -- Reading beyond filesize, expeceted : 1024 bytes --
                    174: int(0)
                    175: bool(false)
                    176: Reading 1030 bytes from file, expecting 1024 bytes ... OK
                    177: int(1024)
                    178: bool(true)
                    179: string(32) "950b7457d1deb6332f2fc5d42f3129d6"
                    180: -- Reading beyond filesize when file pointer pointing to EOF, expeceted : 0 bytes --
                    181: int(1024)
                    182: bool(false)
                    183: Reading 10 bytes from file, expecting 0 bytes ... OK
                    184: int(1024)
                    185: bool(true)
                    186: -- File opened in mode w+t --
                    187: -- Reading beyond filesize, expeceted : 1024 bytes --
                    188: int(0)
                    189: bool(false)
                    190: Reading 1030 bytes from file, expecting 1024 bytes ... OK
                    191: int(1024)
                    192: bool(true)
                    193: string(32) "950b7457d1deb6332f2fc5d42f3129d6"
                    194: -- Reading beyond filesize when file pointer pointing to EOF, expeceted : 0 bytes --
                    195: int(1024)
                    196: bool(false)
                    197: Reading 10 bytes from file, expecting 0 bytes ... OK
                    198: int(1024)
                    199: bool(true)
                    200: -- File opened in mode x+ --
                    201: -- Reading beyond filesize, expeceted : 1024 bytes --
                    202: int(0)
                    203: bool(false)
                    204: Reading 1030 bytes from file, expecting 1024 bytes ... OK
                    205: int(1024)
                    206: bool(true)
                    207: string(32) "950b7457d1deb6332f2fc5d42f3129d6"
                    208: -- Reading beyond filesize when file pointer pointing to EOF, expeceted : 0 bytes --
                    209: int(1024)
                    210: bool(false)
                    211: Reading 10 bytes from file, expecting 0 bytes ... OK
                    212: int(1024)
                    213: bool(true)
                    214: -- File opened in mode x+b --
                    215: -- Reading beyond filesize, expeceted : 1024 bytes --
                    216: int(0)
                    217: bool(false)
                    218: Reading 1030 bytes from file, expecting 1024 bytes ... OK
                    219: int(1024)
                    220: bool(true)
                    221: string(32) "950b7457d1deb6332f2fc5d42f3129d6"
                    222: -- Reading beyond filesize when file pointer pointing to EOF, expeceted : 0 bytes --
                    223: int(1024)
                    224: bool(false)
                    225: Reading 10 bytes from file, expecting 0 bytes ... OK
                    226: int(1024)
                    227: bool(true)
                    228: -- File opened in mode x+t --
                    229: -- Reading beyond filesize, expeceted : 1024 bytes --
                    230: int(0)
                    231: bool(false)
                    232: Reading 1030 bytes from file, expecting 1024 bytes ... OK
                    233: int(1024)
                    234: bool(true)
                    235: string(32) "950b7457d1deb6332f2fc5d42f3129d6"
                    236: -- Reading beyond filesize when file pointer pointing to EOF, expeceted : 0 bytes --
                    237: int(1024)
                    238: bool(false)
                    239: Reading 10 bytes from file, expecting 0 bytes ... OK
                    240: int(1024)
                    241: bool(true)
                    242: 
                    243: -- Testing fread() with file having content of type text --
                    244: -- File opened in mode a+ --
                    245: -- Reading beyond filesize, expeceted : 1024 bytes --
                    246: int(0)
                    247: bool(false)
                    248: Reading 1030 bytes from file, expecting 1024 bytes ... OK
                    249: int(1024)
                    250: bool(true)
                    251: string(32) "e486000c4c8452774f746a27658d87fa"
                    252: -- Reading beyond filesize when file pointer pointing to EOF, expeceted : 0 bytes --
                    253: int(1024)
                    254: bool(false)
                    255: Reading 10 bytes from file, expecting 0 bytes ... OK
                    256: int(1024)
                    257: bool(true)
                    258: -- File opened in mode a+b --
                    259: -- Reading beyond filesize, expeceted : 1024 bytes --
                    260: int(0)
                    261: bool(false)
                    262: Reading 1030 bytes from file, expecting 1024 bytes ... OK
                    263: int(1024)
                    264: bool(true)
                    265: string(32) "e486000c4c8452774f746a27658d87fa"
                    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(true)
                    272: -- File opened in mode a+t --
                    273: -- Reading beyond filesize, expeceted : 1024 bytes --
                    274: int(0)
                    275: bool(false)
                    276: Reading 1030 bytes from file, expecting 1024 bytes ... OK
                    277: int(1024)
                    278: bool(true)
                    279: string(32) "e486000c4c8452774f746a27658d87fa"
                    280: -- Reading beyond filesize when file pointer pointing to EOF, expeceted : 0 bytes --
                    281: int(1024)
                    282: bool(false)
                    283: Reading 10 bytes from file, expecting 0 bytes ... OK
                    284: int(1024)
                    285: bool(true)
                    286: -- File opened in mode w+ --
                    287: -- Reading beyond filesize, expeceted : 1024 bytes --
                    288: int(0)
                    289: bool(false)
                    290: Reading 1030 bytes from file, expecting 1024 bytes ... OK
                    291: int(1024)
                    292: bool(true)
                    293: string(32) "e486000c4c8452774f746a27658d87fa"
                    294: -- Reading beyond filesize when file pointer pointing to EOF, expeceted : 0 bytes --
                    295: int(1024)
                    296: bool(false)
                    297: Reading 10 bytes from file, expecting 0 bytes ... OK
                    298: int(1024)
                    299: bool(true)
                    300: -- File opened in mode w+b --
                    301: -- Reading beyond filesize, expeceted : 1024 bytes --
                    302: int(0)
                    303: bool(false)
                    304: Reading 1030 bytes from file, expecting 1024 bytes ... OK
                    305: int(1024)
                    306: bool(true)
                    307: string(32) "e486000c4c8452774f746a27658d87fa"
                    308: -- Reading beyond filesize when file pointer pointing to EOF, expeceted : 0 bytes --
                    309: int(1024)
                    310: bool(false)
                    311: Reading 10 bytes from file, expecting 0 bytes ... OK
                    312: int(1024)
                    313: bool(true)
                    314: -- File opened in mode w+t --
                    315: -- Reading beyond filesize, expeceted : 1024 bytes --
                    316: int(0)
                    317: bool(false)
                    318: Reading 1030 bytes from file, expecting 1024 bytes ... OK
                    319: int(1024)
                    320: bool(true)
                    321: string(32) "e486000c4c8452774f746a27658d87fa"
                    322: -- Reading beyond filesize when file pointer pointing to EOF, expeceted : 0 bytes --
                    323: int(1024)
                    324: bool(false)
                    325: Reading 10 bytes from file, expecting 0 bytes ... OK
                    326: int(1024)
                    327: bool(true)
                    328: -- File opened in mode x+ --
                    329: -- Reading beyond filesize, expeceted : 1024 bytes --
                    330: int(0)
                    331: bool(false)
                    332: Reading 1030 bytes from file, expecting 1024 bytes ... OK
                    333: int(1024)
                    334: bool(true)
                    335: string(32) "e486000c4c8452774f746a27658d87fa"
                    336: -- Reading beyond filesize when file pointer pointing to EOF, expeceted : 0 bytes --
                    337: int(1024)
                    338: bool(false)
                    339: Reading 10 bytes from file, expecting 0 bytes ... OK
                    340: int(1024)
                    341: bool(true)
                    342: -- File opened in mode x+b --
                    343: -- Reading beyond filesize, expeceted : 1024 bytes --
                    344: int(0)
                    345: bool(false)
                    346: Reading 1030 bytes from file, expecting 1024 bytes ... OK
                    347: int(1024)
                    348: bool(true)
                    349: string(32) "e486000c4c8452774f746a27658d87fa"
                    350: -- Reading beyond filesize when file pointer pointing to EOF, expeceted : 0 bytes --
                    351: int(1024)
                    352: bool(false)
                    353: Reading 10 bytes from file, expecting 0 bytes ... OK
                    354: int(1024)
                    355: bool(true)
                    356: -- File opened in mode x+t --
                    357: -- Reading beyond filesize, expeceted : 1024 bytes --
                    358: int(0)
                    359: bool(false)
                    360: Reading 1030 bytes from file, expecting 1024 bytes ... OK
                    361: int(1024)
                    362: bool(true)
                    363: string(32) "e486000c4c8452774f746a27658d87fa"
                    364: -- Reading beyond filesize when file pointer pointing to EOF, expeceted : 0 bytes --
                    365: int(1024)
                    366: bool(false)
                    367: Reading 10 bytes from file, expecting 0 bytes ... OK
                    368: int(1024)
                    369: bool(true)
                    370: 
                    371: -- Testing fread() with file having content of type text_with_new_line --
                    372: -- File opened in mode a+ --
                    373: -- Reading beyond filesize, expeceted : 1024 bytes --
                    374: int(0)
                    375: bool(false)
                    376: Reading 1030 bytes from file, expecting 1024 bytes ... OK
                    377: int(1024)
                    378: bool(true)
                    379: string(32) "b09c8026a64a88d36d4c2f17983964bb"
                    380: -- Reading beyond filesize when file pointer pointing to EOF, expeceted : 0 bytes --
                    381: int(1024)
                    382: bool(false)
                    383: Reading 10 bytes from file, expecting 0 bytes ... OK
                    384: int(1024)
                    385: bool(true)
                    386: -- File opened in mode a+b --
                    387: -- Reading beyond filesize, expeceted : 1024 bytes --
                    388: int(0)
                    389: bool(false)
                    390: Reading 1030 bytes from file, expecting 1024 bytes ... OK
                    391: int(1024)
                    392: bool(true)
                    393: string(32) "b09c8026a64a88d36d4c2f17983964bb"
                    394: -- Reading beyond filesize when file pointer pointing to EOF, expeceted : 0 bytes --
                    395: int(1024)
                    396: bool(false)
                    397: Reading 10 bytes from file, expecting 0 bytes ... OK
                    398: int(1024)
                    399: bool(true)
                    400: -- File opened in mode a+t --
                    401: -- Reading beyond filesize, expeceted : 1024 bytes --
                    402: int(0)
                    403: bool(false)
                    404: Reading 1030 bytes from file, expecting 1024 bytes ... OK
                    405: int(1024)
                    406: bool(true)
                    407: string(32) "b09c8026a64a88d36d4c2f17983964bb"
                    408: -- Reading beyond filesize when file pointer pointing to EOF, expeceted : 0 bytes --
                    409: int(1024)
                    410: bool(false)
                    411: Reading 10 bytes from file, expecting 0 bytes ... OK
                    412: int(1024)
                    413: bool(true)
                    414: -- File opened in mode w+ --
                    415: -- Reading beyond filesize, expeceted : 1024 bytes --
                    416: int(0)
                    417: bool(false)
                    418: Reading 1030 bytes from file, expecting 1024 bytes ... OK
                    419: int(1024)
                    420: bool(true)
                    421: string(32) "b09c8026a64a88d36d4c2f17983964bb"
                    422: -- Reading beyond filesize when file pointer pointing to EOF, expeceted : 0 bytes --
                    423: int(1024)
                    424: bool(false)
                    425: Reading 10 bytes from file, expecting 0 bytes ... OK
                    426: int(1024)
                    427: bool(true)
                    428: -- File opened in mode w+b --
                    429: -- Reading beyond filesize, expeceted : 1024 bytes --
                    430: int(0)
                    431: bool(false)
                    432: Reading 1030 bytes from file, expecting 1024 bytes ... OK
                    433: int(1024)
                    434: bool(true)
                    435: string(32) "b09c8026a64a88d36d4c2f17983964bb"
                    436: -- Reading beyond filesize when file pointer pointing to EOF, expeceted : 0 bytes --
                    437: int(1024)
                    438: bool(false)
                    439: Reading 10 bytes from file, expecting 0 bytes ... OK
                    440: int(1024)
                    441: bool(true)
                    442: -- File opened in mode w+t --
                    443: -- Reading beyond filesize, expeceted : 1024 bytes --
                    444: int(0)
                    445: bool(false)
                    446: Reading 1030 bytes from file, expecting 1024 bytes ... OK
                    447: int(1024)
                    448: bool(true)
                    449: string(32) "b09c8026a64a88d36d4c2f17983964bb"
                    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(true)
                    456: -- File opened in mode x+ --
                    457: -- Reading beyond filesize, expeceted : 1024 bytes --
                    458: int(0)
                    459: bool(false)
                    460: Reading 1030 bytes from file, expecting 1024 bytes ... OK
                    461: int(1024)
                    462: bool(true)
                    463: string(32) "b09c8026a64a88d36d4c2f17983964bb"
                    464: -- Reading beyond filesize when file pointer pointing to EOF, expeceted : 0 bytes --
                    465: int(1024)
                    466: bool(false)
                    467: Reading 10 bytes from file, expecting 0 bytes ... OK
                    468: int(1024)
                    469: bool(true)
                    470: -- File opened in mode x+b --
                    471: -- Reading beyond filesize, expeceted : 1024 bytes --
                    472: int(0)
                    473: bool(false)
                    474: Reading 1030 bytes from file, expecting 1024 bytes ... OK
                    475: int(1024)
                    476: bool(true)
                    477: string(32) "b09c8026a64a88d36d4c2f17983964bb"
                    478: -- Reading beyond filesize when file pointer pointing to EOF, expeceted : 0 bytes --
                    479: int(1024)
                    480: bool(false)
                    481: Reading 10 bytes from file, expecting 0 bytes ... OK
                    482: int(1024)
                    483: bool(true)
                    484: -- File opened in mode x+t --
                    485: -- Reading beyond filesize, expeceted : 1024 bytes --
                    486: int(0)
                    487: bool(false)
                    488: Reading 1030 bytes from file, expecting 1024 bytes ... OK
                    489: int(1024)
                    490: bool(true)
                    491: string(32) "b09c8026a64a88d36d4c2f17983964bb"
                    492: -- Reading beyond filesize when file pointer pointing to EOF, expeceted : 0 bytes --
                    493: int(1024)
                    494: bool(false)
                    495: Reading 10 bytes from file, expecting 0 bytes ... OK
                    496: int(1024)
                    497: bool(true)
                    498: Done

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>