]> git.ipfire.org Git - thirdparty/automake.git/commitdiff
check: don't use multi-line coloring for the report
authorBert Wesarg <bert.wesarg@googlemail.com>
Fri, 17 Jun 2011 19:59:52 +0000 (21:59 +0200)
committerStefano Lattarini <stefano.lattarini@gmail.com>
Mon, 20 Jun 2011 08:25:03 +0000 (10:25 +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.

* lib/am/check.am (am__text_box): Accept colors for lines, and
color each line by its own.
[%?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.

ChangeLog
THANKS
lib/Automake/tests/Makefile.in
lib/am/check.am
tests/Makefile.in

index c5652dadc254cdf7cf8f029869722ab1628ed338..d79a8483264f14f98b137a9dd9bacd1dc25fd518 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,18 @@
+2011-06-20  Bert Wesarg <bert.wesarg@googlemail.com>  (tiny change)
+
+       check: don't use multi-line coloring for the report
+       "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.
+       * lib/am/check.am (am__text_box): Accept colors for lines, and
+       color each line by its own.
+       [%?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-18  Stefano Lattarini  <stefano.lattarini@gmail.com>
 
        docs: AM_DISTCHECK_CONFIGURE_FLAGS is for corner cases
diff --git a/THANKS b/THANKS
index 16a1ef8062acd57f341983969bcf2f893040abfc..3d71419e4717f848e563bc549e0c0162fc60d2e7 100644 (file)
--- a/THANKS
+++ b/THANKS
@@ -37,6 +37,7 @@ Benoit Sigoure                tsuna@lrde.epita.fr
 Bernard Giroud         bernard.giroud@creditlyonnais.ch
 Bernard Urban          Bernard.Urban@meteo.fr
 Bernd Jendrissek       berndfoobar@users.sourceforge.net
+Bert Wesarg            bert.wesarg@googlemail.com
 Bill Currie            bcurrie@tssc.co.nz
 Bill Davidson          bill@kayhay.com
 Bill Fenner            fenner@parc.xerox.com
index 7ed17d61e329b42d722d8aab5696d45aa990bb07..2f553ede03e15c74dd4ec6418685a23b520b457a 100644 (file)
@@ -105,15 +105,21 @@ am__base_list = \
 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.
+# Multi line coloring is problematic with "less -R", so we really need
+# to color each line individually.
+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,
 # pass "-e" to $(SHELL), and POSIX 2008 even requires this.  Work around it
@@ -394,12 +400,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
 
 # Run all the tests.
index 4d10ce901e45eaeb05f8a2c1fb21ba20e8e35a88..0b54312a6fdcee669e83b60b87fd03b716c6465e 100644 (file)
@@ -75,15 +75,21 @@ 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.
+# Multi line coloring is problematic with "less -R", so we really need
+# to color each line individually.
+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,
@@ -213,12 +219,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)
@@ -398,14 +403,17 @@ 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"; \
+## Multi line coloring is problematic with "less -R", so we really need
+## to color each line individually.
+         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
 
index 5ca3f6a16243a827799efc737a801fa7bbc44a76..ba57aa2a6aaba74d543d7346726897987bcbcc0b 100644 (file)
@@ -108,15 +108,21 @@ am__base_list = \
 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.
+# Multi line coloring is problematic with "less -R", so we really need
+# to color each line individually.
+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,
 # pass "-e" to $(SHELL), and POSIX 2008 even requires this.  Work around it
@@ -1252,12 +1258,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
 
 # Run all the tests.