automake-patches
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[PATCH] check: don't use multi-line coloring for the report


From: Bert Wesarg
Subject: [PATCH] check: don't use multi-line coloring for the report
Date: Fri, 17 Jun 2011 21:59:52 +0200

less -R can't handle multi-line coloring as it is done for the check reports
of the serial and parallel testsuite, because of performance reasons. Thus,
color each line of the check report by its own.
---
 ChangeLog       |    9 +++++++++
 THANKS          |    1 +
 lib/am/check.am |   40 +++++++++++++++++++++-------------------
 3 files changed, 31 insertions(+), 19 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index e468ef3..492afe5 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2011-06-17  Bert Wesarg <address@hidden>
+
+       check: don't use multi-line coloring for the report
+       * lib/am/check.am (am__text_box): Accept colors for lines.
+       [%?PARALLEL_TESTS%] $(TEST_SUITE_LOG): Let am__text_box handle the line
+       coloring. [!%?PARALLEL_TESTS%] $(check-TESTS): Color each report line
+       by its own.
+       * THANKS: Update.
+
 2011-06-13  Stefano Lattarini  <address@hidden>
 
        tests: optimize tests on primary/prefix mismatch for speed
diff --git a/THANKS b/THANKS
index c3cc55c..4f8950a 100644
--- a/THANKS
+++ b/THANKS
@@ -37,6 +37,7 @@ Benoit Sigoure                address@hidden
 Bernard Giroud         address@hidden
 Bernard Urban          address@hidden
 Bernd Jendrissek       address@hidden
+Bert Wesarg            address@hidden
 Bill Currie            address@hidden
 Bill Davidson          address@hidden
 Bill Fenner            address@hidden
diff --git a/lib/am/check.am b/lib/am/check.am
index 97ecb68..1e9348c 100644
--- a/lib/am/check.am
+++ b/lib/am/check.am
@@ -75,15 +75,17 @@ am__rst_title   = sed 's/.*/   &   
/;h;s/./=/g;p;x;p;g;p;s/.*//'
 am__rst_section = sed 'p;s/./=/g;p;g'
 
 # Put stdin (possibly several lines separated by ".  ") in a box.
-am__text_box = $(AWK) '{                               \
-  n = split($$0, lines, "\\.  "); max = 0;             \
-  for (i = 1; i <= n; ++i)                             \
-    if (max < length(lines[i]))                                \
-      max = length(lines[i]);                          \
-  for (i = 0; i < max; ++i) line = line "=";           \
-  print line;                                          \
-  for (i = 1; i <= n; ++i) if (lines[i]) print lines[i];\
-  print line;                                          \
+# Prefix each line by col and terminate each with std, for coloring.
+am__text_box = $(AWK) '{                       \
+  n = split($$0, lines, "\\.  "); max = 0;     \
+  for (i = 1; i <= n; ++i)                     \
+    if (max < length(lines[i]))                        \
+      max = length(lines[i]);                  \
+  for (i = 0; i < max; ++i) line = line "=";   \
+  print col line std;                          \
+  for (i = 1; i <= n; ++i)                     \
+    if (lines[i]) print col lines[i] std;      \
+  print col line std;                          \
 }'
 
 # Solaris 10 'make', and several other traditional 'make' implementations,
@@ -216,12 +218,11 @@ $(TEST_SUITE_LOG): $(TEST_LOGS)
        test x"$$VERBOSE" = x || $$exit || cat $(TEST_SUITE_LOG);       \
        $(am__tty_colors);                                              \
        if $$exit; then                                                 \
-         echo $(ECHO_N) "$$grn$(ECHO_C)";                              \
+         col="$$grn";                                                  \
         else                                                           \
-         echo $(ECHO_N) "$$red$(ECHO_C)";                              \
+         col="$$red";                                                  \
        fi;                                                             \
-       echo "$$msg" | $(am__text_box);                                 \
-       echo $(ECHO_N) "$$std$(ECHO_C)";                                \
+       echo "$$msg" | $(am__text_box) "col=$$col" "std=$$std";         \
        $$exit
 
 RECHECK_LOGS = $(TEST_LOGS)
@@ -401,14 +402,15 @@ check-TESTS: $(TESTS)
          fi; \
          dashes=`echo "$$dashes" | sed s/./=/g`; \
          if test "$$failed" -eq 0; then \
-           echo "$$grn$$dashes"; \
+           col="$$grn"; \
          else \
-           echo "$$red$$dashes"; \
+           col="$$red"; \
          fi; \
-         echo "$$banner"; \
-         test -z "$$skipped" || echo "$$skipped"; \
-         test -z "$$report" || echo "$$report"; \
-         echo "$$dashes$$std"; \
+         echo "$${col}$$dashes$${std}"; \
+         echo "$${col}$$banner$${std}"; \
+         test -z "$$skipped" || echo "$${col}$$skipped$${std}"; \
+         test -z "$$report" || echo "$${col}$$report$${std}"; \
+         echo "$${col}$$dashes$${std}"; \
          test "$$failed" -eq 0; \
        else :; fi
 
-- 
1.7.5.517.g10515




reply via email to

[Prev in Thread] Current Thread [Next in Thread]