summaryrefslogtreecommitdiff
path: root/tests/output
diff options
context:
space:
mode:
authorMichael Wallner <mike@php.net>2012-01-16 17:51:35 +0000
committerMichael Wallner <mike@php.net>2012-01-16 17:51:35 +0000
commit6b31413b13665cb0fda85aa3cb26b0f701a2d04e (patch)
treed34591d7b3175f1d19a30905f98bf190655375e0 /tests/output
parent4c414c12a3325eeb6d34d1cb5d65e5bf42700415 (diff)
downloadphp-git-6b31413b13665cb0fda85aa3cb26b0f701a2d04e.tar.gz
Fix bug #60768 Output buffer not discarded
in php_output_handler_op(): * if appending to buffer succeeds, just return HANDLER_NO_DATA and do nothing else * if a zero sized string or true is returned from the handler function, reset the context as well as the handler's buffer
Diffstat (limited to 'tests/output')
-rw-r--r--tests/output/bug60768.phpt25
1 files changed, 25 insertions, 0 deletions
diff --git a/tests/output/bug60768.phpt b/tests/output/bug60768.phpt
new file mode 100644
index 0000000000..2527e8e84a
--- /dev/null
+++ b/tests/output/bug60768.phpt
@@ -0,0 +1,25 @@
+--TEST--
+Bug #60768 Output buffer not discarded
+--FILE--
+<?php
+
+global $storage;
+
+ob_start(function($buffer) use (&$storage) { $storage .= $buffer; }, 20);
+
+echo str_repeat("0", 20); // fill in the buffer
+
+for($i = 0; $i < 10; $i++) {
+ echo str_pad($i, 9, ' ', STR_PAD_LEFT) . "\n"; // full buffer dumped every time
+}
+
+ob_end_flush();
+
+printf("Output size: %d, expected %d\n", strlen($storage), 20 + 10 * 10);
+
+?>
+DONE
+--EXPECT--
+Output size: 120, expected 120
+DONE
+