]> granicus.if.org Git - php/commitdiff
allow default ini overwrites to be overwritten themselves in --INI--
authorMarcus Boerger <helly@php.net>
Mon, 28 Oct 2002 00:07:11 +0000 (00:07 +0000)
committerMarcus Boerger <helly@php.net>
Mon, 28 Oct 2002 00:07:11 +0000 (00:07 +0000)
#see followup on dev list

run-tests.php

index cda58ec9a9625b17f4a16de8e588caffc5eaa82d..3598f1728edde1a8d71c2fc760e842b4fb0cc364 100755 (executable)
@@ -480,29 +480,51 @@ TEST $file
 
        // Default ini settings
        $settings = array (
-               "-d 'open_basedir='",
-               "-d 'disable_functions='",
-               "-d 'error_reporting=2047'",
-               "-d 'display_errors=0'",
-               "-d 'log_errors=0'",
-               "-d 'html_errors=0'",
-               "-d 'docref_root=/phpmanual/'",
-               "-d 'docref_ext=.html'",
-               "-d 'error_prepend_string='",
-               "-d 'error_append_string='",
-               "-d 'auto_append_file='",
-               "-d 'auto_prepend_file='",
+               "open_basedir=",
+               "disable_functions=",
+               "error_reporting=2047",
+               "display_errors=0",
+               "log_errors=1",
+               "html_errors=1",
+               "track_errors=1",
+               "docref_root=/phpmanual/",
+               "docref_ext=.html",
+               "error_prepend_string=",
+               "error_append_string=",
+               "auto_append_file=",
+               "auto_prepend_file=",
        );
-       $ini_settings = ' '. join (' ', $settings);
+       $ini_settings = array();
+       foreach($settings as $setting) {
+               if (strpos($setting, '=')!==false) {
+                       $setting = explode("=", $setting);
+                       $name = trim(strtolower($setting[0]));
+                       $value = trim($setting[1]);
+                       $ini_settings[$name] = $value;
+               }
+       }
 
-       // Any special ini settings
+       // Any special ini settings 
+       // these may overwrite the test defaults...
        if (array_key_exists('INI', $section_text)) {
                foreach(preg_split( "/[\n\r]+/", $section_text['INI']) as $setting) {
-                       if (strlen($setting)) {
-                               $ini_settings .= " -d '$setting'";
+                       if (strpos($setting, '=')!==false) {
+                               $setting = explode("=", $setting);
+                               $name = trim(strtolower($setting[0]));
+                               $value = trim($setting[1]);
+                               $ini_settings[$name] = $value;
                        }
                }
        }
+       if (count($ini_settings)) {
+               $settings = '';
+               foreach($ini_settings as $name => $value) {
+                       $settings .= " -d '$name=$value'";
+               }
+               $ini_settings = $settings;
+       } else {
+               $ini_settings = '';
+       }
 
        // We've satisfied the preconditions - run the test!
        save_text($tmp_file,$section_text['FILE']);