Annotation of embedaddon/php/ext/standard/tests/file/fread_variation3-win32.phpt, revision 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...only 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(1137)
        !           452: bool(false)
        !           453: Reading 10 bytes from file, expecting 0 bytes ... OK
        !           454: int(1137)
        !           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(1137)
        !           494: bool(false)
        !           495: Reading 10 bytes from file, expecting 0 bytes ... OK
        !           496: int(1137)
        !           497: bool(true)
        !           498: Done

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