mirror of
https://github.com/php/php-src.git
synced 2024-09-22 02:17:32 +00:00
Merge branch 'PHP-8.0' into PHP-8.1
* PHP-8.0: XFAIL tests (GH-8588) Stop closing stderr and stdout streams (#8569)
This commit is contained in:
commit
6465f3ed13
@ -11,6 +11,8 @@ opcache
|
|||||||
<?php
|
<?php
|
||||||
if (PHP_OS_FAMILY == 'Windows') die('skip Preloading is not supported on Windows');
|
if (PHP_OS_FAMILY == 'Windows') die('skip Preloading is not supported on Windows');
|
||||||
?>
|
?>
|
||||||
|
--XFAIL--
|
||||||
|
GH-8588
|
||||||
--FILE--
|
--FILE--
|
||||||
<?php
|
<?php
|
||||||
var_dump(get_class(Loader::getLoader()));
|
var_dump(get_class(Loader::getLoader()));
|
||||||
|
@ -11,6 +11,8 @@ opcache
|
|||||||
<?php
|
<?php
|
||||||
if (PHP_OS_FAMILY == 'Windows') die('skip Preloading is not supported on Windows');
|
if (PHP_OS_FAMILY == 'Windows') die('skip Preloading is not supported on Windows');
|
||||||
?>
|
?>
|
||||||
|
--XFAIL--
|
||||||
|
GH-8588
|
||||||
--FILE--
|
--FILE--
|
||||||
<?php
|
<?php
|
||||||
const CNST = 'bbbb';
|
const CNST = 'bbbb';
|
||||||
|
@ -11,6 +11,8 @@ opcache
|
|||||||
<?php
|
<?php
|
||||||
if (PHP_OS_FAMILY == 'Windows') die('skip Preloading is not supported on Windows');
|
if (PHP_OS_FAMILY == 'Windows') die('skip Preloading is not supported on Windows');
|
||||||
?>
|
?>
|
||||||
|
--XFAIL--
|
||||||
|
GH-8588
|
||||||
--FILE--
|
--FILE--
|
||||||
<?php
|
<?php
|
||||||
Foo::test();
|
Foo::test();
|
||||||
|
@ -11,6 +11,8 @@ opcache
|
|||||||
<?php
|
<?php
|
||||||
if (PHP_OS_FAMILY == 'Windows') die('skip Preloading is not supported on Windows');
|
if (PHP_OS_FAMILY == 'Windows') die('skip Preloading is not supported on Windows');
|
||||||
?>
|
?>
|
||||||
|
--XFAIL--
|
||||||
|
GH-8588
|
||||||
--FILE--
|
--FILE--
|
||||||
<?php
|
<?php
|
||||||
$bar = new Bar;
|
$bar = new Bar;
|
||||||
|
@ -460,6 +460,7 @@ static ZEND_METHOD(ZendTestChildClassWithMethodWithParameterAttribute, override)
|
|||||||
PHP_INI_BEGIN()
|
PHP_INI_BEGIN()
|
||||||
STD_PHP_INI_BOOLEAN("zend_test.replace_zend_execute_ex", "0", PHP_INI_SYSTEM, OnUpdateBool, replace_zend_execute_ex, zend_zend_test_globals, zend_test_globals)
|
STD_PHP_INI_BOOLEAN("zend_test.replace_zend_execute_ex", "0", PHP_INI_SYSTEM, OnUpdateBool, replace_zend_execute_ex, zend_zend_test_globals, zend_test_globals)
|
||||||
STD_PHP_INI_BOOLEAN("zend_test.register_passes", "0", PHP_INI_SYSTEM, OnUpdateBool, register_passes, zend_zend_test_globals, zend_test_globals)
|
STD_PHP_INI_BOOLEAN("zend_test.register_passes", "0", PHP_INI_SYSTEM, OnUpdateBool, register_passes, zend_zend_test_globals, zend_test_globals)
|
||||||
|
STD_PHP_INI_BOOLEAN("zend_test.print_stderr_mshutdown", "0", PHP_INI_SYSTEM, OnUpdateBool, print_stderr_mshutdown, zend_zend_test_globals, zend_test_globals)
|
||||||
PHP_INI_END()
|
PHP_INI_END()
|
||||||
|
|
||||||
void (*old_zend_execute_ex)(zend_execute_data *execute_data);
|
void (*old_zend_execute_ex)(zend_execute_data *execute_data);
|
||||||
@ -585,6 +586,10 @@ PHP_MSHUTDOWN_FUNCTION(zend_test)
|
|||||||
|
|
||||||
zend_test_observer_shutdown(SHUTDOWN_FUNC_ARGS_PASSTHRU);
|
zend_test_observer_shutdown(SHUTDOWN_FUNC_ARGS_PASSTHRU);
|
||||||
|
|
||||||
|
if (ZT_G(print_stderr_mshutdown)) {
|
||||||
|
fprintf(stderr, "[zend-test] MSHUTDOWN\n");
|
||||||
|
}
|
||||||
|
|
||||||
return SUCCESS;
|
return SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
14
ext/zend_test/tests/gh8575.phpt
Normal file
14
ext/zend_test/tests/gh8575.phpt
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
--TEST--
|
||||||
|
CLI: stderr is available in mshutdown
|
||||||
|
--SKIPIF--
|
||||||
|
<?php
|
||||||
|
if (!extension_loaded('zend-test')) die('skip zend-test extension required');
|
||||||
|
if (php_sapi_name() != "cli") die('skip cli test only');
|
||||||
|
?>
|
||||||
|
--INI--
|
||||||
|
zend_test.print_stderr_mshutdown=1
|
||||||
|
--FILE--
|
||||||
|
==DONE==
|
||||||
|
--EXPECTF--
|
||||||
|
==DONE==
|
||||||
|
[zend-test] MSHUTDOWN
|
@ -538,6 +538,14 @@ static void cli_register_file_handles(bool no_close) /* {{{ */
|
|||||||
s_out = php_stream_open_wrapper_ex("php://stdout", "wb", 0, NULL, sc_out);
|
s_out = php_stream_open_wrapper_ex("php://stdout", "wb", 0, NULL, sc_out);
|
||||||
s_err = php_stream_open_wrapper_ex("php://stderr", "wb", 0, NULL, sc_err);
|
s_err = php_stream_open_wrapper_ex("php://stderr", "wb", 0, NULL, sc_err);
|
||||||
|
|
||||||
|
/* Release stream resources, but don't free the underlying handles. Othewrise,
|
||||||
|
* extensions which write to stderr or company during mshutdown/gshutdown
|
||||||
|
* won't have the expected functionality.
|
||||||
|
*/
|
||||||
|
if (s_in) s_in->flags |= PHP_STREAM_FLAG_NO_CLOSE;
|
||||||
|
if (s_out) s_out->flags |= PHP_STREAM_FLAG_NO_CLOSE;
|
||||||
|
if (s_err) s_err->flags |= PHP_STREAM_FLAG_NO_CLOSE;
|
||||||
|
|
||||||
if (s_in==NULL || s_out==NULL || s_err==NULL) {
|
if (s_in==NULL || s_out==NULL || s_err==NULL) {
|
||||||
if (s_in) php_stream_close(s_in);
|
if (s_in) php_stream_close(s_in);
|
||||||
if (s_out) php_stream_close(s_out);
|
if (s_out) php_stream_close(s_out);
|
||||||
@ -545,12 +553,6 @@ static void cli_register_file_handles(bool no_close) /* {{{ */
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (no_close) {
|
|
||||||
s_in->flags |= PHP_STREAM_FLAG_NO_CLOSE;
|
|
||||||
s_out->flags |= PHP_STREAM_FLAG_NO_CLOSE;
|
|
||||||
s_err->flags |= PHP_STREAM_FLAG_NO_CLOSE;
|
|
||||||
}
|
|
||||||
|
|
||||||
s_in_process = s_in;
|
s_in_process = s_in;
|
||||||
|
|
||||||
php_stream_to_zval(s_in, &ic.value);
|
php_stream_to_zval(s_in, &ic.value);
|
||||||
|
Loading…
Reference in New Issue
Block a user