changeset 11646:fc7e7bde323e

tests: maint.mk: make sc_require_test_exit_idiom more generic * top/maint.mk (Exit_witness_file): New overridable variable. (sc_require_test_exit_idiom): Don't hard-code tests/test-lib.sh. Relax test for /^Exit \$fail$$/ to just /^Exit ./.
author Jim Meyering <meyering@redhat.com>
date Fri, 19 Jun 2009 14:25:37 +0200
parents ce9c1cd30e58
children 2735f345e34c
files ChangeLog top/maint.mk
diffstat 2 files changed, 14 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2009-06-20  Jim Meyering  <meyering@redhat.com>
+
+	tests: make sc_require_test_exit_idiom more generic
+	* top/maint.mk (Exit_witness_file): New overridable variable.
+	(sc_require_test_exit_idiom): Don't hard-code tests/test-lib.sh.
+	Relax test for /^Exit \$fail$$/ to just /^Exit ./.
+
 2009-06-19  Jim Meyering  <meyering@redhat.com>
 
 	hash: reverse order of src/dst parameters in an internal interface
--- a/top/maint.mk
+++ b/top/maint.mk
@@ -363,16 +363,19 @@
 # Require that the final line of each test-lib.sh-using test be this one:
 # Exit $fail
 # Note: this test requires GNU grep's --label= option.
+Exit_witness_file ?= tests/test-lib.sh
+Exit_base := $(notdir $(Exit_witness_file))
 sc_require_test_exit_idiom:
-	@if test -f $(srcdir)/tests/test-lib.sh; then			\
+	@if test -f $(srcdir)/$(Exit_witness_file); then		\
 	  die=0;							\
-	  for i in $$(grep -l -F /../test-lib.sh $$($(VC_LIST) tests)); do \
-	    tail -n1 $$i | grep '^Exit \$$fail$$' > /dev/null		\
+	  for i in $$(grep -l -F 'srcdir/$(Exit_base)'			\
+		$$($(VC_LIST) tests)); do				\
+	    tail -n1 $$i | grep '^Exit .' > /dev/null			\
 	      && : || { die=1; echo $$i; }				\
 	  done;								\
 	  test $$die = 1 &&						\
 	    { echo 1>&2 '$(ME): the final line in each of the above is not:'; \
-	      echo 1>&2 'Exit $$fail';					\
+	      echo 1>&2 'Exit something';				\
 	      exit 1; } || :;						\
 	fi