+2009-04-10 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ parallel-tests: `clean recheck' should not rerun all tests.
+ * lib/am/check.am (recheck, recheck-html): Do not rerun all
+ tests if `$(TEST_SUITE_LOG)' does not exist.
+ * tests/parallel-tests2.test: Adjust recheck test.
+ * tests/parallel-tests9.test: Adjust recheck-html test.
+ * NEWS: Update.
+ Suggestion by Akim Demaille.
+
2009-04-08 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
Eric Blake <ebb9@byu.net>
to the rules.
+ - The new `parallel-tests' targets `recheck' and `recheck-html' will not run
+ any tests that have not run yet.
+
Bugs fixed in 1.10c:
* Long standing bugs:
recheck recheck-html:
@target=`echo $@ | sed 's,^re,,'`; \
list='$(TEST_LOGS)'; \
- if test -f $(TEST_SUITE_LOG); then \
- list=`for f in $$list; do \
- test -f $$f || continue; \
- if read line < $$f; then \
- case $$line in FAIL*|XPASS*) echo $$f;; esac; \
- else echo $$f; fi; \
- done | tr '\012\015' ' '`; \
- $(MAKE) $(AM_MAKEFLAGS) $$target TEST_LOGS="$$list"; \
- else \
- $(MAKE) $(AM_MAKEFLAGS) $$target; \
- fi
+ list=`for f in $$list; do \
+ test -f $$f || continue; \
+ if read line < $$f; then \
+ case $$line in FAIL*|XPASS*) echo $$f;; esac; \
+ else echo $$f; fi; \
+ done | tr '\012\015' ' '`; \
+ $(MAKE) $(AM_MAKEFLAGS) $$target TEST_LOGS="$$list"
.pl.log:
@p='$<'; $(am__check_pre) $(PL_LOG_COMPILE) "$$tst" $(am__check_post)
## Rechecking failures. ##
## -------------------- ##
-## Rerun all FAILed or XPASSed tests (as well as all whose logs are out
-## of date or do not exist).
+## Rerun all FAILed or XPASSed tests.
recheck recheck-html:
@target=`echo $@ | sed 's,^re,,'`; \
list='$(TEST_LOGS)'; \
-## If the test suite has not been run yet, then run it in full
- if test -f $(TEST_SUITE_LOG); then \
- list=`for f in $$list; do \
- test -f $$f || continue; \
- if read line < $$f; then \
- case $$line in FAIL*|XPASS*) echo $$f;; esac; \
- else echo $$f; fi; \
- done | tr '\012\015' ' '`; \
- $(MAKE) $(AM_MAKEFLAGS) $$target TEST_LOGS="$$list"; \
- else \
- $(MAKE) $(AM_MAKEFLAGS) $$target; \
- fi
+ list=`for f in $$list; do \
+ test -f $$f || continue; \
+ if read line < $$f; then \
+ case $$line in FAIL*|XPASS*) echo $$f;; esac; \
+ else echo $$f; fi; \
+ done | tr '\012\015' ' '`; \
+ $(MAKE) $(AM_MAKEFLAGS) $$target TEST_LOGS="$$list"
.PHONY: recheck recheck-html
.MAKE: recheck recheck-html
recheck recheck-html:
@target=`echo $@ | sed 's,^re,,'`; \
list='$(TEST_LOGS)'; \
- if test -f $(TEST_SUITE_LOG); then \
- list=`for f in $$list; do \
- test -f $$f || continue; \
- if read line < $$f; then \
- case $$line in FAIL*|XPASS*) echo $$f;; esac; \
- else echo $$f; fi; \
- done | tr '\012\015' ' '`; \
- $(MAKE) $(AM_MAKEFLAGS) $$target TEST_LOGS="$$list"; \
- else \
- $(MAKE) $(AM_MAKEFLAGS) $$target; \
- fi
+ list=`for f in $$list; do \
+ test -f $$f || continue; \
+ if read line < $$f; then \
+ case $$line in FAIL*|XPASS*) echo $$f;; esac; \
+ else echo $$f; fi; \
+ done | tr '\012\015' ' '`; \
+ $(MAKE) $(AM_MAKEFLAGS) $$target TEST_LOGS="$$list"
.test.log:
@p='$<'; $(am__check_pre) $(TEST_LOG_COMPILE) "$$tst" $(am__check_post)
test -f mylog.html
# check-html and recheck-html should cause check_SCRIPTS to be created,
-# and recheck-html should rerun all tests if check has not been run.
+# and recheck-html should rerun no tests if check has not been run.
$MAKE clean
env TESTS=foo.test $MAKE -e check-html
test -f bla
$MAKE clean
env TESTS=foo.test $MAKE -e recheck-html
test -f bla
-test -f foo.log
+test ! -f foo.log
test -f mylog.html
:
grep foo.test stdout || Exit 1
# Ensure that recheck builds check_SCRIPTS, and that
-# recheck reruns all tests if check has not been run.
+# recheck reruns nothing if check has not been run.
$MAKE clean
-$MAKE recheck && Exit 1
+$MAKE recheck
test -f bla
-test -f foo.log
-test -f bar.log
-test -f baz.log
+test ! -f foo.log
+test ! -f bar.log
+test ! -f baz.log
test -f mylog.log
: