diff --git a/run-tests.php b/run-tests.php index 8cdaa03b20bd5..a32db44bf83f0 100755 --- a/run-tests.php +++ b/run-tests.php @@ -1575,15 +1575,19 @@ function run_test($php, $file, $env) // Additional required extensions if (array_key_exists('EXTENSIONS', $section_text)) { - $ext_dir=`$php -r 'echo ini_get("extension_dir");'`; + $ext_params = array(); + settings2array($ini_overwrites, $ext_params); + settings2params($ext_params); + $ext_dir=`$php $pass_options $ext_params -d display_errors=0 -r "echo ini_get('extension_dir');"`; $extensions = preg_split("/[\n\r]+/", trim($section_text['EXTENSIONS'])); - $loaded = explode(",", `$php -n -r 'echo implode(",", get_loaded_extensions());'`); + $loaded = explode(",", `$php $pass_options $ext_params -d display_errors=0 -r "echo implode(',', get_loaded_extensions());"`); + $ext_prefix = substr(PHP_OS, 0, 3) === "WIN" ? "php_" : ""; foreach ($extensions as $req_ext) { if (!in_array($req_ext, $loaded)) { if ($req_ext == 'opcache') { - $ini_settings['zend_extension'][] = $ext_dir . DIRECTORY_SEPARATOR . $req_ext . '.' . PHP_SHLIB_SUFFIX; + $ini_settings['zend_extension'][] = $ext_dir . DIRECTORY_SEPARATOR . $ext_prefix . $req_ext . '.' . PHP_SHLIB_SUFFIX; } else { - $ini_settings['extension'][] = $ext_dir . DIRECTORY_SEPARATOR . $req_ext . '.' . PHP_SHLIB_SUFFIX; + $ini_settings['extension'][] = $ext_dir . DIRECTORY_SEPARATOR . $ext_prefix . $req_ext . '.' . PHP_SHLIB_SUFFIX; } } } diff --git a/tests/run-test/bug75042-2.phpt b/tests/run-test/bug75042-2.phpt new file mode 100644 index 0000000000000..c79eb4495f172 --- /dev/null +++ b/tests/run-test/bug75042-2.phpt @@ -0,0 +1,18 @@ +--TEST-- +phpt EXTENSIONS directive with static module +--SKIPIF-- +