]> granicus.if.org Git - php/commitdiff
This changes adds the --EXTENSION-- section to .phpt files as
authorDerick Rethans <derick@php.net>
Tue, 6 Dec 2011 05:44:54 +0000 (05:44 +0000)
committerDerick Rethans <derick@php.net>
Tue, 6 Dec 2011 05:44:54 +0000 (05:44 +0000)
described in http://marc.info/?t=132248616300007&r=1&w=2.

run-tests.php

index 3fba338dca791d34e78e1d5c069b014e5d2f86ca..3e22a9556ec0b83e473bbd50a09b5a28304638d9 100755 (executable)
@@ -1246,7 +1246,7 @@ TEST $file
                }
 
                // Match the beginning of a section.
-               if (preg_match(b'/^--([_A-Z]+)--/', $line, $r)) {
+               if (preg_match('/^--([_A-Z]+)--/', $line, $r)) {
                        $section = $r[1];
                        settype($section, 'string');
 
@@ -1483,6 +1483,18 @@ TEST $file
                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.