We can do so with minimal churn, now that the early setup of $PATH in both 'runtest' and AM_TESTS_ENVIRONMENT allow the '.' built-in to find to-be-sourced shell scripts in 't/ax' automatically, both in in-tree and VPATH builds.
With this change, we take another step forward a more rational and "segregated" organization of our testsuite framework. * defs-static.in: Rename ... * t/ax/test-defs.in: ... like this, and adjust. * Makefile.am, syntax-checks.mk, t/README, gen-testsuite-part, t/tests-init.sh, t/ax/tap-setup.sh, t/tap-summary.sh, .gitignore, t/testsuite-summary-color.sh, t/testsuite-summary-count.sh, t/self-check-tap.sh, defs: Adjust. Signed-off-by: Stefano Lattarini <stefano.lattar...@gmail.com> --- .gitignore | 2 +- Makefile.am | 12 ++++++------ defs | 2 +- gen-testsuite-part | 2 +- syntax-checks.mk | 5 ++++- t/README | 2 +- t/ax/tap-setup.sh | 2 +- defs-static.in => t/ax/test-defs.in | 6 ++++-- t/ax/test-init.sh | 8 ++++---- t/self-check-tap.sh | 26 +++++++++++++------------- t/tap-summary-color.sh | 2 +- t/tap-summary.sh | 2 +- t/testsuite-summary-color.sh | 2 +- t/testsuite-summary-count.sh | 2 +- 14 files changed, 40 insertions(+), 35 deletions(-) rename defs-static.in => t/ax/test-defs.in (97%) diff --git a/.gitignore b/.gitignore index b7eee5c..c3e83f9 100644 --- a/.gitignore +++ b/.gitignore @@ -36,7 +36,7 @@ /test-suite.log /t/wrap/aclocal-1.* /t/wrap/automake-1.* -/defs-static +/t/ax/test-defs.sh /t/testsuite-part.am /t/*-w.tap /t/*-w.sh diff --git a/Makefile.am b/Makefile.am index 1636623..6aa94fa 100644 --- a/Makefile.am +++ b/Makefile.am @@ -408,14 +408,14 @@ t/distcheck-missing-m4.log: t/ax/distcheck-hook-m4.am t/distcheck-outdated-m4.log: t/ax/distcheck-hook-m4.am EXTRA_DIST += t/ax/distcheck-hook-m4.am -defs-static: defs-static.in Makefile +t/ax/test-defs.sh: t/ax/test-defs.in Makefile $(AM_V_at)rm -f $@ $@-t - $(AM_V_GEN)in=defs-static.in\ - && $(do_subst) <$(srcdir)/defs-static.in >$@-t + $(AM_V_GEN)in=t/ax/test-defs.in \ + && $(do_subst) <$(srcdir)/$$in >$@-t $(generated_file_finalize) -EXTRA_DIST += defs-static.in -CLEANFILES += defs-static -nodist_noinst_DATA = defs-static +EXTRA_DIST += t/ax/test-defs.in +CLEANFILES += t/ax/test-defs.sh +nodist_noinst_DATA = t/ax/test-defs.sh runtest: runtest.in Makefile $(AM_V_at)rm -f $@ $@-t diff --git a/defs b/defs index df85746..f69b780 100644 --- a/defs +++ b/defs @@ -16,7 +16,7 @@ # along with this program. If not, see <http://www.gnu.org/licenses/>. # Source the shell static setup and variable definitions. -. ./defs-static; test $? -eq 0 || exit 99 +. test-defs.sh; test $? -eq 0 || exit 99 # Source the actual test initialization and setup code, and return # control to the test script that is sourcing us. diff --git a/gen-testsuite-part b/gen-testsuite-part index 2e79057..d646b27 100755 --- a/gen-testsuite-part +++ b/gen-testsuite-part @@ -96,7 +96,7 @@ sub write_wrapper_script ($$$) print $file_handle unindent <<EOF; #! /bin/sh # This file has been automatically generated. DO NOT EDIT BY HAND! - . ./defs-static || exit 1 + . test-defs.sh $shell_setup_code # In the spirit of VPATH, we prefer a test in the build tree # over one in the source tree. diff --git a/syntax-checks.mk b/syntax-checks.mk index 3b20911..bcaf50f 100644 --- a/syntax-checks.mk +++ b/syntax-checks.mk @@ -31,7 +31,10 @@ xtests := $(shell \ done; \ done | sort) -xdefs = $(srcdir)/t/ax/test-init.sh $(srcdir)/defs $(srcdir)/defs-static.in +xdefs = \ + $(srcdir)/t/ax/test-init.sh \ + $(srcdir)/t/ax/test-defs.in \ + $(srcdir)/defs ams := $(shell find $(srcdir) -name '*.dir' -prune -o -name '*.am' -print) diff --git a/t/README b/t/README index 60b4252..06f087f 100644 --- a/t/README +++ b/t/README @@ -234,7 +234,7 @@ Writing test cases example, if you need to copy or grep an automake-provided script, do not assume that they can be found in the '$top_srcdir/lib' directory, but use '$am_scriptdir' instead. The complete list of - such "$am_...dir" variables can be found in the 'defs-static.in' + such "$am_...dir" variables can be found in the 't/ax/test-defs.in' file. * When writing input for lex, include the following in the definitions diff --git a/t/ax/tap-setup.sh b/t/ax/tap-setup.sh index 70487c3..952a49d 100644 --- a/t/ax/tap-setup.sh +++ b/t/ax/tap-setup.sh @@ -22,7 +22,7 @@ # Check that we are running from a proper directory: last thing we want # is to overwrite some random user files. -test -f ../../defs-static && test -f ../../defs && test -d ../../t \ +test -f ../../automake && test -f ../../defs && test -d ../../t \ || fatal_ "running from a wrong directory" test ! -f Makefile.am || mv Makefile.am Makefile.am~ \ diff --git a/defs-static.in b/t/ax/test-defs.in similarity index 97% rename from defs-static.in rename to t/ax/test-defs.in index bb7ca49..c5b0a54 100644 --- a/defs-static.in +++ b/t/ax/test-defs.in @@ -160,8 +160,8 @@ AUTOUPDATE=${AM_TESTSUITE_AUTOUPDATE-${AUTOUPDATE-'@am_AUTOUPDATE@'}} # Tests who want complete control over aclocal or automake command-line # options should use $am_original_ACLOCAL or $am_original_AUTOMAKE. The -# "test -z" tests take care not to re-initialize them if defs-static -# is re-sourced, as we want defs-static to remain really idempotent. +# "test -z" tests take care not to re-initialize them if 'test-defs.sh' +# is re-sourced, as we want that file to remain really idempotent. if test -z "$am_original_AUTOMAKE"; then am_original_AUTOMAKE=${AM_TESTSUITE_AUTOMAKE-${AUTOMAKE-"automake-$APIVERSION"}} fi @@ -239,6 +239,8 @@ case $PATH in esac # Make our helper script accessible by default. +# The '$am_testauxdir' should be defined in the environment of +# our testsuite. PATH=$am_testauxdir$PATH_SEPARATOR$PATH export PATH diff --git a/t/ax/test-init.sh b/t/ax/test-init.sh index a1130e3..5376b47 100644 --- a/t/ax/test-init.sh +++ b/t/ax/test-init.sh @@ -28,15 +28,15 @@ set -e ## --------------------- ## # Ensure $am_top_srcdir is set correctly. -test -f "$am_top_srcdir/defs-static.in" || { - echo "$me: $am_top_srcdir/defs-static.in not found," \ +test -f "$am_top_srcdir/automake.in" || { + echo "$me: $am_top_srcdir/automake.in not found," \ "check \$am_top_srcdir" >&2 exit 99 } # Ensure $am_top_builddir is set correctly. -test -f "$am_top_builddir/defs-static" || { - echo "$me: $am_top_builddir/defs-static not found," \ +test -f "$am_top_builddir/automake" || { + echo "$me: $am_top_builddir/automake not found," \ "check \$am_top_builddir" >&2 exit 99 } diff --git a/t/self-check-tap.sh b/t/self-check-tap.sh index d7f788c..8d84621 100755 --- a/t/self-check-tap.sh +++ b/t/self-check-tap.sh @@ -15,31 +15,31 @@ # along with this program. If not, see <http://www.gnu.org/licenses/>. # Sanity check for the automake testsuite. -# Make sure that $am_using_tap gets automatically defined by -# './defs-static', but can be overridden by the individual tests. +# Make sure that '$am_using_tap' gets automatically defined by +# 'test-defs.sh', but can be overridden by the individual tests. -. ./defs-static || exit 1 +. test-defs.sh set -ex $AM_TEST_RUNNER_SHELL -c \ - '. ./defs-static && test $am_using_tap = yes' foo.tap + ". test-defs.sh && test \$am_using_tap = yes" foo.tap for name in foo.test tap tap.test foo-tap; do $AM_TEST_RUNNER_SHELL -c \ - '. ./defs-static && test $am_using_tap = no' $name + ". test-defs.sh && test \$am_using_tap = no" $name done -$AM_TEST_RUNNER_SHELL -c ' +$AM_TEST_RUNNER_SHELL -c " am_using_tap=no - . ./defs-static - test $am_using_tap = no -' foo.tap + . test-defs.sh + test \$am_using_tap = no +" foo.tap -$AM_TEST_RUNNER_SHELL -c ' +$AM_TEST_RUNNER_SHELL -c " am_using_tap=yes - . ./defs-static - test $am_using_tap = yes -' foo.test + . test-defs.sh + test \$am_using_tap = yes +" foo.test : diff --git a/t/tap-summary-color.sh b/t/tap-summary-color.sh index a28512b..8f533b4 100755 --- a/t/tap-summary-color.sh +++ b/t/tap-summary-color.sh @@ -17,7 +17,7 @@ # TAP support: # - colorized testsuite summary -. ./defs-static +. test-defs.sh use_colors=yes . "$am_testauxdir"/tap-summary-aux.sh diff --git a/t/tap-summary.sh b/t/tap-summary.sh index deee099..846239c 100755 --- a/t/tap-summary.sh +++ b/t/tap-summary.sh @@ -17,7 +17,7 @@ # TAP support: # - colorized testsuite summary -. ./defs-static +. test-defs.sh use_colors=no . "$am_testauxdir"/tap-summary-aux.sh diff --git a/t/testsuite-summary-color.sh b/t/testsuite-summary-color.sh index c73ca45..e1a7471 100755 --- a/t/testsuite-summary-color.sh +++ b/t/testsuite-summary-color.sh @@ -16,7 +16,7 @@ # Check coloring of the testsuite summary. -. ./defs-static || exit 1 +. test-defs.sh use_colors=yes use_vpath=no diff --git a/t/testsuite-summary-count.sh b/t/testsuite-summary-count.sh index 265eebf..a6e5462 100755 --- a/t/testsuite-summary-count.sh +++ b/t/testsuite-summary-count.sh @@ -16,7 +16,7 @@ # Check test counts in the testsuite summary. -. ./defs-static || exit 1 +. test-defs.sh use_colors=no use_vpath=no -- 1.7.12.rc0