From 431e22fb4d2a23f6e522ec5e20503fd6ec7ca1f6 Mon Sep 17 00:00:00 2001 From: Sara Golemon Date: Sat, 6 May 2017 16:10:46 -0700 Subject: [PATCH] Add support for run-tests.php to output all test results ./run-tests.php -W outfile.txt PASS foo/bar.phpt FAIL baz/qux.phpt --- run-tests.php | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/run-tests.php b/run-tests.php index 3bfbf76ce0..7f8653f1b3 100755 --- a/run-tests.php +++ b/run-tests.php @@ -459,6 +459,7 @@ $test_results = array(); $PHP_FAILED_TESTS = array('BORKED' => array(), 'FAILED' => array(), 'WARNED' => array(), 'LEAKED' => array(), 'XFAILED' => array(), 'SLOW' => array()); // If parameters given assume they represent selected tests to run. +$result_tests_file= false; $failed_tests_file= false; $pass_option_n = false; $pass_options = ''; @@ -559,6 +560,9 @@ if (isset($argc) && $argc > 1) { case 'a': $failed_tests_file = fopen($argv[++$i], 'a+t'); break; + case 'W': + $result_tests_file = fopen($argv[++$i], 'w+t'); + break; case 'c': $conf_passed = $argv[++$i]; break; @@ -694,6 +698,8 @@ Options: -a Same as -w but append rather then truncating . + -W Write a list of all tests and their result status to . + -c Look for php.ini in directory or use as ini. -n Pass -n option to the php binary (Do not use a php.ini). @@ -826,6 +832,10 @@ HELP; fclose($failed_tests_file); } + if ($result_tests_file) { + fclose($result_tests_file); + } + compute_summary(); if ($html_output) { fwrite($html_file, "
\n" . get_summary(false, true)); @@ -959,6 +969,10 @@ if ($failed_tests_file) { fclose($failed_tests_file); } +if ($result_tests_file) { + fclose($result_tests_file); +} + // Summarize results if (0 == count($test_results)) { @@ -1160,7 +1174,7 @@ function system_with_timeout($commandline, $env = null, $stdin = null, $captureS function run_all_tests($test_files, $env, $redir_tested = null) { - global $test_results, $failed_tests_file, $php, $test_idx; + global $test_results, $failed_tests_file, $result_tests_file, $php, $test_idx; foreach($test_files as $name) { @@ -1183,6 +1197,9 @@ function run_all_tests($test_files, $env, $redir_tested = null) if ($failed_tests_file && ($result == 'XFAILED' || $result == 'FAILED' || $result == 'WARNED' || $result == 'LEAKED')) { fwrite($failed_tests_file, "$index\n"); } + if ($result_tests_file) { + fwrite($result_tests_file, "$result\t$index\n"); + } } } } -- 2.50.1