diff options
author | John Boehr <jbboehr@gmail.com> | 2017-08-06 15:04:36 -0700 |
---|---|---|
committer | Anatol Belski <ab@php.net> | 2017-08-19 01:59:48 +0200 |
commit | 71b12940d0349e58f8719a22e0d4667f19c13dcf (patch) | |
tree | 090275a007eda4868a497bd9a9d1bc8904cc1fd4 /run-tests.php | |
parent | ba59b6f11bcbeb939359be5c567e877ed16ac8d4 (diff) | |
download | php-git-71b12940d0349e58f8719a22e0d4667f19c13dcf.tar.gz |
Fix issues with phpt and EXTENSION on windows (BUG 75042)
* Commands are not properly escaped for windows
* Specifying "-n" to check loaded modules causes "Module already loaded"
warning
* Extensions to be loaded need the "php_" prefix on Windows
Bug: https://bugs.php.net/bug.php?id=75042
Add back -n flag to fetch loaded extensions in run-tests.php
Add test for phpt EXTENSIONS directive
Add a second test for bug 75042
Add test to test loading of nonexistent shared module
with the EXTENSIONS phpt block
Pass ini settings when checking loaded extensions
Fix skipifs
Diffstat (limited to 'run-tests.php')
-rwxr-xr-x | run-tests.php | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/run-tests.php b/run-tests.php index f256803657..d50e4b7861 100755 --- a/run-tests.php +++ b/run-tests.php @@ -1535,15 +1535,19 @@ TEST $file // 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 join(",", 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; } } } |