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