robinf Sun Dec 28 19:50:58 2008 UTC
Added files:
/php-src/tests/output bug46903.phpt bug46900.phpt
Modified files:
/php-src/tests/output ob_start_basic_004.phpt
ob_start_basic_002.phpt ob_015.phpt
ob_014.phpt
/php-src/main output.c
Log:
Fix bugs #46900 and #46903.
http://cvs.php.net/viewvc.cgi/php-src/tests/output/ob_start_basic_004.phpt?r1=1.2&r2=1.3&diff_format=u
Index: php-src/tests/output/ob_start_basic_004.phpt
diff -u php-src/tests/output/ob_start_basic_004.phpt:1.2
php-src/tests/output/ob_start_basic_004.phpt:1.3
--- php-src/tests/output/ob_start_basic_004.phpt:1.2Thu Dec 18 15:20:10 2008
+++ php-src/tests/output/ob_start_basic_004.phptSun Dec 28 19:50:58 2008
@@ -1,7 +1,5 @@
--TEST--
ob_start() chunk_size: confirm buffer is flushed after any output call that
causes its length to equal or exceed chunk_size.
---XFAIL--
-Special behaviour when chunk_size set to 1 is not honoured on PHP6. See bug
46903.
--FILE--
http://cvs.php.net/viewvc.cgi/php-src/tests/output/ob_start_basic_002.phpt?r1=1.2&r2=1.3&diff_format=u
Index: php-src/tests/output/ob_start_basic_002.phpt
diff -u php-src/tests/output/ob_start_basic_002.phpt:1.2
php-src/tests/output/ob_start_basic_002.phpt:1.3
--- php-src/tests/output/ob_start_basic_002.phpt:1.2Thu Dec 18 15:20:10 2008
+++ php-src/tests/output/ob_start_basic_002.phptSun Dec 28 19:50:58 2008
@@ -1,7 +1,5 @@
--TEST--
ob_start(): Check behaviour with various callback return values.
---XFAIL--
-PHP6 behaves differently from PHP5 when callback returns null. See bug 46900.
--FILE--
http://cvs.php.net/viewvc.cgi/php-src/tests/output/ob_015.phpt?r1=1.2&r2=1.3&diff_format=u
Index: php-src/tests/output/ob_015.phpt
diff -u php-src/tests/output/ob_015.phpt:1.2
php-src/tests/output/ob_015.phpt:1.3
--- php-src/tests/output/ob_015.phpt:1.2Tue Aug 22 08:16:37 2006
+++ php-src/tests/output/ob_015.phptSun Dec 28 19:50:58 2008
@@ -4,8 +4,19 @@
--EXPECTF--
-foo
-
-Warning: str_rot13() expects exactly 1 parameter, 2 given in %s on line %d
+Array
+(
+[type] => 2
+[message] => str_rot13() expects exactly 1 parameter, 2 given
+[file] => %s
+[line] => 7
+)
\ No newline at end of file
http://cvs.php.net/viewvc.cgi/php-src/tests/output/ob_014.phpt?r1=1.2&r2=1.3&diff_format=u
Index: php-src/tests/output/ob_014.phpt
diff -u php-src/tests/output/ob_014.phpt:1.2
php-src/tests/output/ob_014.phpt:1.3
--- php-src/tests/output/ob_014.phpt:1.2Tue Aug 22 08:16:37 2006
+++ php-src/tests/output/ob_014.phptSun Dec 28 19:50:58 2008
@@ -2,13 +2,21 @@
output buffering - failure
--FILE--
--EXPECTF--
-foo
-
-Warning: (null)() expects exactly 1 parameter, 2 given in %s on line %d
+Array
+(
+[type] => 2
+[message] => str_rot13() expects exactly 1 parameter, 2 given
+[file] => %s
+[line] => 7
+)
\ No newline at end of file
http://cvs.php.net/viewvc.cgi/php-src/main/output.c?r1=1.214&r2=1.215&diff_format=u
Index: php-src/main/output.c
diff -u php-src/main/output.c:1.214 php-src/main/output.c:1.215
--- php-src/main/output.c:1.214 Mon Aug 18 07:45:59 2008
+++ php-src/main/output.c Sun Dec 28 19:50:58 2008
@@ -19,7 +19,7 @@
+--+
*/
-/* $Id: output.c,v 1.214 2008/08/18 07:45:59 tony2001 Exp $ */
+/* $Id: output.c,v 1.215 2008/12/28 19:50:58 robinf Exp $ */
#ifndef PHP_OUTPUT_DEBUG
# define PHP_OUTPUT_DEBUG 0
@@ -983,7 +983,7 @@
ZVAL_LONG(ob_mode, (long) context->op);
zend_fcall_info_argn(&handler->func.user->fci
TSRMLS_CC, 2, &ob_data, &ob_mode);
-#define PHP_OUTPUT_USER_SUCCESS(retval) (retval && (Z_TYPE_P(retval) !=
IS_NULL) && (Z_TYPE_P(retval) != IS_BOOL || Z_BVAL_P(retval)))
+#define PHP_OUTPUT_USER_SUCCESS(retval) (retval && !(Z_TYPE_P(retval) ==
IS_BOOL && Z_BVAL_P(retval)==0))
if (SUCCESS ==
zend_fcall_info_call(&handler->func.user->fci, &handler->func.user->fcc,
&retval, NULL TSRMLS_CC) && PHP_OUTPUT_USER_SUCCESS(retval)) {
/* user handler may have returned TRUE */
status = PHP_OUTPUT_HANDLER_NO_DATA;
@@ -1342,6 +1342,8 @@
}
if (chunk_size < 0) {
chunk_size = 0;
+ } else if (chunk_size == 1) {
+ chunk_size = 4096;
}
if (SUCCESS != php_output_start_user(output_handler, chunk_size, flags
TSRMLS_CC)) {
http://cvs.php.net/viewvc.cgi/php-src/tests/output/bug46903.phpt?view=markup&rev=1.1
Index: php-src/tests/output/bug46903.phpt
+++ php-src/tests/output/bug46903.phpt
--TEST--
Bug #46903 (ob_start(): Special $chunk_size value of 1 is not honoured in HEAD)
--FILE--
1, these two chars should
// come out as part of a single flush:
echo "1";
echo "2";
?