>From b6c48292197a756cd0411dcb6635120272665711 Mon Sep 17 00:00:00 2001 From: Ralf Wildenhues Date: Sun, 12 Sep 2010 12:45:44 +0200 Subject: [PATCH] Try out new testsuite with old Autoconf and Automake versions. * tests/old-autotools.at (old autoconf and automake): New file, new test. * Makefile.am (TESTSUITE_AT): Update. * doc/libtool.texi (Test descriptions): Document new Autotest keywords `expensive' and `net-access'. * HACKING: Likewise; also document `interactive'. Suggested by Gary V. Vaughan. Signed-off-by: Ralf Wildenhues --- ChangeLog | 11 ++++++ HACKING | 7 +++- Makefile.am | 1 + doc/libtool.texi | 9 +++++ tests/old-autotools.at | 81 ++++++++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 107 insertions(+), 2 deletions(-) create mode 100644 tests/old-autotools.at diff --git a/ChangeLog b/ChangeLog index 4584882..d6fb995 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,14 @@ +2010-09-12 Ralf Wildenhues + + Try out new testsuite with old Autoconf and Automake versions. + * tests/old-autotools.at (old autoconf and automake): New file, + new test. + * Makefile.am (TESTSUITE_AT): Update. + * doc/libtool.texi (Test descriptions): Document new Autotest + keywords `expensive' and `net-access'. + * HACKING: Likewise; also document `interactive'. + Suggested by Gary V. Vaughan. + 2010-09-12 Jürgen Reuter (tiny change) Ralf Wildenhues diff --git a/HACKING b/HACKING index b462c98..277a011 100644 --- a/HACKING +++ b/HACKING @@ -65,11 +65,14 @@ and is not part of a release distribution. * The new Autotest testsuite uses keywords to denote test features: autoconf needs Autoconf automake needs Automake + expensive very expensive test (only enabled if the environment + variable RUN_EXPENSIVE_TESTS is set) + interactive might cause popup windows from the system libltdl exercises the `libltdl' library libtool exercises the `libtool' script libtoolize exercises the `libtoolize' script - recursive runs the suite recursively, with a modified - `libtool' script and with `-k libtool' + net-access might download files from the GNU website + recursive runs the suite recursively CXX F77 FC GCJ exercises a language other than C diff --git a/Makefile.am b/Makefile.am index dcd0876..ff8a225 100644 --- a/Makefile.am +++ b/Makefile.am @@ -499,6 +499,7 @@ TESTSUITE_AT = tests/testsuite.at \ tests/stresstest.at \ tests/cmdline_wrap.at \ tests/pic_flag.at \ + tests/old-autotools.at \ tests/darwin.at \ tests/deplibs-mingw.at \ tests/sysroot.at diff --git a/doc/libtool.texi b/doc/libtool.texi index 9314612..91f98e8 100644 --- a/doc/libtool.texi +++ b/doc/libtool.texi @@ -5463,6 +5463,11 @@ by the test group. The tests are typically skipped if the program is not installed. The @samp{automake} keyword may also denote use of the @command{aclocal} program. address@hidden expensive +This test group is very expensive, and skipped unless the environment +variable @env{RUN_EXPENSIVE_TESTS} is also set. Do not do this unless +you know what you are doing! + @item interactive This test group may require user interaction on some systems. Typically, this means closing a popup window about a DLL load error on Windows. @@ -5475,6 +5480,10 @@ Denote that the @file{libltdl} library is exercised by the test group. Denote that the @command{libtool} or @command{libtoolize} scripts are exercised by the test group, respectively. address@hidden net-access +This test group might access the internet to download files from GNU +servers. + @item recursive Denote that this test group may recursively re-invoke the test suite itself, with changed settings and maybe a changed @command{libtool} diff --git a/tests/old-autotools.at b/tests/old-autotools.at new file mode 100644 index 0000000..f0aa5ce --- /dev/null +++ b/tests/old-autotools.at @@ -0,0 +1,81 @@ +# old-autotools.at -- try running with old Autoconf and Automake -*- Autotest -*- + +# Copyright (C) 2010 Free Software Foundation, Inc. +# +# This file is part of GNU Libtool. +# +# GNU Libtool 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 of +# the License, or (at your option) any later version. +# +# GNU Libtool 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 GNU Libtool; see the file COPYING. If not, a copy +# can be downloaded from http://www.gnu.org/licenses/gpl.html, +# or obtained by writing to the Free Software Foundation, Inc., +# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +#### + +AT_SETUP([old autoconf and automake]) +AT_KEYWORDS([expensive recursive net-access]) +m4_ifdef([AT_CAPTURE_FILE], +[AT_CAPTURE_FILE([testsuite.log])]) + +# Try running the new testsuite with the oldest tool versions we support. +ACVERSION=2.59 +AMVERSION=1.9.6 +inst=`pwd`/inst +PATH=$inst/bin:$PATH +: ${WGET=wget} +: ${MAKE=make} +FTP_GNU=http://ftp.gnu.org/gnu/ + +# You have to set RUN_EXPENSIVE_TESTS to run this test. +AT_CHECK([test -n "$RUN_EXPENSIVE_TESTS" || exit 77]) +# We need a VPATH build. +AT_CHECK([test "$at_srcdir" != . || exit 77]) + +# If versions are not as desired, we need wget or curl (both understand -o). +AT_CHECK([$AUTOCONF --version | grep "$ACVERSION$"], [], [ignore], [ignore], + [AT_CHECK([$WGET --version || exit 77], [], [ignore], [ignore]) + AT_CHECK([$WGET -o autoconf.tar.gz $FTP_GNU/autoconf/autoconf-$ACVERSION.tar.gz || exit 77], + [], [ignore], [ignore]) + AT_CHECK([gzip -dc autoconf-$ACVERSION.tar.gz | tar xf - || exit 77]) + AT_CHECK([cd autoconf-$ACVERSION && ./configure --prefix="$inst" && $MAKE all install || exit 77], + [], [ignore], [ignore]) + ]) + +AT_CHECK([$AUTOMAKE --version | grep "$AMVERSION$"], [], [ignore], [ignore], + [AT_CHECK([$WGET --version || exit 77], [], [ignore], [ignore]) + AT_CHECK([$WGET -o automake.tar.gz $FTP_GNU/automake/automake-$AMVERSION.tar.gz || exit 77], + [], [ignore], [ignore]) + AT_CHECK([gzip -dc automake-$AMVERSION.tar.gz | tar xf - || exit 77]) + AT_CHECK([cd automake-$AMVERSION && ./configure --prefix="$inst" && $MAKE all install || exit 77], + [], [ignore], [ignore]) + ]) + +for var in AUTOCONF AUTOM4TE AUTOHEADER; do + if eval \$$var --version | grep "$ACVERSION$"; then :; else + unset $var + AT_CHECK([$var --version | grep "$ACVERSION$" || exit 77], [], [ignore]) + fi +done +for var in AUTOMAKE ACLOCAL; do + if eval \$$var --version | grep "$AMVERSION$"; then :; else + unset $var + AT_CHECK([$var --version | grep "$AMVERSION$" || exit 77], [], [ignore]) + fi +done + +unset RUN_EXPENSIVE_TESTS TESTSUITEFLAGS +INNER_TESTSUITEFLAGS="$INNER_TESTSUITEFLAGS abs_top_srcdir=$abs_top_srcdir \ + abs_builddir=$abs_builddir" +AT_CHECK([$CONFIG_SHELL $abs_srcdir/testsuite -k autoconf$INNER_TESTSUITEFLAGS], + [], [ignore], [ignore]) + +AT_CLEANUP -- 1.7.2.1.222.g9988