diff options
Diffstat (limited to 'ext/standard/tests/streams/user_streams_consumed_bug.phpt')
-rw-r--r-- | ext/standard/tests/streams/user_streams_consumed_bug.phpt | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/ext/standard/tests/streams/user_streams_consumed_bug.phpt b/ext/standard/tests/streams/user_streams_consumed_bug.phpt new file mode 100644 index 0000000000..147a7bd0a7 --- /dev/null +++ b/ext/standard/tests/streams/user_streams_consumed_bug.phpt @@ -0,0 +1,32 @@ +--TEST-- +Testing user filter on streams +--FILE-- +<?php +class Intercept extends php_user_filter +{ + public static $cache = ''; + public function filter($in, $out, &$consumed, $closing) + { + while ($bucket = stream_bucket_make_writeable($in)) { + self::$cache .= $bucket->data; + $consumed += $bucket->datalen; + stream_bucket_append($out, $bucket); + } + return PSFS_PASS_ON; + } +} + +$out = fwrite(STDOUT, "Hello\n"); +var_dump($out); + +stream_filter_register("intercept_filter", "Intercept"); +stream_filter_append(STDOUT, "intercept_filter"); + +$out = fwrite(STDOUT, "Goodbye\n"); +var_dump($out); +--EXPECTF-- +Hello +int(6) +Goodbye +int(8) + |