I will push this in a couple of days; reviews are welcome. * tests/defs-static.in ($am_running_installcheck): New variable. Initialize it to a default of "no", and sanity-check its value. ($am_datadir, $am_docdir, $am_m4dir, $am_bindir, $am_scriptdir, $am_pkgvdir): New variables, initialized from AC_SUBST'ed values which are adaptively chosen depending on whether the testsuite is running in "simple" mode or in "installcheck" mode. ($MISSING): Remove, it's not really required by the testsuite. ($PATH): Update using `$am_bindir', not `$testbuilddir'. * Makefile.am (installcheck-local): New target. * lib/Automake/tests/Makefile.am (installcheck-local): New target. (AM_TESTS_ENVIRONMENT, AM_PL_LOG_FLAGS): Adaptively choose the `-I' flags for perl based on whether the tests are being run by "make check" or "make installcheck". * tests/Makefile.am (installcheck-local): New target. (defs-static): Generate it at make time, not at configure time; done with the help of ... (do_subst): ... this new macro. (EXTRA_DIST): Explicitly distribute `defs-static.in'. (CLEANFILES): Remove `defs-static'. * configure.ac (AC_CONFIG_FILES): Remove `tests/defs-static'. (AC_SUBST): Substitute also `m4datadir', `scriptdir' and `amdir' to proper values. * m4/Makefile.am (m4datadir): Don't explicitly define anymore. * lib/Makefile.am (scriptdir): Likewise. * lib/am/Makefile.am (amdir): Likewise. * tests/amhello-binpkg.test: Use new `$am_...dir' variables, instead of hard-coding values with $testsrcdir and $testbuilddir, to test more faithfully under "make installcheck". * tests/amhello-cflags.test: Likewise. * tests/amhello-cross-compile.test: Likewise. * tests/ansi2knr-no-more.test: Likewise. * tests/autodist-stamp-vti.test: Likewise. * tests/auxdir.test: Likewise. * tests/check2.test: Likewise. * tests/copy.test: Likewise. * tests/multlib.test: Likewise. * tests/obsolete.test: Likewise. * tests/parallel-tests-interrupt.test: Likewise. * tests/repeated-options.test: Likewise. * tests/suffix5.test: Likewise. * tests/tap-doc2.test: Likewise. * tests/txinfo22.test: Likewise. * tests/vtexi3.test: Likewise. * tests/defs: Likewise. Also, print the values of `$using_tap' and `$am_running_installcheck', to simplify debugging, and do some related code movings and tweakings. * tests/aclocal3.test: Update to avoid possible spurious failures when running under "make installcheck". * tests/warnings-unknown.test: Likewise. * tests/location.test: Likewise, and improve debugging input since we are at it. * tests/aclocal.test: Skip a check that does not (yet) work under "make installcheck". * tests/acloca10.test: Skip when doing a "make installcheck". * tests/acloca18.test: Likewise. * tests/dirlist.test: Likewise. * tests/dirlist2.test: Likewise. * tests/README: Update. --- ChangeLog | 62 ++++++++++++++++++++++++++++++ Makefile.am | 4 ++ Makefile.in | 18 ++++++-- configure | 13 +++++- configure.ac | 5 +- doc/Makefile.in | 3 + lib/Automake/Makefile.in | 3 + lib/Automake/tests/Makefile.am | 15 ++++++- lib/Automake/tests/Makefile.in | 29 ++++++++++---- lib/Makefile.am | 1 - lib/Makefile.in | 4 +- lib/am/Makefile.am | 2 - lib/am/Makefile.in | 4 +- m4/Makefile.am | 4 +- m4/Makefile.in | 6 ++- tests/Makefile.am | 47 +++++++++++++++++++++++ tests/Makefile.in | 72 +++++++++++++++++++++++++++++------ tests/README | 7 +++ tests/acloca10.test | 5 ++ tests/acloca18.test | 5 ++ tests/aclocal.test | 5 ++- tests/aclocal3.test | 8 +++- tests/amhello-binpkg.test | 2 +- tests/amhello-cflags.test | 2 +- tests/amhello-cross-compile.test | 4 +- tests/ansi2knr-no-more.test | 2 +- tests/autodist-stamp-vti.test | 2 +- tests/auxdir.test | 2 +- tests/check2.test | 2 +- tests/copy.test | 4 +- tests/defs | 39 +++++++++++-------- tests/defs-static.in | 36 +++++++++++++++-- tests/depmod.tap | 2 +- tests/dirlist.test | 5 ++ tests/dirlist2.test | 5 ++ tests/location.test | 27 +++++++++++-- tests/multlib.test | 3 +- tests/obsolete.test | 2 +- tests/parallel-tests-interrupt.test | 2 +- tests/repeated-options.test | 2 +- tests/suffix5.test | 2 +- tests/tap-doc2.test | 2 +- tests/txinfo22.test | 2 +- tests/vtexi3.test | 2 +- tests/warnings-unknown.test | 6 ++- 45 files changed, 386 insertions(+), 93 deletions(-)
diff --git a/ChangeLog b/ChangeLog index 58ec84f..7dd9cca 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,65 @@ +2011-09-05 Stefano Lattarini <stefano.lattar...@gmail.com> + + installcheck: support it in our own testsuite + * tests/defs-static.in ($am_running_installcheck): New variable. + Initialize it to a default of "no", and sanity-check its value. + ($am_datadir, $am_docdir, $am_m4dir, $am_bindir, $am_scriptdir, + $am_pkgvdir): New variables, initialized from AC_SUBST'ed values + which are adaptively chosen depending on whether the testsuite + is running in "simple" mode or in "installcheck" mode. + ($MISSING): Remove, it's not really required by the testsuite. + ($PATH): Update using `$am_bindir', not `$testbuilddir'. + * Makefile.am (installcheck-local): New target. + * lib/Automake/tests/Makefile.am (installcheck-local): New target. + (AM_TESTS_ENVIRONMENT, AM_PL_LOG_FLAGS): Adaptively choose the + `-I' flags for perl based on whether the tests are being run by + "make check" or "make installcheck". + * tests/Makefile.am (installcheck-local): New target. + (defs-static): Generate it at make time, not at configure time; + done with the help of ... + (do_subst): ... this new macro. + (EXTRA_DIST): Explicitly distribute `defs-static.in'. + (CLEANFILES): Remove `defs-static'. + * configure.ac (AC_CONFIG_FILES): Remove `tests/defs-static'. + (AC_SUBST): Substitute also `m4datadir', `scriptdir' and `amdir' + to proper values. + * m4/Makefile.am (m4datadir): Don't explicitly define anymore. + * lib/Makefile.am (scriptdir): Likewise. + * lib/am/Makefile.am (amdir): Likewise. + * tests/amhello-binpkg.test: Use new `$am_...dir' variables, + instead of hard-coding values with $testsrcdir and $testbuilddir, + to test more faithfully under "make installcheck". + * tests/amhello-cflags.test: Likewise. + * tests/amhello-cross-compile.test: Likewise. + * tests/ansi2knr-no-more.test: Likewise. + * tests/autodist-stamp-vti.test: Likewise. + * tests/auxdir.test: Likewise. + * tests/check2.test: Likewise. + * tests/copy.test: Likewise. + * tests/multlib.test: Likewise. + * tests/obsolete.test: Likewise. + * tests/parallel-tests-interrupt.test: Likewise. + * tests/repeated-options.test: Likewise. + * tests/suffix5.test: Likewise. + * tests/tap-doc2.test: Likewise. + * tests/txinfo22.test: Likewise. + * tests/vtexi3.test: Likewise. + * tests/defs: Likewise. Also, print the values of `$using_tap' + and `$am_running_installcheck', to simplify debugging, and do + some related code movings and tweakings. + * tests/aclocal3.test: Update to avoid possible spurious failures + when running under "make installcheck". + * tests/warnings-unknown.test: Likewise. + * tests/location.test: Likewise, and improve debugging input since + we are at it. + * tests/aclocal.test: Skip a check that does not (yet) work + under "make installcheck". + * tests/acloca10.test: Skip when doing a "make installcheck". + * tests/acloca18.test: Likewise. + * tests/dirlist.test: Likewise. + * tests/dirlist2.test: Likewise. + * tests/README: Update. + 2011-09-02 Stefano Lattarini <stefano.lattar...@gmail.com> tests: simplify wrapper for aclocal diff --git a/Makefile.am b/Makefile.am index 3b1751a..c4c333d 100644 --- a/Makefile.am +++ b/Makefile.am @@ -103,6 +103,10 @@ automake aclocal: Makefile INSTALL: lib/INSTALL $(AM_V_GEN)cp $(srcdir)/lib/INSTALL $@ +# Run the testsuite with the installed aclocal and automake. +installcheck-local: + am_running_installcheck=yes $(MAKE) $(AM_MAKEFLAGS) check + ## recheck: convenience proxy target for the test suites. .PHONY: recheck recheck: diff --git a/Makefile.in b/Makefile.in index d0611e4..a4c0dcd 100644 --- a/Makefile.in +++ b/Makefile.in @@ -212,6 +212,7 @@ am_AUTOUPDATE = @am_AUTOUPDATE@ am__leading_dot = @am__leading_dot@ am__tar = @am__tar@ am__untar = @am__untar@ +amdir = @amdir@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ @@ -237,6 +238,7 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ +m4datadir = @m4datadir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -246,6 +248,7 @@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ +scriptdir = @scriptdir@ sh_errexit_works = @sh_errexit_works@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ @@ -914,7 +917,7 @@ install-ps: install-ps-recursive install-ps-am: -installcheck-am: +installcheck-am: installcheck-local maintainer-clean: maintainer-clean-recursive -rm -f $(am__CONFIG_DISTCLEAN_FILES) @@ -954,10 +957,11 @@ uninstall-am: uninstall-binSCRIPTS install-exec-am install-exec-hook install-html install-html-am \ install-info install-info-am install-man install-pdf \ install-pdf-am install-ps install-ps-am install-strip \ - installcheck installcheck-am installdirs installdirs-am \ - maintainer-clean maintainer-clean-generic mostlyclean \ - mostlyclean-generic pdf pdf-am ps ps-am tags tags-recursive \ - uninstall uninstall-am uninstall-binSCRIPTS uninstall-hook + installcheck installcheck-am installcheck-local installdirs \ + installdirs-am maintainer-clean maintainer-clean-generic \ + mostlyclean mostlyclean-generic pdf pdf-am ps ps-am tags \ + tags-recursive uninstall uninstall-am uninstall-binSCRIPTS \ + uninstall-hook install-exec-hook: @@ -989,6 +993,10 @@ automake aclocal: Makefile INSTALL: lib/INSTALL $(AM_V_GEN)cp $(srcdir)/lib/INSTALL $@ +# Run the testsuite with the installed aclocal and automake. +installcheck-local: + am_running_installcheck=yes $(MAKE) $(AM_MAKEFLAGS) check + .PHONY: recheck recheck: @failcom='exit 1'; \ diff --git a/configure b/configure index 499015d..ae264ed 100755 --- a/configure +++ b/configure @@ -578,6 +578,9 @@ HELP2MAN TEX PERL_THREADS PERL +m4datadir +amdir +scriptdir pkgvdatadir APIVERSION AM_BACKSLASH @@ -2355,9 +2358,14 @@ am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -' APIVERSION=`echo "$VERSION" | sed -e 's/^\([0-9]*\.[0-9]*[a-z]*\).*$/\1/'` -# A versioned directory, defined here for convenience. pkgvdatadir="\${datadir}/$PACKAGE-$APIVERSION" +scriptdir="\${pkgvdatadir}" + +amdir="\${pkgvdatadir}/am" + +m4datadir="\${datadir}/aclocal-$APIVERSION" + # $AUTOMAKE and $ACLOCAL are always run after a `cd $top_srcdir', # hence `.' is really what we want for perllibdir, libdir, and acdir. @@ -2832,7 +2840,7 @@ $as_echo "$as_me: WARNING: \`cd tests && ${MAKE-make} clean-local-check'" >&2;} sh_errexit_works=$am_cv_sh_errexit_works -ac_config_files="$ac_config_files Makefile doc/Makefile lib/Automake/Makefile lib/Automake/tests/Makefile lib/Makefile lib/am/Makefile m4/Makefile tests/Makefile tests/defs-static" +ac_config_files="$ac_config_files Makefile doc/Makefile lib/Automake/Makefile lib/Automake/tests/Makefile lib/Makefile lib/am/Makefile m4/Makefile tests/Makefile" ac_config_links="$ac_config_links tests/defs:tests/defs" @@ -3589,7 +3597,6 @@ do "lib/am/Makefile") CONFIG_FILES="$CONFIG_FILES lib/am/Makefile" ;; "m4/Makefile") CONFIG_FILES="$CONFIG_FILES m4/Makefile" ;; "tests/Makefile") CONFIG_FILES="$CONFIG_FILES tests/Makefile" ;; - "tests/defs-static") CONFIG_FILES="$CONFIG_FILES tests/defs-static" ;; "tests/defs") CONFIG_LINKS="$CONFIG_LINKS tests/defs:tests/defs" ;; "tests/aclocal-${APIVERSION}") CONFIG_FILES="$CONFIG_FILES tests/aclocal-${APIVERSION}:tests/aclocal.in" ;; "tests/automake-${APIVERSION}") CONFIG_FILES="$CONFIG_FILES tests/automake-${APIVERSION}:tests/automake.in" ;; diff --git a/configure.ac b/configure.ac index cf3df4d..700ee63 100644 --- a/configure.ac +++ b/configure.ac @@ -51,8 +51,10 @@ AM_INIT_AUTOMAKE([1.10a dist-bzip2 filename-length-max=99 color-tests APIVERSION=`echo "$VERSION" | sed -e 's/^\([[0-9]]*\.[[0-9]]*[[a-z]]*\).*$/\1/'` AC_SUBST([APIVERSION]) -# A versioned directory, defined here for convenience. AC_SUBST([pkgvdatadir], ["\${datadir}/$PACKAGE-$APIVERSION"]) +AC_SUBST([scriptdir], ["\${pkgvdatadir}"]) +AC_SUBST([amdir], ["\${pkgvdatadir}/am"]) +AC_SUBST([m4datadir], ["\${datadir}/aclocal-$APIVERSION"]) # $AUTOMAKE and $ACLOCAL are always run after a `cd $top_srcdir', # hence `.' is really what we want for perllibdir, libdir, and acdir. @@ -209,7 +211,6 @@ AC_CONFIG_FILES([ lib/am/Makefile m4/Makefile tests/Makefile - tests/defs-static ]) AC_CONFIG_LINKS([tests/defs:tests/defs]) AC_CONFIG_FILES([tests/aclocal-${APIVERSION}:tests/aclocal.in], diff --git a/doc/Makefile.in b/doc/Makefile.in index 1e53970..8fbc44f 100644 --- a/doc/Makefile.in +++ b/doc/Makefile.in @@ -196,6 +196,7 @@ am_AUTOUPDATE = @am_AUTOUPDATE@ am__leading_dot = @am__leading_dot@ am__tar = @am__tar@ am__untar = @am__untar@ +amdir = @amdir@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ @@ -221,6 +222,7 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ +m4datadir = @m4datadir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -230,6 +232,7 @@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ +scriptdir = @scriptdir@ sh_errexit_works = @sh_errexit_works@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ diff --git a/lib/Automake/Makefile.in b/lib/Automake/Makefile.in index 76c82df..3228bdd 100644 --- a/lib/Automake/Makefile.in +++ b/lib/Automake/Makefile.in @@ -195,6 +195,7 @@ am_AUTOUPDATE = @am_AUTOUPDATE@ am__leading_dot = @am__leading_dot@ am__tar = @am__tar@ am__untar = @am__untar@ +amdir = @amdir@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ @@ -220,6 +221,7 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ +m4datadir = @m4datadir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -229,6 +231,7 @@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ +scriptdir = @scriptdir@ sh_errexit_works = @sh_errexit_works@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ diff --git a/lib/Automake/tests/Makefile.am b/lib/Automake/tests/Makefile.am index c6254a3..2c33a76 100644 --- a/lib/Automake/tests/Makefile.am +++ b/lib/Automake/tests/Makefile.am @@ -1,7 +1,7 @@ ## Process this file with automake to create Makefile.in -# Copyright (C) 2002, 2003, 2008, 2009, 2010 Free Software Foundation, -# Inc. +# Copyright (C) 2002, 2003, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -17,7 +17,12 @@ # along with this program. If not, see <http://www.gnu.org/licenses/>. PL_LOG_COMPILER = $(PERL) -AM_PL_LOG_FLAGS = -Mstrict -I ../.. -I $(top_srcdir)/lib -w +AM_TESTS_ENVIRONMENT = \ + case $$am_running_installcheck in \ + yes) am_pl_I_flags='-I $(pkgvdatadir)';; \ + *) am_pl_I_flags='-I ../.. -I $(top_srcdir)/lib';; \ + esac; +AM_PL_LOG_FLAGS = -Mstrict -w $$am_pl_I_flags TEST_EXTENSIONS = .pl TESTS = \ @@ -45,3 +50,7 @@ Version3.pl EXTRA_DIST = $(TESTS) include $(top_srcdir)/CheckListOfTests.am + +# Run the testsuite with the installed aclocal and automake. +installcheck-local: + am_running_installcheck=yes $(MAKE) $(AM_MAKEFLAGS) check diff --git a/lib/Automake/tests/Makefile.in b/lib/Automake/tests/Makefile.in index 89ec5b2..ac8a529 100644 --- a/lib/Automake/tests/Makefile.in +++ b/lib/Automake/tests/Makefile.in @@ -15,8 +15,8 @@ @SET_MAKE@ -# Copyright (C) 2002, 2003, 2008, 2009, 2010 Free Software Foundation, -# Inc. +# Copyright (C) 2002, 2003, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -234,6 +234,7 @@ am_AUTOUPDATE = @am_AUTOUPDATE@ am__leading_dot = @am__leading_dot@ am__tar = @am__tar@ am__untar = @am__untar@ +amdir = @amdir@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ @@ -259,6 +260,7 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ +m4datadir = @m4datadir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -268,6 +270,7 @@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ +scriptdir = @scriptdir@ sh_errexit_works = @sh_errexit_works@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ @@ -277,7 +280,13 @@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ PL_LOG_COMPILER = $(PERL) -AM_PL_LOG_FLAGS = -Mstrict -I ../.. -I $(top_srcdir)/lib -w +AM_TESTS_ENVIRONMENT = \ + case $$am_running_installcheck in \ + yes) am_pl_I_flags='-I $(pkgvdatadir)';; \ + *) am_pl_I_flags='-I ../.. -I $(top_srcdir)/lib';; \ + esac; + +AM_PL_LOG_FLAGS = -Mstrict -w $$am_pl_I_flags TEST_EXTENSIONS = .pl TESTS = \ Condition.pl \ @@ -649,7 +658,7 @@ install-ps: install-ps-am install-ps-am: -installcheck-am: +installcheck-am: installcheck-local maintainer-clean: maintainer-clean-am -rm -f Makefile @@ -679,10 +688,10 @@ uninstall-am: install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ - install-strip installcheck installcheck-am installdirs \ - maintainer-clean maintainer-clean-generic mostlyclean \ - mostlyclean-generic pdf pdf-am ps ps-am recheck recheck-html \ - uninstall uninstall-am + install-strip installcheck installcheck-am installcheck-local \ + installdirs maintainer-clean maintainer-clean-generic \ + mostlyclean mostlyclean-generic pdf pdf-am ps ps-am recheck \ + recheck-html uninstall uninstall-am .PHONY: maintainer-check-list-of-tests @@ -728,6 +737,10 @@ clean-local: clean-maintcheck-testslist-tmp clean-maintcheck-testslist-tmp: rm -f $(am__tmk) $(am__tfs) $(am__tdf) +# Run the testsuite with the installed aclocal and automake. +installcheck-local: + am_running_installcheck=yes $(MAKE) $(AM_MAKEFLAGS) check + # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: diff --git a/lib/Makefile.am b/lib/Makefile.am index 237fe61..b48428d 100644 --- a/lib/Makefile.am +++ b/lib/Makefile.am @@ -25,7 +25,6 @@ dist_pkgvdata_DATA = COPYING INSTALL texinfo.tex config-ml.in ## These must all be executable when installed. However, if we use ## _SCRIPTS, then the program transform will be applied, which is not ## what we want. So we make them executable by hand. -scriptdir = $(pkgvdatadir) dist_script_DATA = \ config.guess \ config.sub \ diff --git a/lib/Makefile.in b/lib/Makefile.in index d99ecfc..db0a42c 100644 --- a/lib/Makefile.in +++ b/lib/Makefile.in @@ -198,6 +198,7 @@ am_AUTOUPDATE = @am_AUTOUPDATE@ am__leading_dot = @am__leading_dot@ am__tar = @am__tar@ am__untar = @am__untar@ +amdir = @amdir@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ @@ -223,6 +224,7 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ +m4datadir = @m4datadir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -232,6 +234,7 @@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ +scriptdir = @scriptdir@ sh_errexit_works = @sh_errexit_works@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ @@ -242,7 +245,6 @@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ SUBDIRS = Automake am dist_pkgvdata_DATA = COPYING INSTALL texinfo.tex config-ml.in -scriptdir = $(pkgvdatadir) dist_script_DATA = \ config.guess \ config.sub \ diff --git a/lib/am/Makefile.am b/lib/am/Makefile.am index 037a4ae..e09a370 100644 --- a/lib/am/Makefile.am +++ b/lib/am/Makefile.am @@ -18,8 +18,6 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see <http://www.gnu.org/licenses/>. -amdir = $(pkgvdatadir)/am - dist_am_DATA = \ check.am \ check2.am \ diff --git a/lib/am/Makefile.in b/lib/am/Makefile.in index 9bbecb9..e08626c 100644 --- a/lib/am/Makefile.in +++ b/lib/am/Makefile.in @@ -155,6 +155,7 @@ am_AUTOUPDATE = @am_AUTOUPDATE@ am__leading_dot = @am__leading_dot@ am__tar = @am__tar@ am__untar = @am__untar@ +amdir = @amdir@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ @@ -180,6 +181,7 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ +m4datadir = @m4datadir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -189,6 +191,7 @@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ +scriptdir = @scriptdir@ sh_errexit_works = @sh_errexit_works@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ @@ -197,7 +200,6 @@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ -amdir = $(pkgvdatadir)/am dist_am_DATA = \ check.am \ check2.am \ diff --git a/m4/Makefile.am b/m4/Makefile.am index 0cf074b..7a849e4 100644 --- a/m4/Makefile.am +++ b/m4/Makefile.am @@ -3,7 +3,7 @@ ## Makefile for Automake m4. # Copyright (C) 1996, 1997, 1998, 1999, 2001, 2002, 2003, 2004, 2006, -# 2008, 2009 Free Software Foundation, Inc. +# 2008, 2009, 2011 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -18,8 +18,6 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see <http://www.gnu.org/licenses/>. -m4datadir = $(datadir)/aclocal-$(APIVERSION) - dist_m4data_DATA = \ $(top_srcdir)/m4/amversion.m4 \ as.m4 \ diff --git a/m4/Makefile.in b/m4/Makefile.in index 2b3b06a..931636b 100644 --- a/m4/Makefile.in +++ b/m4/Makefile.in @@ -16,7 +16,7 @@ @SET_MAKE@ # Copyright (C) 1996, 1997, 1998, 1999, 2001, 2002, 2003, 2004, 2006, -# 2008, 2009 Free Software Foundation, Inc. +# 2008, 2009, 2011 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -155,6 +155,7 @@ am_AUTOUPDATE = @am_AUTOUPDATE@ am__leading_dot = @am__leading_dot@ am__tar = @am__tar@ am__untar = @am__untar@ +amdir = @amdir@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ @@ -180,6 +181,7 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ +m4datadir = @m4datadir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -189,6 +191,7 @@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ +scriptdir = @scriptdir@ sh_errexit_works = @sh_errexit_works@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ @@ -197,7 +200,6 @@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ -m4datadir = $(datadir)/aclocal-$(APIVERSION) dist_m4data_DATA = \ $(top_srcdir)/m4/amversion.m4 \ as.m4 \ diff --git a/tests/Makefile.am b/tests/Makefile.am index d166f25..15f562b 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -138,6 +138,49 @@ checked_test_extensions = .test .tap expected_list_of_tests = $(handwritten_TESTS) include $(top_srcdir)/CheckListOfTests.am +# Keep in sync with AC_SUBST'd stuff in defs-static.in. +do_subst = sed \ + -e 's|@abs_srcdir[@]|$(abs_srcdir)|g' \ + -e 's|@abs_top_srcdir[@]|$(abs_top_srcdir)|g' \ + -e 's|@abs_builddir[@]|$(abs_builddir)|g' \ + -e 's|@prefix[@]|$(prefix)|g' \ + -e 's|@amdir[@]|$(amdir)|g' \ + -e 's|@bindir[@]|$(bindir)|g' \ + -e 's|@datadir[@]|$(datadir)|g' \ + -e 's|@docdir[@]|$(docdir)|g' \ + -e 's|@m4datadir[@]|$(m4datadir)|g' \ + -e 's|@scriptdir[@]|$(scriptdir)|g' \ + -e 's|@pkgvdatadir[@]|$(pkgvdatadir)|g' \ + -e 's|@host_alias[@]|$(host_alias)|g' \ + -e 's|@build_alias[@]|$(build_alias)|g' \ + -e 's|@APIVERSION[@]|$(APIVERSION)|g' \ + -e 's|@PATH_SEPARATOR[@]|$(PATH_SEPARATOR)|g' \ + -e 's|@SHELL[@]|$(SHELL)|g' \ + -e 's|@PERL[@]|$(PERL)|g' \ + -e 's|@EGREP[@]|$(EGREP)|g' \ + -e 's|@FGREP[@]|$(FGREP)|g' \ + -e 's|@TEX[@]|$(TEX)|g' \ + -e 's|@MODIFICATION_DELAY[@]|$(MODIFICATION_DELAY)|g' \ + -e 's|@am_AUTOCONF[@]|$(am_AUTOCONF)|g' \ + -e 's|@am_AUTOM4TE[@]|$(am_AUTOM4TE)|g' \ + -e 's|@am_AUTORECONF[@]|$(am_AUTORECONF)|g' \ + -e 's|@am_AUTOHEADER[@]|$(am_AUTOHEADER)|g' \ + -e 's|@am_AUTOUPDATE[@]|$(am_AUTOUPDATE)|g' \ + -e 's|@sh_errexit_works[@]|$(sh_errexit_works)|g' \ + -e 's|@configure_input[@]|Generated from $@.in. DO NOT EDIT BY HAND!|' + +defs-static: defs-static.in + $(AM_V_at)rm -f $@ $@-t + $(AM_V_GEN)$(do_subst) $(srcdir)/defs-static.in >$@-t + $(AM_V_at) : Sanity check on the substitutions; \ + if LC_ALL=C grep '@[a-zA-Z0-9_][a-zA-Z0-9_]*@' $@-t; then \ + echo "$@ contains unexpanded substitution (see lines above)"; \ + exit 1; \ + fi + $(AM_V_at)chmod a-w $@-t && mv -f $@-t $@ +EXTRA_DIST += defs-static.in +CLEANFILES = defs-static + # Dependencies valid for each test case. $(TEST_LOGS): defs defs-static aclocal-$(APIVERSION) automake-$(APIVERSION) # FIXME: this should be made more granular once we have a cleaner @@ -147,6 +190,10 @@ $(TEST_LOGS): plain-functions.sh tap-functions.sh ## Files containing auxiliary functions used by our test cases. EXTRA_DIST += tap-functions.sh plain-functions.sh +# Run the testsuite with the installed aclocal and automake. +installcheck-local: + am_running_installcheck=yes $(MAKE) $(AM_MAKEFLAGS) check + clean-local: clean-local-check .PHONY: clean-local-check clean-local-check: diff --git a/tests/Makefile.in b/tests/Makefile.in index 21ee6ad..f39bcec 100644 --- a/tests/Makefile.in +++ b/tests/Makefile.in @@ -51,8 +51,8 @@ build_triplet = @build@ host_triplet = @host@ DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ $(srcdir)/aclocal.in $(srcdir)/automake.in $(srcdir)/defs \ - $(srcdir)/defs-static.in $(srcdir)/list-of-tests.mk \ - $(srcdir)/wrap-tests.am $(top_srcdir)/CheckListOfTests.am + $(srcdir)/list-of-tests.mk $(srcdir)/wrap-tests.am \ + $(top_srcdir)/CheckListOfTests.am subdir = tests ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/amversion.m4 \ @@ -66,8 +66,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/amversion.m4 \ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/lib/mkinstalldirs -CONFIG_CLEAN_FILES = defs-static aclocal-${APIVERSION} \ - automake-${APIVERSION} +CONFIG_CLEAN_FILES = aclocal-${APIVERSION} automake-${APIVERSION} CONFIG_CLEAN_VPATH_FILES = defs AM_V_GEN = $(am__v_GEN_$(V)) am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) @@ -253,6 +252,7 @@ am_AUTOUPDATE = @am_AUTOUPDATE@ am__leading_dot = @am__leading_dot@ am__tar = @am__tar@ am__untar = @am__untar@ +amdir = @amdir@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ @@ -278,6 +278,7 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ +m4datadir = @m4datadir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -287,6 +288,7 @@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ +scriptdir = @scriptdir@ sh_errexit_works = @sh_errexit_works@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ @@ -307,7 +309,7 @@ AM_TAP_LOG_DRIVER_FLAGS = --merge --comments --diagnostic-string \ EXTRA_DIST = ChangeLog-old $(handwritten_TESTS) gen-wrap-tests \ wrap-tests.sh trivial-test-driver testsuite-summary-checks.sh \ extract-testsuite-summary tap-setup.sh tap-summary-aux.sh \ - tap-functions.sh plain-functions.sh + defs-static.in tap-functions.sh plain-functions.sh # Hand-written tests. @@ -1616,6 +1618,39 @@ expected_list_of_tests = $(handwritten_TESTS) am__tmk = tests-in-makefile-list.tmp am__tfs = tests-on-filesystem-list.tmp am__tdf = diff-in-tests-lists.tmp + +# Keep in sync with AC_SUBST'd stuff in defs-static.in. +do_subst = sed \ + -e 's|@abs_srcdir[@]|$(abs_srcdir)|g' \ + -e 's|@abs_top_srcdir[@]|$(abs_top_srcdir)|g' \ + -e 's|@abs_builddir[@]|$(abs_builddir)|g' \ + -e 's|@prefix[@]|$(prefix)|g' \ + -e 's|@amdir[@]|$(amdir)|g' \ + -e 's|@bindir[@]|$(bindir)|g' \ + -e 's|@datadir[@]|$(datadir)|g' \ + -e 's|@docdir[@]|$(docdir)|g' \ + -e 's|@m4datadir[@]|$(m4datadir)|g' \ + -e 's|@scriptdir[@]|$(scriptdir)|g' \ + -e 's|@pkgvdatadir[@]|$(pkgvdatadir)|g' \ + -e 's|@host_alias[@]|$(host_alias)|g' \ + -e 's|@build_alias[@]|$(build_alias)|g' \ + -e 's|@APIVERSION[@]|$(APIVERSION)|g' \ + -e 's|@PATH_SEPARATOR[@]|$(PATH_SEPARATOR)|g' \ + -e 's|@SHELL[@]|$(SHELL)|g' \ + -e 's|@PERL[@]|$(PERL)|g' \ + -e 's|@EGREP[@]|$(EGREP)|g' \ + -e 's|@FGREP[@]|$(FGREP)|g' \ + -e 's|@TEX[@]|$(TEX)|g' \ + -e 's|@MODIFICATION_DELAY[@]|$(MODIFICATION_DELAY)|g' \ + -e 's|@am_AUTOCONF[@]|$(am_AUTOCONF)|g' \ + -e 's|@am_AUTOM4TE[@]|$(am_AUTOM4TE)|g' \ + -e 's|@am_AUTORECONF[@]|$(am_AUTORECONF)|g' \ + -e 's|@am_AUTOHEADER[@]|$(am_AUTOHEADER)|g' \ + -e 's|@am_AUTOUPDATE[@]|$(am_AUTOUPDATE)|g' \ + -e 's|@sh_errexit_works[@]|$(sh_errexit_works)|g' \ + -e 's|@configure_input[@]|Generated from $@.in. DO NOT EDIT BY HAND!|' + +CLEANFILES = defs-static all: all-am .SUFFIXES: @@ -1650,8 +1685,6 @@ $(top_srcdir)/configure: $(am__configure_deps) $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): -defs-static: $(top_builddir)/config.status $(srcdir)/defs-static.in - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ aclocal-${APIVERSION}: $(top_builddir)/config.status $(srcdir)/aclocal.in cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ automake-${APIVERSION}: $(top_builddir)/config.status $(srcdir)/automake.in @@ -1937,6 +1970,7 @@ mostlyclean-generic: -test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) clean-generic: + -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) @@ -1991,7 +2025,7 @@ install-ps: install-ps-am install-ps-am: -installcheck-am: +installcheck-am: installcheck-local maintainer-clean: maintainer-clean-am -rm -f Makefile @@ -2021,10 +2055,10 @@ uninstall-am: install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ - install-strip installcheck installcheck-am installdirs \ - maintainer-clean maintainer-clean-generic mostlyclean \ - mostlyclean-generic pdf pdf-am ps ps-am recheck recheck-html \ - uninstall uninstall-am + install-strip installcheck installcheck-am installcheck-local \ + installdirs maintainer-clean maintainer-clean-generic \ + mostlyclean mostlyclean-generic pdf pdf-am ps ps-am recheck \ + recheck-html uninstall uninstall-am print-list-of-tests: @@ -2236,12 +2270,26 @@ clean-local: clean-maintcheck-testslist-tmp clean-maintcheck-testslist-tmp: rm -f $(am__tmk) $(am__tfs) $(am__tdf) +defs-static: defs-static.in + $(AM_V_at)rm -f $@ $@-t + $(AM_V_GEN)$(do_subst) $(srcdir)/defs-static.in >$@-t + $(AM_V_at) : Sanity check on the substitutions; \ + if LC_ALL=C grep '@[a-zA-Z0-9_][a-zA-Z0-9_]*@' $@-t; then \ + echo "$@ contains unexpanded substitution (see lines above)"; \ + exit 1; \ + fi + $(AM_V_at)chmod a-w $@-t && mv -f $@-t $@ + # Dependencies valid for each test case. $(TEST_LOGS): defs defs-static aclocal-$(APIVERSION) automake-$(APIVERSION) # FIXME: this should be made more granular once we have a cleaner # subdivision of the tests. $(TEST_LOGS): plain-functions.sh tap-functions.sh +# Run the testsuite with the installed aclocal and automake. +installcheck-local: + am_running_installcheck=yes $(MAKE) $(AM_MAKEFLAGS) check + clean-local: clean-local-check .PHONY: clean-local-check clean-local-check: diff --git a/tests/README b/tests/README index fb12380..9bb5520 100644 --- a/tests/README +++ b/tests/README @@ -254,6 +254,13 @@ Do code preserves filenames with spaces. This will catch errors like `echo $filename | ...`. + Make sure your test script can be used to faithfully check an + installed version of automake (as with "make installcheck"). For + 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 tests/defs-static.in. + Before commit: make sure the test is executable, add the tests to TESTS in Makefile.am, add it to XFAIL_TESTS in addition if needed, write a ChangeLog entry, send the diff to <automake-patches@gnu.org>. diff --git a/tests/acloca10.test b/tests/acloca10.test index df7da0e..6990880 100755 --- a/tests/acloca10.test +++ b/tests/acloca10.test @@ -22,6 +22,11 @@ . ./defs || Exit 1 +# FIXME: we should improve our testsuite framework instead! +if test $am_running_installcheck = yes; then + skip_ 'not supported under "installcheck"' +fi + cat >> configure.in << 'END' MACRO2 MACRO1 diff --git a/tests/acloca18.test b/tests/acloca18.test index a7a6e2e..ce094e8 100755 --- a/tests/acloca18.test +++ b/tests/acloca18.test @@ -19,6 +19,11 @@ . ./defs || Exit 1 +# FIXME: we should improve our testsuite framework instead! +if test $am_running_installcheck = yes; then + skip_ 'not supported under "installcheck"' +fi + cat >> configure.in << 'END' AM_MACRO1 AM_MACRO2 diff --git a/tests/aclocal.test b/tests/aclocal.test index 64b72e1..71e9d00 100755 --- a/tests/aclocal.test +++ b/tests/aclocal.test @@ -39,6 +39,9 @@ grep '[Tt]ry.*--help.*for more information' stderr $ACLOCAL --versi -test x"`$ACLOCAL --print-ac-dir`" = x"$top_testsrcdir/m4" +# FIXME: make this work also for "installcheck" +if test $am_running_installcheck = no; then + test x"`$ACLOCAL --print-ac-dir`" = x"$am_m4dir" +fi : diff --git a/tests/aclocal3.test b/tests/aclocal3.test index bd90782..f5b2474 100755 --- a/tests/aclocal3.test +++ b/tests/aclocal3.test @@ -24,10 +24,14 @@ mkdir macros cat > macros/gnome.m4 << 'END' AC_DEFUN([GNOME_X_CHECKS], [ - AM_PATH_GTK(0.99.5,,AC_MSG_ERROR(GTK not installed, or gtk-config not in path)) +# Use a macro that cannot be installed in a third-party system-wide m4 +# file; otherwise, this test might fail under "make installcheck". + AM__PATH__GTK(0.99.5,,AC_MSG_ERROR(GTK not installed, or gtk-config not in path)) ]) END $ACLOCAL -I macros 2>stderr && { cat stderr >&2; Exit 1; } cat stderr -grep 'macros/gnome.m4:2:.*AM_PATH_GTK.*not found' stderr +grep '^macros/gnome\.m4:4:.*AM__PATH__GTK.*not found' stderr + +: diff --git a/tests/amhello-binpkg.test b/tests/amhello-binpkg.test index 00238e8..f42ce11 100755 --- a/tests/amhello-binpkg.test +++ b/tests/amhello-binpkg.test @@ -20,7 +20,7 @@ am_create_testdir=empty . ./defs || Exit 1 -cp "$top_testsrcdir"/doc/amhello-1.0.tar.gz . \ +cp "$am_docdir"/amhello-1.0.tar.gz . \ || fatal_ "cannot get amhello tarball" gzip -dc amhello-1.0.tar.gz | tar xf - diff --git a/tests/amhello-cflags.test b/tests/amhello-cflags.test index 5811f45..a7977f3 100755 --- a/tests/amhello-cflags.test +++ b/tests/amhello-cflags.test @@ -22,7 +22,7 @@ am_create_testdir=empty required=gcc . ./defs || Exit 1 -cp "$top_testsrcdir"/doc/amhello-1.0.tar.gz . \ +cp "$am_docdir"/amhello-1.0.tar.gz . \ || fatal_ "cannot get amhello tarball" gzip -dc amhello-1.0.tar.gz | tar xf - diff --git a/tests/amhello-cross-compile.test b/tests/amhello-cross-compile.test index cd00307..287462f 100755 --- a/tests/amhello-cross-compile.test +++ b/tests/amhello-cross-compile.test @@ -21,11 +21,11 @@ am_create_testdir=empty required=i586-mingw32msvc-gcc . ./defs || Exit 1 -cp "$top_testsrcdir"/doc/amhello-1.0.tar.gz . \ +cp "$am_docdir"/amhello-1.0.tar.gz . \ || fatal_ "cannot get amhello tarball" host=i586-mingw32msvc -build=`"$top_testsrcdir"/lib/config.guess` && test -n "$build" \ +build=`"$am_scriptdir"/config.guess` && test -n "$build" \ || fatal_ "cannot guess build platform" case $build in *mingw*) skip_ "build system is MinGW too";; esac diff --git a/tests/ansi2knr-no-more.test b/tests/ansi2knr-no-more.test index 0d405fe..c8cd4d4 100755 --- a/tests/ansi2knr-no-more.test +++ b/tests/ansi2knr-no-more.test @@ -32,7 +32,7 @@ $ACLOCAL -Wnone 2>stderr && { cat stderr >&2; Exit 1; } cat stderr >&2 grep "^configure\\.in:5:.*$warn_rx" stderr -cat aclocal.sav "$top_testsrcdir"/m4/protos.m4 > aclocal.m4 +cat aclocal.sav "$am_m4dir"/protos.m4 > aclocal.m4 $AUTOCONF -Wnone 2>stderr && { cat stderr >&2; Exit 1; } cat stderr >&2 grep "^configure\\.in:5:.*$warn_rx" stderr diff --git a/tests/autodist-stamp-vti.test b/tests/autodist-stamp-vti.test index 1dc91c7..f7a111b 100755 --- a/tests/autodist-stamp-vti.test +++ b/tests/autodist-stamp-vti.test @@ -46,7 +46,7 @@ END # Required when using Texinfo. : > texinfo.tex -cp "$top_testsrcdir"/lib/mdate-sh . +cp "$am_scriptdir"/mdate-sh . $ACLOCAL $AUTOCONF diff --git a/tests/auxdir.test b/tests/auxdir.test index 04e69f8..2dc548c 100755 --- a/tests/auxdir.test +++ b/tests/auxdir.test @@ -31,7 +31,7 @@ cat > Makefile.am << 'END' pkgdata_DATA = END -cp "$top_testsrcdir/lib/mkinstalldirs" . +cp "$am_scriptdir/mkinstalldirs" . # The "././" prefix confuses Automake into thinking it is doing a # subdir build. Yes, this is hacky. diff --git a/tests/check2.test b/tests/check2.test index 4362424..0424bf8 100755 --- a/tests/check2.test +++ b/tests/check2.test @@ -44,7 +44,7 @@ CLEANFILES = echo.sh END if test x"$parallel_tests" = x"yes"; then - cp "$top_testsrcdir"/lib/test-driver . + cp "$am_scriptdir/test-driver" . fi $ACLOCAL diff --git a/tests/copy.test b/tests/copy.test index 3eb1c9e..8ad3f2a 100755 --- a/tests/copy.test +++ b/tests/copy.test @@ -73,7 +73,7 @@ test FAKE-DEPCOMP = `cat auxdir/depcomp` rm -rf auxdir mkdir auxdir cd auxdir -ln -s "$top_testsrcdir/lib/missing" "$top_testsrcdir/lib/install-sh" . +ln -s "$am_scriptdir/missing" "$am_scriptdir/install-sh" . cd .. $AUTOMAKE -a -c @@ -84,6 +84,6 @@ test -f auxdir/missing test -h auxdir/missing test -f auxdir/depcomp test ! -h auxdir/depcomp -diff $top_testsrcdir/lib/depcomp auxdir/depcomp +diff "$am_scriptdir"/depcomp auxdir/depcomp : diff --git a/tests/defs b/tests/defs index 671ce6f..df67cd3 100644 --- a/tests/defs +++ b/tests/defs @@ -117,6 +117,15 @@ esac # by the configure-time detected $CONFIG_SHELL. +## ----------------------- ## +## Early debugging info. ## +## ----------------------- ## + +echo "Running from installcheck: $am_running_installcheck" +echo "Using TAP: $using_tap" +echo "PATH = $PATH" + + ## ---------------------- ## ## Environment cleanup. ## ## ---------------------- ## @@ -461,10 +470,10 @@ sed_unindent_prog="" # Avoid interferences from the environment. get_shell_script () { if test x"$test_prefer_config_shell" = x"yes"; then - sed "1s|#!.*|#! $SHELL|" "$top_testsrcdir/lib/$1" > "$1" + sed "1s|#!.*|#! $SHELL|" "$am_scriptdir/$1" > "$1" chmod a+x "$1" else - cp "$top_testsrcdir/lib/$1" . + cp "$am_scriptdir/$1" . fi sed 10q "$1" # For debugging. } @@ -498,9 +507,9 @@ fetch_tap_driver () # TODO: with /bin/sh, for better coverage. case $am_tap_implementation in perl) - sed "1s|#!.*|#! $PERL -w|" "$top_testsrcdir"/lib/tap-driver.pl ;; + sed "1s|#!.*|#! $PERL -w|" "$am_scriptdir"/tap-driver.pl ;; shell) - sed "1s|#!.*|#! $SHELL|" "$top_testsrcdir"/lib/tap-driver.sh ;; + sed "1s|#!.*|#! $SHELL|" "$am_scriptdir"/tap-driver.sh ;; *) fatal_ "invalid \$am_tap_implementation '$am_tap_implementation'" ;; esac > tap-driver \ @@ -517,10 +526,6 @@ am_tap_implementation=${am_tap_implementation-shell} ## required by them. ## ## ----------------------------------------------------------- ## -# Print it here, so that the user will see it also if the test -# will be skipped due to some tool missing in $PATH itself. -echo "$PATH" - # So that we can force the use of correct gcc, g++ etc., consistently # with cross-compilation settings. if cross_compiling; then @@ -821,11 +826,6 @@ esac # We might need extra macros, e.g., from Libtool or Gettext. # Find them on the system. -# Use `-I $top_testsrcdir/m4' in addition to `--acdir=$top_testsrcdir/m4', -# because the other `-I' directories added for libtool and gettext might -# contain files from an old version of Automake that we don't want to use. -# Use `-Wno-syntax' because we do not want our test suite to fail because -# some third-party .m4 file is underquoted. case " $required " in *' libtool '* | *' libtoolize '* | *' gettext '* ) aclocaldir=$testprefix/share/aclocal @@ -866,7 +866,12 @@ case " $required " in fi ;; esac - ACLOCAL="$ACLOCAL -Wno-syntax -I $top_testsrcdir/m4 $extra_includes -I $aclocaldir" + # Use `-I $am_m4dir' because the other `-I' directories added for + # libtool and gettext might contain files from an old version of + # Automake that we don't want to use. Use `-Wno-syntax' because we + # do not want our test suite to fail because some third-party `.m4' + # file is underquoted. + ACLOCAL="$ACLOCAL -Wno-syntax -I $am_m4dir $extra_includes -I $aclocaldir" unset libtool_found gettext_found unset extra_includes aclocaldir ;; @@ -941,9 +946,9 @@ else cd ./$testSubDir \ || framework_failure_ "cannot chdir into test subdirectory" if test x"$am_create_testdir" != x"empty"; then - cp "$top_testsrcdir"/lib/install-sh "$top_testsrcdir"/lib/missing \ - "$top_testsrcdir"/lib/depcomp . \ - || framework_failure_ "fetching common files from lib/" + cp "$am_scriptdir"/install-sh "$am_scriptdir"/missing \ + "$am_scriptdir"/depcomp . \ + || framework_failure_ "fetching common files from $am_scriptdir" # Build appropriate environment in test directory. E.g., create # configure.in, touch all necessary files, etc. Don't use AC_OUTPUT, # but AC_CONFIG_FILES so that appending still produces a valid diff --git a/tests/defs-static.in b/tests/defs-static.in index 532b0a8..b26a33c 100644 --- a/tests/defs-static.in +++ b/tests/defs-static.in @@ -89,6 +89,7 @@ for var in \ done unset var + # See whether the current test script is expected to use TAP or not. # Use a sensible default, while allowing the scripts to override this # check. @@ -101,6 +102,33 @@ top_testsrcdir='@abs_top_srcdir@' testbuilddir='@abs_builddir@' testprefix='@prefix@' +# Support for the "installcheck" target. +case ${am_running_installcheck:=no} in + yes) + am_amdir='@amdir@' + am_bindir='@bindir@' + am_datadir='@datadir@' + am_docdir='@docdir@' + am_m4dir='@m4datadir@' + am_pkgvdatadir='@pkgvdatadir@' + am_scriptdir='@scriptdir@' + ;; + no) + am_amdir=$top_testsrcdir/lib/am + am_bindir=$testbuilddir + am_datadir=$top_testsrcdir + am_docdir=$top_testsrcdir/doc + am_m4dir=$top_testsrcdir/m4 + am_pkgvdatadir=$top_testsrcdir/lib + am_scriptdir=$top_testsrcdir/lib + ;; + *) + echo "$argv0: variable \`am_running_installcheck' has invalid" + "value \`$am_running_installcheck'" >&2 + exit 99 + ;; +esac + APIVERSION='@APIVERSION@' PATH_SEPARATOR='@PATH_SEPARATOR@' @@ -117,7 +145,6 @@ test -z "$AUTOM4TE" && AUTOM4TE="@am_AUTOM4TE@" test -z "$AUTORECONF" && AUTORECONF="@am_AUTORECONF@" test -z "$AUTOHEADER" && AUTOHEADER="@am_AUTOHEADER@" test -z "$AUTOUPDATE" && AUTOUPDATE="@am_AUTOUPDATE@" -test -z "$MISSING" && MISSING=$top_testsrcdir/lib/missing # Use -Werror because this also turns some Perl warnings into error. # Tests for which this is inappropriate should use -Wno-error. @@ -168,10 +195,11 @@ sleep='sleep @MODIFICATION_DELAY@' # in UTC; see <http://www.gnu.org/gnu/initial-announcement.html>. old_timestamp=198309271735.59 -# Make our wrapper scripts accessible by default. And avoid to uselessly +# Make our wrapper script (or installed scripts, if running under +# "installcheck") accessible by default. And avoid to uselessly # extend $PATH multiple times if this file is sourced multiple times. case $PATH in - "$testbuilddir$PATH_SEPARATOR"*) ;; - *) PATH="$testbuilddir$PATH_SEPARATOR$PATH";; + $am_bindir$PATH_SEPARATOR*) ;; + *) PATH=$am_bindir$PATH_SEPARATOR$PATH;; esac export PATH diff --git a/tests/depmod.tap b/tests/depmod.tap index c40fea8..6f6a73e 100755 --- a/tests/depmod.tap +++ b/tests/depmod.tap @@ -63,7 +63,7 @@ ocwd=`pwd` || fatal_ "cannot get current working directory" # Keep this in sync with the contents of depend.m4. all_depmodes=`\ - sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < "$top_testsrcdir/lib/depcomp" \ + sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < "$am_scriptdir/depcomp" \ | grep -v '^none$'` \ && : Turn newlines and tabs into spaces, and strip extra whitespace. \ && all_depmodes=`echo $all_depmodes` \ diff --git a/tests/dirlist.test b/tests/dirlist.test index f6aa57e..9cb3ea3 100755 --- a/tests/dirlist.test +++ b/tests/dirlist.test @@ -19,6 +19,11 @@ . ./defs || Exit 1 +# FIXME: we should improve our testsuite framework instead! +if test $am_running_installcheck = yes; then + skip_ 'not supported under "installcheck"' +fi + cat > configure.in <<EOF AC_INIT AM_INIT_GUILE_MODULE diff --git a/tests/dirlist2.test b/tests/dirlist2.test index 910c470..21d8093 100755 --- a/tests/dirlist2.test +++ b/tests/dirlist2.test @@ -20,6 +20,11 @@ . ./defs || Exit 1 +# FIXME: we should improve our testsuite framework instead! +if test $am_running_installcheck = yes; then + skip_ 'not supported under "installcheck"' +fi + cat > configure.in <<EOF AC_INIT AM_INIT_GUILE_MODULE diff --git a/tests/location.test b/tests/location.test index 9013e31..f96a09e 100755 --- a/tests/location.test +++ b/tests/location.test @@ -42,11 +42,20 @@ VAR = 1 \ 3 END +# Smash the useless difference of lib file locations. +smash_useless_diffs () +{ + # FIXME: we could get rid of the second 's|||' once we improve our + # wrapper scripts ... + sed -e "s|^$am_amdir/\\([a-z]*\.am\\)|\\1|" \ + -e "s|^automake-$APIVERSION:|automake:|" ${1+"$@"}; +} + $ACLOCAL AUTOMAKE_fails -Wno-error -# Smash the useless difference of lib file locations. -sed 's,^.*lib/am/\([a-z]*\.am\),\1,' stderr >observed +smash_useless_diffs stderr >observed + cat >expected <<\EOF Makefile.am:12: warning: VAR multiply defined in condition TRUE ... Makefile.am:8: ... `VAR' previously defined here @@ -68,10 +77,18 @@ program.am: ... `ctags$(EXEEXT)' previously defined here Makefile.am:6: while processing program `ctags' EOF +cat expected +cat observed diff expected observed || Exit 1 AUTOMAKE_fails -Werror -sed 's,^.*lib/am/\([a-z]*\.am\),\1,' stderr >observed -( echo 'automake: warnings are treated as errors'; cat expected ) \ - | diff - observed || Exit 1 +smash_useless_diffs stderr >observed +(echo 'automake: warnings are treated as errors' && cat expected) > t +mv -f t expected + +cat expected +cat observed + +diff expected observed || Exit 1 + : diff --git a/tests/multlib.test b/tests/multlib.test index e2ab6f3..d196efd 100755 --- a/tests/multlib.test +++ b/tests/multlib.test @@ -106,8 +106,7 @@ mkdir libbar/sub : > libbar/bar.c -cp "$top_testsrcdir/lib/config-ml.in" . -cp "$top_testsrcdir/lib/symlink-tree" . +cp "$am_scriptdir"/config-ml.in "$am_scriptdir"/symlink-tree . $ACLOCAL $AUTOCONF diff --git a/tests/obsolete.test b/tests/obsolete.test index 8a247d8..3a32858 100755 --- a/tests/obsolete.test +++ b/tests/obsolete.test @@ -28,7 +28,7 @@ AC_INIT END $PERL -ne '/AU_DEFUN\(\[(\w+)\]/ && print "$1\n"' \ - "$top_testsrcdir/m4/obsolete.m4" >> obs + "$am_m4dir/obsolete.m4" > obs cat obs >> configure.in $PERL -ne 'chomp; print "grep $_ output || Exit 1\n"; ' obs > obs.1 $PERL -ne 'chomp; print "grep $_ configure.in && Exit 1\n"; ' obs > obs.2 diff --git a/tests/parallel-tests-interrupt.test b/tests/parallel-tests-interrupt.test index ed40412..8737a7a 100755 --- a/tests/parallel-tests-interrupt.test +++ b/tests/parallel-tests-interrupt.test @@ -37,7 +37,7 @@ END # This is hacky and ugly, but has the great advantage of avoiding us a lot # of pain with background processes and related synchronization issues. -cat - "$top_testsrcdir"/lib/test-driver > test-driver <<'END' +cat - "$am_scriptdir"/test-driver > test-driver <<'END' #!/bin/sh echo $$ > pid END diff --git a/tests/repeated-options.test b/tests/repeated-options.test index 1609aa9..dcdcbb3 100755 --- a/tests/repeated-options.test +++ b/tests/repeated-options.test @@ -58,7 +58,7 @@ int main (void) } END -cp "$top_testsrcdir"/lib/compile "$top_testsrcdir"/lib/test-driver . +cp "$am_scriptdir"/compile "$am_scriptdir"/test-driver . $ACLOCAL $AUTOMAKE --foreign --foreign -Wall 2>stderr || { cat stderr >&2; Exit 1; } diff --git a/tests/suffix5.test b/tests/suffix5.test index 6bdaea4..3061497 100755 --- a/tests/suffix5.test +++ b/tests/suffix5.test @@ -45,7 +45,7 @@ END : > ltmain.sh -cp "$top_testsrcdir"/lib/config.guess "$top_testsrcdir"/lib/config.sub . +cp "$am_scriptdir/config.guess" "$am_scriptdir/config.sub" . $ACLOCAL $AUTOMAKE diff --git a/tests/tap-doc2.test b/tests/tap-doc2.test index 468bb1c..dc69654 100755 --- a/tests/tap-doc2.test +++ b/tests/tap-doc2.test @@ -70,7 +70,7 @@ END chmod a+x *.test mkdir build-aux -cp "$top_testsrcdir"/lib/tap-driver.pl build-aux \ +cp "$am_scriptdir"/tap-driver.pl build-aux \ || framework_failure_ "fetching the perl TAP driver" (export AUTOMAKE ACLOCAL AUTOCONF && $AUTORECONF -vi) || Exit 1 diff --git a/tests/txinfo22.test b/tests/txinfo22.test index 06819fd..07f0573 100755 --- a/tests/txinfo22.test +++ b/tests/txinfo22.test @@ -50,7 +50,7 @@ END mkdir aux1 mkdir tex -cp "$top_testsrcdir/lib/texinfo.tex" tex +cp "$am_pkgvdatadir/texinfo.tex" tex $ACLOCAL $AUTOMAKE --add-missing diff --git a/tests/vtexi3.test b/tests/vtexi3.test index 8829068..b474ef6 100755 --- a/tests/vtexi3.test +++ b/tests/vtexi3.test @@ -65,7 +65,7 @@ END # Required when using Texinfo. : > texinfo.tex -cp "$top_testsrcdir"/lib/mdate-sh . +cp "$am_scriptdir"/mdate-sh . $ACLOCAL $AUTOCONF diff --git a/tests/warnings-unknown.test b/tests/warnings-unknown.test index 77ed589..db803a5 100755 --- a/tests/warnings-unknown.test +++ b/tests/warnings-unknown.test @@ -34,9 +34,13 @@ END $ACLOCAL AUTOMAKE_fails -Wbazquux +# FIXME: we could get rid of this once we improve our wrapper scripts. +sed "s/^automake:/automake-$APIVERSION:/" stderr > t +mv -f t stderr +cat stderr >&2 grep '^configure\.in:2:.* unknown warning category.*zardoz' stderr grep '^Makefile\.am:1:.* unknown warning category.*foobar' stderr -grep '^automake:.* unknown warning category.*bazquux' stderr +grep "^automake-$APIVERSION:.* unknown warning category.*bazquux" stderr # Check that we can override warnings about unknown warning categories. $AUTOMAKE -Wno-unsupported -Wbazquux -- 1.7.2.3