automake-patches
[Top][All Lists]
Advanced

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

Re: [PATCH] parallel-tests: new recognized test result 'ERROR'


From: Stefano Lattarini
Subject: Re: [PATCH] parallel-tests: new recognized test result 'ERROR'
Date: Fri, 1 Jul 2011 18:40:38 +0200
User-agent: KMail/1.13.3 (Linux/2.6.30-2-686; KDE/4.4.4; i686; ; )

On Friday 01 July 2011, Stefano Lattarini wrote:
> While working on the next patch (which introduces a more rational testsuite
> summary report), I have made the `color*.test' tests even stricter (see
> attachements); and I think that it would be useful to have these stricter
> versions in this earlier change already.  I have thus amended the present
> patch accordingly.
> 
> Regards,
>   Stefano
> 
And then I've also squashed-in the attached diff, which fixes a minor bug
and enforces stricter checks with make implementations that aren't prone
to false positives.

I really hope this is the last tweak, really.

Thanks, and sorry for the noise.
   Stefano
diff --git a/tests/color.test b/tests/color.test
index 4ef85a4..7cbb080 100755
--- a/tests/color.test
+++ b/tests/color.test
@@ -98,16 +98,30 @@ test_color ()
 
 test_no_color ()
 {
-  {
-    # Not a useless use of cat; see above comments about grep.
-    cat stdout | grep "PASS.*:"
-    cat stdout | grep "FAIL:.*"
-    cat stdout | grep "SKIP.*:"
-    cat stdout | grep "XFAIL:.*"
-    cat stdout | grep "XPASS.*:"
-    cat stdout | grep "ERROR.*:"
-  } | grep "$esc" && Exit 1
-  :
+  # With make implementations that, like Solaris make, in case of errors
+  # print the whole failing recipe on standard output, we should content
+  # ourselves with a laxer check, to avoid false positives.
+  # Keep this in sync with lib/am/check.am:$(am__color_tests).
+  if $FGREP '= Xalways || test -t 1 ' stdout; then
+    # Extra verbose make, resort to laxer checks.
+    {
+      # Not a useless use of cat; see above comments about grep.
+      cat stdout | grep "PASS.*:"
+      cat stdout | grep "FAIL.*:"
+      cat stdout | grep "SKIP.*:"
+      cat stdout | grep "XFAIL.*:"
+      cat stdout | grep "XPASS.*:"
+      cat stdout | grep "ERROR.*:"
+      # To check that the testsuite summary is not unduly colorized.
+      cat stdout | grep '===='
+      cat stdout | grep 'test.*expected'
+      cat stdout | grep 'test.*not run'
+    } | grep "$esc" && Exit 1
+    : For shells with broken 'set -e'
+  else
+    cat stdout | grep "$esc" && Exit 1
+    : For shells with broken 'set -e'
+  fi
 }
 
 for vpath in false :; do
diff --git a/tests/color2.test b/tests/color2.test
index 74c993d..c283c53 100755
--- a/tests/color2.test
+++ b/tests/color2.test
@@ -111,16 +111,30 @@ test_color ()
 
 test_no_color ()
 {
-  {
-    # Not a useless use of cat; see above comments about grep.
-    cat stdout | grep "PASS.*:"
-    cat stdout | grep "FAIL:.*"
-    cat stdout | grep "SKIP.*:"
-    cat stdout | grep "XFAIL:.*"
-    cat stdout | grep "XPASS.*:"
-    cat stdout | grep "ERROR.*:"
-  } | grep "$esc" && Exit 1
-  :
+  # With make implementations that, like Solaris make, in case of errors
+  # print the whole failing recipe on standard output, we should content
+  # ourselves with a laxer check, to avoid false positives.
+  # Keep this in sync with lib/am/check.am:$(am__color_tests).
+  if $FGREP '= Xalways || test -t 1 ' stdout; then
+    # Extra verbose make, resort to laxer checks.
+    {
+      # Not a useless use of cat; see above comments about grep.
+      cat stdout | grep "PASS.*:"
+      cat stdout | grep "FAIL.*:"
+      cat stdout | grep "SKIP.*:"
+      cat stdout | grep "XFAIL.*:"
+      cat stdout | grep "XPASS.*:"
+      cat stdout | grep "ERROR.*:"
+      # To check that the testsuite summary is not unduly colorized.
+      cat stdout | grep '===='
+      cat stdout | grep 'test.*expected'
+      cat stdout | grep 'test.*not run'
+    } | grep "$esc" && Exit 1
+    : For shells with broken 'set -e'
+  else
+    cat stdout | grep "$esc" && Exit 1
+    : For shells with broken 'set -e'
+  fi
 }
 
 cat >expect-make <<'END'

reply via email to

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