1--TEST--
2Bug #60817: stream_get_line() reads from stream even when there is already sufficient data buffered
3--FILE--
4<?php
5class TestStream { //data, empty data, empty data + eof
6    private $s = 0;
7    function stream_open($path, $mode, $options, &$opened_path) {
8            return true;
9    }
10    function stream_read($count) {
11        echo "Read done\n";
12        if ($this->s++ == 0)
13            return "a\nbb\ncc";
14
15        return "";
16    }
17    function stream_eof() {
18        return $this->s >= 2;
19    }
20
21}
22
23stream_wrapper_register("test", "TestStream");
24
25$f = fopen("test://", "r");
26while (!feof($f)) {
27    $line = stream_get_line($f, 99, "\n");
28    var_dump($line);
29}
30
31--EXPECT--
32Read done
33string(1) "a"
34string(2) "bb"
35Read done
36string(2) "cc"
37