@@ -2059,9 +2059,6 @@ function run_test(string $php, $file, array $env): string
20592059 // Make sure warnings still show up on the second run.
20602060 $ ini_settings ['opcache.record_warnings ' ] = '1 ' ;
20612061 }
2062- if (extension_loaded ('posix ' ) && posix_getuid () === 0 ) {
2063- $ ini_settings ['opcache.preload_user ' ] = 'root ' ;
2064- }
20652062
20662063 // Any special ini settings
20672064 // these may overwrite the test defaults...
@@ -2070,6 +2067,19 @@ function run_test(string $php, $file, array $env): string
20702067 $ ini = str_replace ('{TMP} ' , sys_get_temp_dir (), $ ini );
20712068 $ replacement = IS_WINDOWS ? '" ' . PHP_BINARY . ' -r \"while ($in = fgets(STDIN)) echo $in;\" > $1" ' : 'tee $1 >/dev/null ' ;
20722069 $ ini = preg_replace ('/{MAIL:(\S+)}/ ' , $ replacement , $ ini );
2070+ $ skip = false ;
2071+ $ ini = preg_replace_callback ('/{ENV:(\S+)}/ ' , function ($ m ) use (&$ skip ) {
2072+ $ name = $ m [1 ];
2073+ $ value = getenv ($ name );
2074+ if ($ value === false ) {
2075+ $ skip = sprintf ('Environment variable %s is not set ' , $ name );
2076+ return '' ;
2077+ }
2078+ return $ value ;
2079+ }, $ ini );
2080+ if ($ skip !== false ) {
2081+ return skip_test ($ tested , $ tested_file , $ shortname , $ skip );
2082+ }
20732083 settings2array (preg_split ("/[ \n\r]+/ " , $ ini ), $ ini_settings );
20742084
20752085 if ($ num_repeats > 1 && isset ($ ini_settings ['opcache.opt_debug_level ' ])) {
0 commit comments