mirror of
https://github.com/php/php-src.git
synced 2025-01-22 11:44:09 +08:00
Complain about borked tests instead of spitting out errors
This commit is contained in:
parent
ac41c5db23
commit
06b089d63b
@ -247,7 +247,7 @@ Synopsis:
|
||||
Options:
|
||||
-l <file> Read the testfiles to be executed from <file>. After the test
|
||||
has finished all failed tests are written to the same <file>.
|
||||
If the list is empty and now further test is specified then
|
||||
If the list is empty and no further test is specified then
|
||||
all tests are executed.
|
||||
|
||||
-r <file> Read the testfiles to be executed from <file>.
|
||||
@ -641,7 +641,7 @@ TEST $file
|
||||
|
||||
// Load the sections of the test file.
|
||||
$section_text = array(
|
||||
'TEST' => '(unnamed test)',
|
||||
'TEST' => '',
|
||||
'SKIPIF' => '',
|
||||
'GET' => '',
|
||||
'ARGS' => '',
|
||||
@ -649,7 +649,17 @@ TEST $file
|
||||
|
||||
$fp = @fopen($file, "r") or error("Cannot open test file: $file");
|
||||
|
||||
$section = '';
|
||||
if (!feof($fp)) {
|
||||
$line = fgets($fp);
|
||||
} else {
|
||||
echo "BORK empty test [$file]\n";
|
||||
return 'BORKED';
|
||||
}
|
||||
if (!ereg('^--TEST--',$line,$r)) {
|
||||
echo "BORK tests must start with --TEST-- [$file]\n";
|
||||
return 'BORKED';
|
||||
}
|
||||
$section = 'TEST';
|
||||
while (!feof($fp)) {
|
||||
$line = fgets($fp);
|
||||
|
||||
@ -663,6 +673,14 @@ TEST $file
|
||||
// Add to the section text.
|
||||
$section_text[$section] .= $line;
|
||||
}
|
||||
if (!@count($section_text['FILE'])) {
|
||||
echo "BORK missing section --FILE-- [$file]\n";
|
||||
return 'BORKED';
|
||||
}
|
||||
if (!(@count($section_text['EXPECT']) + @count($section_text['EXPECTF']) + @count($section_text['EXPECTREGEX']))) {
|
||||
echo "BORK missing section --EXPECT--, --EXPECTF-- or --EXPECTREGEX-- [$file]\n";
|
||||
return 'BORKED';
|
||||
}
|
||||
fclose($fp);
|
||||
|
||||
/* For GET/POST tests, check if cgi sapi is avaliable and if it is, use it. */
|
||||
@ -868,7 +886,7 @@ COMMAND $cmd
|
||||
if ($warn) {
|
||||
echo "WARN $tested$info\n";
|
||||
} else {
|
||||
echo "FAIL $tested\n";
|
||||
echo "FAIL $tested$info\n";
|
||||
}
|
||||
|
||||
$PHP_FAILED_TESTS[] = array(
|
||||
@ -933,7 +951,7 @@ function generate_diff($wanted,$wanted_re,$output)
|
||||
$r = explode("\n", $wanted_re);
|
||||
for($idx = 0; $idx < min(count($o),count($r)); $idx++) {
|
||||
if (preg_match('/^'.$r[$idx].'$/s', $o[$idx])) {
|
||||
$w[$idx] = $o[$idx];
|
||||
$w[$idx] = $o[$idx];
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -945,6 +963,8 @@ function generate_diff($wanted,$wanted_re,$output)
|
||||
foreach($o1 as $idx => $val) $o2[sprintf("%03d>",$idx)] = sprintf("%03d+ ", $idx+1).$val;
|
||||
$diff = array_merge($w2, $o2);
|
||||
ksort($diff);
|
||||
$r = is_null($wanted_re) ? $w : explode("\n", $wanted_re);
|
||||
$diff = generate_array_diff($r,$o,!is_null($wanted_re),$w);
|
||||
return implode("\r\n", $diff);
|
||||
}
|
||||
|
||||
@ -987,7 +1007,7 @@ function compute_summary()
|
||||
$n_total = count($test_results);
|
||||
$n_total += $ignored_by_ext;
|
||||
|
||||
$sum_results = array('PASSED'=>0, 'WARNED'=>0, 'SKIPPED'=>0, 'FAILED'=>0);
|
||||
$sum_results = array('PASSED'=>0, 'WARNED'=>0, 'SKIPPED'=>0, 'FAILED'=>0, 'BORKED'=>0);
|
||||
foreach ($test_results as $v) {
|
||||
$sum_results[$v]++;
|
||||
}
|
||||
@ -1014,7 +1034,12 @@ Exts tested : " . sprintf("%4d",$exts_tested) . "
|
||||
";
|
||||
}
|
||||
$summary .= "
|
||||
Number of tests : " . sprintf("%4d",$n_total) . "
|
||||
Number of tests : " . sprintf("%4d",$n_total);
|
||||
if ($sum_results['BORKED']) {
|
||||
$summary .= "
|
||||
Tests borked : " . sprintf("%4d (%2.1f%%)",$sum_results['BORKED'],$percent_results['BORKED']);
|
||||
}
|
||||
$summary .= "
|
||||
Tests skipped : " . sprintf("%4d (%2.1f%%)",$sum_results['SKIPPED'],$percent_results['SKIPPED']) . "
|
||||
Tests warned : " . sprintf("%4d (%2.1f%%)",$sum_results['WARNED'],$percent_results['WARNED']) . "
|
||||
Tests failed : " . sprintf("%4d (%2.1f%%)",$sum_results['FAILED'],$percent_results['FAILED']) . "
|
||||
|
Loading…
Reference in New Issue
Block a user