sniper Tue Oct 1 21:52:25 2002 EDT Modified files: /php4 run-tests.php Log: - Run ext/* tests only for those modules that are actually compiled into the php binary. (faster) - Skip search of .phpt files if they are passed as parameters Index: php4/run-tests.php diff -u php4/run-tests.php:1.55 php4/run-tests.php:1.56 --- php4/run-tests.php:1.55 Wed Sep 11 15:42:59 2002 +++ php4/run-tests.php Tue Oct 1 21:52:25 2002 @@ -44,7 +44,7 @@ error_reporting(E_ALL); if (ini_get('safe_mode')) { - echo <<<SAFE_MODE_WARNING + echo <<< SAFE_MODE_WARNING +-----------------------------------------------------------+ | ! WARNING ! | @@ -62,25 +62,25 @@ // Require the explicit specification. // Otherwise we could end up testing the wrong file! -if(isset($_ENV['TEST_PHP_EXECUTABLE'])) { +if (isset($_ENV['TEST_PHP_EXECUTABLE'])) { $php = $_ENV['TEST_PHP_EXECUTABLE']; } else { error("environment variable TEST_PHP_EXECUTABLE must be set to specify PHP executable!"); } -if(isset($_ENV['TEST_PHP_LOG_FORMAT'])) { +if (isset($_ENV['TEST_PHP_LOG_FORMAT'])) { $log_format = strtoupper($_ENV['TEST_PHP_LOG_FORMAT']); } else { $log_format = 'LEOD'; } -if(!@is_executable($php)) { +if (!@is_executable($php)) { error("invalid PHP executable specified by TEST_PHP_EXECUTABLE = " . $php); } // Check whether a detailed log is wanted. -if(isset($_ENV['TEST_PHP_DETAILED'])) { +if (isset($_ENV['TEST_PHP_DETAILED'])) { define('DETAILED', $_ENV['TEST_PHP_DETAILED']); } else { define('DETAILED', 0); @@ -103,7 +103,7 @@ // Make sure we are using the proper php.ini. $php_ini = realpath("php.ini-dist"); -if(realpath(get_cfg_var('cfg_file_path')) != $php_ini) { +if (realpath(get_cfg_var('cfg_file_path')) != $php_ini) { error("php.ini-dist was not used!"); } $php .= " -c $php_ini"; @@ -115,65 +115,67 @@ $test_results = array(); // If parameters given assume they represent selected tests to run. -if (isset($argc) && $argc>1) { +if (isset($argc) && $argc > 1) { for ($i=1; $i<$argc; $i++) { $testfile = realpath($argv[$i]); $test_to_run[$testfile] = 1; } + + // Run selected tests. + if (count($test_to_run)) { + echo "Running selected tests.\n"; + foreach($test_to_run AS $name=>$runnable) { + echo "test: $name runnable: $runnable\n"; + if ($runnable) { + $test_results[$name] = run_test($php,$name); + } + } + exit(0); + } } // Compile a list of all test files (*.phpt). -$test_files = array(); -$module_of_test = array(); -find_files(getcwd()); - -function find_files($dir) { - global $test_files, $module_of_test; - - /* FIXME: this messes up if you unpack PHP in /ext/pear :) */ - if (ereg('/ext/([^/]+)/',"$dir/",$r)) { - $module = $r[1]; - } else if (ereg('/pear/',"$dir/")) { - $module = 'pear'; - } else { - $module = ''; - } +$test_files = array(); +$exts_to_test = get_loaded_extensions(); +sort($exts_to_test); +$extra_dirs = array('pear', 'tests'); +$cwd=getcwd(); + +// First get list of test files in ext/ +foreach ($exts_to_test as $dir) { + find_files("{$cwd}/ext/{$dir}"); +} + +// Then the rest +foreach ($extra_dirs as $dir) { + find_files("{$cwd}/{$dir}"); +} + +function find_files($dir) +{ + global $test_files; $o = opendir($dir) or error("cannot open directory: $dir"); - while (($name = readdir($o))!==false) { + while (($name = readdir($o)) !== false) { if (is_dir("{$dir}/{$name}") && !in_array($name, array('.', '..', 'CVS'))) { find_files("{$dir}/{$name}"); } // Cleanup any left-over tmp files from last run. - if (substr($name, -4)=='.tmp') { + if (substr($name, -4) == '.tmp') { @unlink("$dir/$name"); continue; } // Otherwise we're only interested in *.phpt files. - if (substr($name, -5)=='.phpt') { + if (substr($name, -5) == '.phpt') { $testfile = realpath("{$dir}/{$name}"); $test_files[] = $testfile; -// $module_of_test[$testfile] = $module; } } - closedir($o); } -// Run only selected tests, if specified. -if (count($test_to_run)) { - echo "Running selected tests.\n"; - foreach($test_to_run AS $name=>$runnable) { - echo "test: $name runnable: $runnable\n"; - if ($runnable) { - $test_results[$name] = run_test($php,$name); - } - } - exit(0); -} - sort($test_files); $start_time = time(); @@ -231,9 +233,9 @@ // Write the given text to a temporary file, and return the filename. // -function save_text($filename,$text) { - $fp = @fopen($filename,'w') - or error("Cannot open file '" . $filename . "' (save_text)"); +function save_text($filename,$text) +{ + $fp = @fopen($filename,'w') or error("Cannot open file '" . $filename . "' +(save_text)"); fwrite($fp,$text); fclose($fp); if (1 < DETAILED) echo " @@ -464,7 +466,8 @@ return 'FAILED'; } -function generate_diff($wanted,$output) { +function generate_diff($wanted,$output) +{ $w = explode("\n", $wanted); $o = explode("\n", $output); $w1 = array_diff($w,$o); @@ -478,7 +481,8 @@ return implode("\r\n", $diff); } -function error($message) { +function error($message) +{ echo "ERROR: {$message}\n"; exit(1); }
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php