Skip to content

Commit

Permalink
Make diff section contents red(-)/green(+) in run-tests.php
Browse files Browse the repository at this point in the history
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
  • Loading branch information
TysonAndre committed Aug 10, 2020
1 parent e79adf6 commit 58489bd
Showing 1 changed file with 26 additions and 6 deletions.
32 changes: 26 additions & 6 deletions run-tests.php
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -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++;
Expand All @@ -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++]);
}
}
}
Expand Down Expand Up @@ -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;
Expand Down

0 comments on commit 58489bd

Please sign in to comment.