summaryrefslogtreecommitdiff
path: root/ext/standard/tests/streams/user_streams_consumed_bug.phpt
diff options
context:
space:
mode:
Diffstat (limited to 'ext/standard/tests/streams/user_streams_consumed_bug.phpt')
-rw-r--r--ext/standard/tests/streams/user_streams_consumed_bug.phpt32
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)
+