mirror of
https://github.com/php/php-src.git
synced 2024-09-21 18:07:23 +00:00
Make diff section contents red(-)/green(+) in run-tests.php
This uses green for lines with `+` and red for lines with `-`. Colors(Red and Green) would make the failure causes stand out visually when scrolling through errors. Closes GH-5965
This commit is contained in:
parent
e79adf6381
commit
58489bd3b9
@ -2877,6 +2877,7 @@ function count_array_diff(
|
||||
|
||||
function generate_array_diff(array $ar1, array $ar2, bool $is_reg, array $w): array
|
||||
{
|
||||
global $colorize;
|
||||
$idx1 = 0;
|
||||
$cnt1 = @count($ar1);
|
||||
$idx2 = 0;
|
||||
@ -2885,6 +2886,25 @@ function generate_array_diff(array $ar1, array $ar2, bool $is_reg, array $w): ar
|
||||
$old1 = [];
|
||||
$old2 = [];
|
||||
|
||||
$format_expected_line = function (int $line_number, string $contents) use ($colorize): string {
|
||||
$output = sprintf("%03d- ", $line_number) . $contents;
|
||||
if ($colorize) {
|
||||
// Reuse the colors used for `-` in other diff tools.
|
||||
// Here, red should be interpreted as "removed", and not "bad".
|
||||
return "\e[1;31m{$output}\e[0m";
|
||||
}
|
||||
return $output;
|
||||
};
|
||||
$format_actual_line = function (int $line_number, string $contents) use ($colorize): string {
|
||||
$output = sprintf("%03d+ ", $line_number) . $contents;
|
||||
if ($colorize) {
|
||||
// Reuse the colors used for `+` in other diff tools.
|
||||
// Here, green should be interpreted as "added", and not "good".
|
||||
return "\e[1;32m{$output}\e[0m";
|
||||
}
|
||||
return $output;
|
||||
};
|
||||
|
||||
while ($idx1 < $cnt1 && $idx2 < $cnt2) {
|
||||
if (comp_line($ar1[$idx1], $ar2[$idx2], $is_reg)) {
|
||||
$idx1++;
|
||||
@ -2895,12 +2915,12 @@ function generate_array_diff(array $ar1, array $ar2, bool $is_reg, array $w): ar
|
||||
$c2 = @count_array_diff($ar1, $ar2, $is_reg, $w, $idx1, $idx2 + 1, $cnt1, $cnt2, 10);
|
||||
|
||||
if ($c1 > $c2) {
|
||||
$old1[$idx1] = sprintf("%03d- ", $idx1 + 1) . $w[$idx1++];
|
||||
$old1[$idx1] = $format_expected_line($idx1 + 1, $w[$idx1++]);
|
||||
} elseif ($c2 > 0) {
|
||||
$old2[$idx2] = sprintf("%03d+ ", $idx2 + 1) . $ar2[$idx2++];
|
||||
$old2[$idx2] = $format_actual_line($idx2 + 1, $ar2[$idx2++]);
|
||||
} else {
|
||||
$old1[$idx1] = sprintf("%03d- ", $idx1 + 1) . $w[$idx1++];
|
||||
$old2[$idx2] = sprintf("%03d+ ", $idx2 + 1) . $ar2[$idx2++];
|
||||
$old1[$idx1] = $format_expected_line($idx1 + 1, $w[$idx1++]);
|
||||
$old2[$idx2] = $format_actual_line($idx2 + 1, $ar2[$idx2++]);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -2933,11 +2953,11 @@ function generate_array_diff(array $ar1, array $ar2, bool $is_reg, array $w): ar
|
||||
}
|
||||
|
||||
while ($idx1 < $cnt1) {
|
||||
$diff[] = sprintf("%03d- ", $idx1 + 1) . $w[$idx1++];
|
||||
$diff[] = $format_expected_line($idx1 + 1, $w[$idx1++]);
|
||||
}
|
||||
|
||||
while ($idx2 < $cnt2) {
|
||||
$diff[] = sprintf("%03d+ ", $idx2 + 1) . $ar2[$idx2++];
|
||||
$diff[] = $format_actual_line($idx2 + 1, $ar2[$idx2++]);
|
||||
}
|
||||
|
||||
return $diff;
|
||||
|
Loading…
Reference in New Issue
Block a user