* tests/missing.test, tests/missing2.test: Do not override autoconf in calls to ./configure. Add checks to verify that the `missing' script is called anyway, whenever it's expected to. Move checks involving version number suffixes... * tests/missing7.test: ... to this new tests, and extend them to check for `gnu'/`g' prefixes too, and to check many more wrapped tools. * tests/Makefile.am (TESTS, XFAIL_TESTS): Updated. --- ChangeLog | 10 +++++++ tests/Makefile.am | 3 +- tests/Makefile.in | 3 +- tests/missing.test | 19 +++++-------- tests/missing2.test | 19 +++++-------- tests/missing7.test | 73 +++++++++++++++++++++++++++++++++++++++++++++++++++ 6 files changed, 99 insertions(+), 28 deletions(-) create mode 100755 tests/missing7.test
From cf9ab9a4ce308b12c9fd715acf8594907e90a1a0 Mon Sep 17 00:00:00 2001 From: Stefano Lattarini <stefano.lattar...@gmail.com> Date: Wed, 18 Aug 2010 22:36:05 +0200 Subject: [PATCH 5/6] Fix tests missing.test and missing2.test. * tests/missing.test, tests/missing2.test: Do not override autoconf in calls to ./configure. Add checks to verify that the `missing' script is called anyway, whenever it's expected to. Move checks involving version number suffixes... * tests/missing7.test: ... to this new tests, and extend them to check for `gnu'/`g' prefixes too, and to check many more wrapped tools. * tests/Makefile.am (TESTS, XFAIL_TESTS): Updated. --- ChangeLog | 10 +++++++ tests/Makefile.am | 3 +- tests/Makefile.in | 3 +- tests/missing.test | 19 +++++-------- tests/missing2.test | 19 +++++-------- tests/missing7.test | 72 +++++++++++++++++++++++++++++++++++++++++++++++++++ 6 files changed, 98 insertions(+), 28 deletions(-) create mode 100755 tests/missing7.test diff --git a/ChangeLog b/ChangeLog index 3d65d63..996dffd 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,15 @@ 2010-08-19 Stefano Lattarini <stefano.lattar...@gmail.com> + Fix tests missing.test and missing2.test. + * tests/missing.test, tests/missing2.test: Do not override + autoconf in calls to ./configure. Add checks to verify that + the `missing' script is called anyway, whenever it's expected + to. Move checks involving version number suffixes... + * tests/missing7.test: ... to this new tests, and extend them + to check for `gnu'/`g' prefixes too, and to check many more + wrapped tools. + * tests/Makefile.am (TESTS, XFAIL_TESTS): Updated. + Improve support for non-default autotools in rebuild rules. * lib/am/configure.am: (%MAKEFILE-IN%): When appropriate, export AUTOCONF and AUTOM4TE to proper values when calling $(AUTOMAKE). diff --git a/tests/Makefile.am b/tests/Makefile.am index 414d8a1..9e3b932 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -21,8 +21,6 @@ all.test \ auxdir2.test \ cond17.test \ gcj6.test \ -missing.test \ -missing2.test \ txinfo5.test include $(srcdir)/parallel-tests.am @@ -482,6 +480,7 @@ missing3.test \ missing4.test \ missing5.test \ missing6.test \ +missing7.test \ mkinstall.test \ mkinst2.test \ mkinst3.test \ diff --git a/tests/Makefile.in b/tests/Makefile.in index 74b02f5..2d9de5a 100644 --- a/tests/Makefile.in +++ b/tests/Makefile.in @@ -252,8 +252,6 @@ all.test \ auxdir2.test \ cond17.test \ gcj6.test \ -missing.test \ -missing2.test \ txinfo5.test parallel_tests = \ @@ -724,6 +722,7 @@ missing3.test \ missing4.test \ missing5.test \ missing6.test \ +missing7.test \ mkinstall.test \ mkinst2.test \ mkinst3.test \ diff --git a/tests/missing.test b/tests/missing.test index 01d741a..3384345 100755 --- a/tests/missing.test +++ b/tests/missing.test @@ -16,7 +16,7 @@ # along with this program. If not, see <http://www.gnu.org/licenses/>. # Test missing with version mismatches. -# Keep this in sync with sister test `missing.test'. +# Keep this in sync with sister tests `missing2.test'. . ./defs || Exit 1 @@ -49,26 +49,21 @@ PATH=`pwd`/xbin:$PATH; export PATH # (We cannot export this new value, because it would be used by Automake # when tracing, and missing is no good for this.) unset AUTOCONF -MYAUTOCONF="./missing --run autoconf" -./configure AUTOCONF="$MYAUTOCONF" +./configure $MAKE $sleep # Hopefully the install version of Autoconf cannot compete with this one... echo 'AC_PREREQ([9999])' >> aclocal.m4 -$MAKE distdir - -# Try version number suffixes. -./configure AUTOCONF="${MYAUTOCONF}6789" -$MAKE -$sleep -touch aclocal.m4 -$MAKE distdir +$MAKE distdir 2>stderr || { cat stderr >&2; Exit 1; } +cat stderr >&2 +# Check that `missing' was really run. +grep '^WARNING.*too old' stderr # Run again, but without missing to wrap aclocal/automake, to ensure that # timestamps were updated. -./configure AUTOCONF="$MYAUTOCONF" AUTOMAKE="$AUTOMAKE" ACLOCAL="$ACLOCAL" +./configure AUTOMAKE="$AUTOMAKE" ACLOCAL="$ACLOCAL" $MAKE # Make sure $MAKE fails when timestamps aren't updated and missing is not used. diff --git a/tests/missing2.test b/tests/missing2.test index 41a793e..22d98e2 100755 --- a/tests/missing2.test +++ b/tests/missing2.test @@ -16,7 +16,7 @@ # along with this program. If not, see <http://www.gnu.org/licenses/>. # Test missing with version mismatches. -# Keep this in sync with sister test `missing.test'. +# Keep this in sync with sister tests `missing.test'. . ./defs || Exit 1 @@ -50,26 +50,21 @@ PATH=`pwd`/xbin:$PATH; export PATH # (We cannot export this new value, because it would be used by Automake # when tracing, and missing is no good for this.) unset AUTOCONF -MYAUTOCONF="./missing --run autoconf" -./configure AUTOCONF="$MYAUTOCONF" +./configure $MAKE $sleep # Hopefully the install version of Autoconf cannot compete with this one... echo 'AC_PREREQ([9999])' > v.m4 -$MAKE distdir - -# Try version number suffixes. -./configure AUTOCONF="${MYAUTOCONF}6789" -$MAKE -$sleep -touch v.m4 -$MAKE distdir +$MAKE distdir 2>stderr || { cat stderr >&2; Exit 1; } +cat stderr >&2 +# Check that `missing' was really run. +grep '^WARNING.*too old' stderr # Run again, but without missing to wrap aclocal/automake, to ensure that # timestamps were updated. -./configure AUTOCONF="$MYAUTOCONF" AUTOMAKE="$AUTOMAKE" ACLOCAL="$ACLOCAL" +./configure AUTOMAKE="$AUTOMAKE" ACLOCAL="$ACLOCAL" $MAKE # Make sure $MAKE fails when timestamps aren't updated and missing is not used. diff --git a/tests/missing7.test b/tests/missing7.test new file mode 100755 index 0000000..880636e --- /dev/null +++ b/tests/missing7.test @@ -0,0 +1,72 @@ +#! /bin/sh +# Copyright (C) 2010 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 +# the Free Software Foundation; either version 2, or (at your option) +# any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. + +# Test missing with version mismatches, with version number suffixes. +# and `gnu'/`g' prefixes. + +. ./defs || Exit 1 + +set -e + +cat >fail.sh <<END +#! /bin/sh +exit 1 +END +chmod a+x fail.sh + +# Keep this in sync when you update the `missing' script. +tools='aclocal autoconf autoheader automake autom4te + bison yacc flex lex help2man makeinfo tar' + +PATH=.:$PATH; export PATH + +for tool in $tools; do + for prefix in '' 'g' 'gnu' 'gnu-'; do + for version in '' 1 -2 12.34 -67.8.9; do + what=${prefix}${tool}${version} + case $what in + *.*) qtool=`echo "$tool" | sed 's/\./\\./g'`;; + *) qtool=$tool;; + esac + mkdir $what.dir + cd $what.dir + cp ../fail.sh $what + args='' + ok_to_fail=false + err_regex="^WARNING:.*$qtool.*missing on your system" + case $tool in + autom4te|makeinfo) + args='-o foo' + : > foo + ;; + tar) + err_regex="^WARNING:.*can't.*run.*tar.*with.*given arguments" + ok_to_fail=: + ;; + esac + if ../missing --run $what $args 2>stderr; then + cat stderr >&2 + else + cat stderr >&2 + $ok_to_fail || Exit 1 + fi + grep "$err_regex" stderr + cd .. + done + done +done + +: -- 1.7.1