diff options
author | Michael Wallner <mike@php.net> | 2012-01-16 17:51:35 +0000 |
---|---|---|
committer | Michael Wallner <mike@php.net> | 2012-01-16 17:51:35 +0000 |
commit | 6b31413b13665cb0fda85aa3cb26b0f701a2d04e (patch) | |
tree | d34591d7b3175f1d19a30905f98bf190655375e0 /tests/output | |
parent | 4c414c12a3325eeb6d34d1cb5d65e5bf42700415 (diff) | |
download | php-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.phpt | 25 |
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 + |