On Mon, 28 Nov 2011, Ferenc Kovacs wrote:

> thanks for the answer, in this case I think this would be a worthwhile
> improvement.
> 
> + foreach ($extensions as $req_ext) {
> + $loaded = `$php -n -r 'echo (int) extension_loaded("$req_ext");'`;
> + if ($loaded == '0') {
> 
> it would be more efficient to get all the loaded modules at
> once(get_loaded_extensions or php -m)

Yup, good catch. Patch attached again.

Derick

-- 
http://derickrethans.nl | http://xdebug.org
Like Xdebug? Consider a donation: http://xdebug.org/donate.php
twitter: @derickr and @xdebug
Index: branches/PHP_5_3/run-tests.php
===================================================================
--- branches/PHP_5_3/run-tests.php      (revision 319744)
+++ branches/PHP_5_3/run-tests.php      (working copy)
@@ -1470,6 +1470,18 @@
                settings2array(preg_split( "/[\n\r]+/", $section_text['INI']), 
$ini_settings);
        }
 
+       // Additional required extensions
+       if (array_key_exists('EXTENSIONS', $section_text)) {
+               $ext_dir=`$php -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());'`);
+               foreach ($extensions as $req_ext) {
+                       if (!in_array($req_ext, $loaded)) {
+                               $ini_settings['extension'][] = $ext_dir . 
DIRECTORY_SEPARATOR . $req_ext . '.' . PHP_SHLIB_SUFFIX;
+                       }
+               }
+       }
+
        settings2params($ini_settings);
 
        // Check if test should be skipped.
Index: branches/PHP_5_4/run-tests.php
===================================================================
--- branches/PHP_5_4/run-tests.php      (revision 319744)
+++ branches/PHP_5_4/run-tests.php      (working copy)
@@ -1470,6 +1470,18 @@
                settings2array(preg_split( "/[\n\r]+/", $section_text['INI']), 
$ini_settings);
        }
 
+       // Additional required extensions
+       if (array_key_exists('EXTENSIONS', $section_text)) {
+               $ext_dir=`$php -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());'`);
+               foreach ($extensions as $req_ext) {
+                       if (!in_array($req_ext, $loaded)) {
+                               $ini_settings['extension'][] = $ext_dir . 
DIRECTORY_SEPARATOR . $req_ext . '.' . PHP_SHLIB_SUFFIX;
+                       }
+               }
+       }
+
        settings2params($ini_settings);
 
        // Check if test should be skipped.
Index: trunk/run-tests.php
===================================================================
--- trunk/run-tests.php (revision 319765)
+++ trunk/run-tests.php (working copy)
@@ -1470,6 +1470,18 @@
                settings2array(preg_split( "/[\n\r]+/", $section_text['INI']), 
$ini_settings);
        }
 
+       // Additional required extensions
+       if (array_key_exists('EXTENSIONS', $section_text)) {
+               $ext_dir=`$php -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());'`);
+               foreach ($extensions as $req_ext) {
+                       if (!in_array($req_ext, $loaded)) {
+                               $ini_settings['extension'][] = $ext_dir . 
DIRECTORY_SEPARATOR . $req_ext . '.' . PHP_SHLIB_SUFFIX;
+                       }
+               }
+       }
+
        settings2params($ini_settings);
 
        // Check if test should be skipped.
-- 
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to