Annotation of embedaddon/php/ext/standard/tests/streams/stream_get_line_nb.phpt, revision 1.1

1.1     ! misho       1: --TEST--
        !             2: stream_get_line() on non-blocking stream
        !             3: --SKIPIF--
        !             4: <?php
        !             5: $sockets = @stream_socket_pair(STREAM_PF_UNIX, STREAM_SOCK_STREAM, 0);
        !             6: if (!$sockets) die("skip");
        !             7: fclose($sockets[0]);
        !             8: fclose($sockets[1]);
        !             9: ?>
        !            10: --FILE--
        !            11: <?php
        !            12: /**
        !            13:  * Tests that stream_get_line() behaves as documented on non-blocking streams:
        !            14:  * Never return incomplete lines, except on documented conditions:
        !            15:  * length bytes have been read, the string specified by ending is found, EOF.
        !            16:  */
        !            17: 
        !            18: $sockets = stream_socket_pair(STREAM_PF_UNIX, STREAM_SOCK_STREAM, 0);
        !            19: var_dump($sockets);
        !            20: 
        !            21: stream_set_blocking($sockets[1], 0);
        !            22: 
        !            23: $eol = b'<EOL>';
        !            24: 
        !            25: fwrite($sockets[0], b"line start");
        !            26: var_dump(stream_get_line($sockets[1], 8192, $eol)); // Does not returns incomplete line (EOL not found)
        !            27: var_dump(stream_get_line($sockets[1], 8192, $eol));
        !            28: fwrite($sockets[0], b", line end");
        !            29: fwrite($sockets[0], b", $eol");
        !            30: var_dump(stream_get_line($sockets[1], 8192, $eol)); // Returns full line (EOL found)
        !            31: var_dump(stream_get_line($sockets[1], 8192, $eol)); // Nothing to read
        !            32: var_dump(stream_get_line($sockets[1], 8192, $eol));
        !            33: 
        !            34: fwrite($sockets[0], b"incomplete line");
        !            35: var_dump(stream_get_line($sockets[1], strlen(b"incomplete line"), $eol)); // EOL not found but $length has been read, return incomplete line
        !            36: 
        !            37: fwrite($sockets[0], b"incomplete line");
        !            38: var_dump(stream_get_line($sockets[1], 8192, $eol)); // Does not returns incomplete line (EOL not found)
        !            39: var_dump(fread($sockets[1], strlen(b"incomplete line"))); // Returns buffer readden by stream_get_line
        !            40: 
        !            41: fwrite($sockets[0], b"end of file");
        !            42: var_dump(stream_get_line($sockets[1], 8192, $eol)); // Does not returns incomplete line (EOL not found)
        !            43: 
        !            44: fclose($sockets[0]);
        !            45: var_dump(stream_get_line($sockets[1], 8192, $eol)); // Returns incomplete line (End of file)
        !            46: 
        !            47: fclose($sockets[1]);
        !            48: 
        !            49: ?>
        !            50: --EXPECTF--
        !            51: array(2) {
        !            52:   [0]=>
        !            53:   resource(%d) of type (stream)
        !            54:   [1]=>
        !            55:   resource(%d) of type (stream)
        !            56: }
        !            57: bool(false)
        !            58: bool(false)
        !            59: string(22) "line start, line end, "
        !            60: bool(false)
        !            61: bool(false)
        !            62: string(15) "incomplete line"
        !            63: bool(false)
        !            64: string(15) "incomplete line"
        !            65: bool(false)
        !            66: string(11) "end of file"

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