|   | php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login | 
| 
 Patchestest_php_extra_args (last revision 2019-07-29 10:42 UTC by cmb@php.net)Pull RequestsHistoryAllCommentsChangesGit/SVN commits              [2019-07-29 09:50 UTC] cmb@php.net
 
-Status: Open
+Status: Verified
  [2019-07-29 09:50 UTC] cmb@php.net
  [2019-07-29 09:56 UTC] rainer dot jung at kippdata dot de
  [2019-07-29 10:42 UTC] cmb@php.net
  [2019-07-29 13:28 UTC] rainer dot jung at kippdata dot de
 | |||||||||||||||||||||||||||
|  Copyright © 2001-2025 The PHP Group All rights reserved. | Last updated: Fri Oct 31 22:00:01 2025 UTC | 
Description: ------------ Several OpenSSL extension tests fork a new process executing various server tasks. This new process is created as another PHP process, but without any explicit ini or extension loading - at least on Linux/Unix. In our case the OpenSSl extension must be dynamically loaded and there is not implicit php.ini that PHP would automatically load. Thus the new server worker fails and as a result the tests fail. This is true for the following tests (based on 7.0beta1, but mostly the same holds true for current 7.3 and 7.2): - ext/openssl/tests/bug65729.phpt - ext/openssl/tests/bug68265.phpt - ext/openssl/tests/bug68879.phpt - ext/openssl/tests/bug68920.phpt - ext/openssl/tests/bug69215.phpt - ext/openssl/tests/bug76705.phpt - ext/openssl/tests/san_peer_matching.phpt - ext/openssl/tests/sni_server.phpt - ext/openssl/tests/sni_server_key_cert.phpt - ext/openssl/tests/streams_crypto_method.phpt - ext/openssl/tests/tls_min_v1.0_max_v1.1_wrapper.phpt - ext/openssl/tests/tls_wrapper.phpt - ext/openssl/tests/tls_wrapper_with_tls_v1.3.phpt - ext/openssl/tests/tlsv1.0_wrapper.phpt - ext/openssl/tests/tlsv1.1_wrapper.phpt - ext/openssl/tests/tlsv1.2_wrapper.phpt - ext/openssl/tests/tlsv1.3_wrapper.phpt I don't have a good patch for it. As soon as I add a default php.ini which loads the openssl extension, everything is fine. I also verified that the failure is due to the missing openssl extension in the worker by running tests under strace and watching the server warnings that are swallowed by the child. As a workaround I used the following patch, but it should be conditional on whether openssl is a static or shared extension. I don't know, how Windows behaves. Index: ext/openssl/tests/ServerClientTestCase.inc --- ext/openssl/tests/ServerClientTestCase.inc 2019-07-26 02:13:34.988151000 +0000 +++ ext/openssl/tests/ServerClientTestCase.inc 2019-07-28 23:01:28.525371000 +0000 @@ -72,7 +72,7 @@ ); } else { $cmd = sprintf( - '%s "%s" %s %s', + '%s -d extension=openssl "%s" %s %s', PHP_BINARY, __FILE__, WORKER_ARGV_VALUE,