diff options
| -rwxr-xr-x | run-tests.php | 62 | 
1 files changed, 58 insertions, 4 deletions
diff --git a/run-tests.php b/run-tests.php index 43e81d8640..b0d6b9f820 100755 --- a/run-tests.php +++ b/run-tests.php @@ -236,6 +236,16 @@ $temp_source = null;  $temp_target = null;  $temp_urlbase = null; +$cfgtypes = array('show', 'keep'); +$cfgfiles = array('skip', 'php'); +$cfg = array(); +foreach($cfgtypes as $type) { +	$cfg[$type] = array(); +	foreach($cfgfiles as $file) { +		$cfg[$type][$file] = false; +	} +} +  if (getenv('TEST_PHP_ARGS'))  {  	if (!isset($argc) || !$argc || !isset($argv)) @@ -286,6 +296,17 @@ if (isset($argc) && $argc > 1) {  					$ini_overwrites[] = $argv[++$i];  					break;  				//case 'h' +				case '--keep-all': +					foreach($cfgfiles as $file) { +						$cfg['keep'][$file] = true; +					} +					break; +				case '--keep-skip': +					$cfg['keep']['skip'] = true; +					break; +				case '--keep-php': +					$cfg['keep']['php'] = true; +					break;  				//case 'l'  				case 'm':  					$leak_check = true; @@ -304,6 +325,17 @@ if (isset($argc) && $argc > 1) {  					$output_file = $argv[++$i];  					$just_save_results = true;  					break; +				case '--show-all': +					foreach($cfgfiles as $file) { +						$cfg['show'][$file] = true; +					} +					break; +				case '--show-skip': +					$cfg['show']['skip'] = true; +					break; +				case '--show-php': +					$cfg['show']['php'] = true; +					break;  				case '--temp-source':  					$temp_source = $argv[++$i];  					break; @@ -387,6 +419,12 @@ Options:                  to your source files and <tdir> some pach in your web page                   hierarchy with <url> pointing to <tdir>. +    --keep-[all|php|skip] +                Do not delete 'all' files, 'php' test file, 'skip' file. + +    --show-[all|php|skip] +                Show 'all' files, 'php' test file, 'skip' file. +  HELP;  					exit(1);  			} @@ -831,7 +869,7 @@ function run_all_tests($test_files, $redir_tested = NULL)  //  function run_test($php, $file)  { -	global $log_format, $info_params, $ini_overwrites, $cwd, $PHP_FAILED_TESTS, $pass_options, $DETAILED, $IN_REDIRECT, $test_cnt, $test_idx, $leak_check, $temp_source, $temp_target; +	global $log_format, $info_params, $ini_overwrites, $cwd, $PHP_FAILED_TESTS, $pass_options, $DETAILED, $IN_REDIRECT, $test_cnt, $test_idx, $leak_check, $temp_source, $temp_target, $cfg;  	$temp_filenames = null;  	$org_file = $file; @@ -1024,6 +1062,11 @@ TEST $file  			settings2array($ini_overwrites,$skipif_params);  			settings2params($skipif_params); +			if ($cfg['show']['skip']) { +				echo "\n========SKIP========\n"; +				echo $section_text['SKIPIF']; +				echo "========DONE========\n"; +			}  			save_text($test_skipif, $section_text['SKIPIF'], $temp_skipif);  			$extra = substr(PHP_OS, 0, 3) !== "WIN" ?  				"unset REQUEST_METHOD; unset QUERY_STRING; unset PATH_TRANSLATED; unset SCRIPT_FILENAME; unset REQUEST_METHOD;": ""; @@ -1039,7 +1082,9 @@ TEST $file  				if (isset($old_php)) {  					$php = $old_php;  				} -				@unlink($test_skipif); +				if (!$cfg['keep']['skip']) { +					@unlink($test_skipif); +				}  				return 'SKIPPED';  			}  			if (!strncasecmp('info', trim($output), 4)) { @@ -1135,6 +1180,11 @@ TEST $file  	settings2params($ini_settings);  	// We've satisfied the preconditions - run the test! +	if ($cfg['show']['php']) { +		echo "\n========TEST========\n"; +		echo $section_text['FILE']; +		echo "========DONE========\n"; +	}  	save_text($test_file, $section_text['FILE'], $temp_file);  	if (array_key_exists('GET', $section_text)) {  		$query_string = trim($section_text['GET']); @@ -1252,7 +1302,9 @@ COMMAND $cmd  */  		if (preg_match("/^$wanted_re\$/s", $output)) {  			$passed = true; -			@unlink($test_file); +			if (!$cfg['keep']['php']) { +				@unlink($test_file); +			}  			if (isset($old_php)) {  				$php = $old_php;  			} @@ -1267,7 +1319,9 @@ COMMAND $cmd  		// compare and leave on success  		if (!strcmp($output, $wanted)) {  			$passed = true; -			@unlink($test_file); +			if (!$cfg['keep']['php']) { +				@unlink($test_file); +			}  			if (isset($old_php)) {  				$php = $old_php;  			}  | 
