automake
[Top][All Lists]
Advanced

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

Re: summarize misbehaving tests


From: William Pursell
Subject: Re: summarize misbehaving tests
Date: Fri, 30 Jan 2009 07:34:02 +0000
User-agent: Thunderbird 2.0.0.19 (Macintosh/20081209)

Ralf Wildenhues wrote:
> Hi William,
> 
> * William Pursell wrote on Fri, Jan 30, 2009 at 08:02:58AM CET:
>> I've written a simple patch that lists the tests that
>> misbehaved (failed or unexpectedly passed), one
>> per line, in the banner.
> 
>> Do you think it would be
>> appropriate to make that functionality a run time
>> environment option, an automake option (like color-tests),
>> or just leave it in for all invocations of make check?
>> (or do you think it's a bad idea?)
> 
> Well, I dearly hope to get to the parallel-tests patches before too
> long, and finishe their issues and push them.  They will (at least when
> the corresponding automake option is used then) make for somewhat
> different (and better IMHO) output (see discussion on automake-patches a
> while ago).  But that doesn't mean you shouldn't show your patch, having
> more choices can only help.
> 

Well, I haven't made any tests, but here's what I'm using so far:
(Not moving this to automake-patches because this isn't really
suitable for inclusion, (no tests))

diff --git a/lib/am/check.am b/lib/am/check.am
index ca400fe..167aa34 100644
--- a/lib/am/check.am
+++ b/lib/am/check.am
@@ -58,6 +58,7 @@ check-TESTS: $(TESTS)
              case " $(XFAIL_TESTS) " in \
              *[\ \     ]$$tst[\ \      ]*) \
                xpass=`expr $$xpass + 1`; \
+               pass_list="$$pass_list $$tst" \
                failed=`expr $$failed + 1`; \
                col=$$red; res=XPASS; \
              ;; \
@@ -74,6 +75,7 @@ check-TESTS: $(TESTS)
                col=$$lgn; res=XFAIL; \
              ;; \
              *) \
+               fail_list="$$fail_list $$tst" \
                failed=`expr $$failed + 1`; \
                col=$$red; res=FAIL; \
              ;; \
@@ -102,10 +104,10 @@ check-TESTS: $(TESTS)
            fi; \
          else \
            if test "$$xpass" -eq 0; then \
-             banner="$$failed of $$all $$tests failed"; \
+             banner="$$failed of $$all $$tests failed:"; \
            else \
              if test "$$xpass" -eq 1; then passes=pass; else passes=passes; 
fi; \
-             banner="$$failed of $$all $$tests did not behave as expected 
($$xpass unexpected $$passes)"; \
+             banner="$$failed of $$all $$tests did not behave as expected 
($$xpass unexpected $$passes):"; \
            fi; \
          fi; \
 ## DASHES should contain the largest line of the banner.
@@ -126,6 +128,10 @@ check-TESTS: $(TESTS)
            test `echo "$$report" | wc -c` -le `echo "$$banner" | wc -c` || \
              dashes="$$report"; \
          fi; \
+         for tst in "$$pass_list $$fail_list"; do \
+           test `echo "    FAIL: $$tst" | wc -c` -le `echo "$$dashes" | wc -c` 
|| \
+             dashes="    FAIL: $$tst"; \
+         done; \
          dashes=`echo "$$dashes" | sed s/./=/g`; \
          if test "$$failed" -eq 0; then \
            echo "$$grn$$dashes"; \
@@ -133,6 +139,12 @@ check-TESTS: $(TESTS)
            echo "$$red$$dashes"; \
          fi; \
          echo "$$banner"; \
+         for tst in "$$fail_list"; do \
+           test -z "$$tst" || echo "    FAIL: $$tst"; \
+         done; \
+         for tst in "$$pass_list"; do \
+           test -z "$$tst" || echo "    PASS: $$tst"; \
+         done; \
          test -z "$$skipped" || echo "$$skipped"; \
          test -z "$$report" || echo "$$report"; \
          echo "$$dashes$$std"; \



-- 
William Pursell




reply via email to

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