summaryrefslogtreecommitdiff
path: root/run-tests.php
diff options
context:
space:
mode:
authorTyson Andre <tysonandre775@hotmail.com>2020-08-09 11:58:08 -0400
committerTyson Andre <tysonandre775@hotmail.com>2020-08-09 20:59:43 -0400
commit58489bd3b93e10c150933eefac05297b48213eb3 (patch)
treee84af4665f8ae794d594e93f10b80d14042beedc /run-tests.php
parente79adf6381977f8a748144db0cf4684bb87c56f7 (diff)
downloadphp-git-58489bd3b93e10c150933eefac05297b48213eb3.tar.gz
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
Diffstat (limited to 'run-tests.php')
-rwxr-xr-xrun-tests.php32
1 files changed, 26 insertions, 6 deletions
diff --git a/run-tests.php b/run-tests.php
index 7d71b81610..1498e37281 100755
--- a/run-tests.php
+++ b/run-tests.php
@@ -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;