Hello Gary,

you wanted a way to test old Autoconf and Automake with a git Libtool
tree:

* Gary V. Vaughan wrote on Sun, Aug 22, 2010 at 05:41:52PM CEST:
> On 22 Aug 2010, at 22:30, Ralf Wildenhues wrote:
> > * Gary V. Vaughan wrote on Sun, Aug 22, 2010 at 05:24:05PM CEST:
> >> Of course, that doesn't test the patch series you haven't
> >> pushed yet...
> > 
> > Just add 'git checkout origin/parallel-tests'.
> 
> I meant that if I want to check that my next round of m4sh patches
> don't break with older Autotools before I push, this script doesn't
> help, since it wants a fresh libtool checkout.  The script would
> be more useful if it can be run inside a dirty working directory.
> 
> >> And running it as an Autotest inside the existing tree would
> >> get us better coverage, and obviate the need for a separate
> >> checkout of the libtool tree entirely.
> > 
> > Sure.  But look at the existing sort-of-recursive tests.  They are
> > tricky.  I am waiting for the day where we add infinite recursion in
> > some corner case and have developers complain.
> 
> Actually, I've not looked at the details of those recursive tests,
> so I must admit that I don't know how tricky they are.  I just
> assumed that we could reuse that pattern here.
> 
> > The net is abundant now, I think such test helper scripts are a real
> > easy way to get more coverage, but I don't think it is necessary to
> > run them as part of each testsuite run, because they are very expensive.
> 
> A very good point.  Maybe we should add a 'maintainer-test' target or
> similar, which executes this and other expensive test-helper scripts
> in addition to the regular testsuite(s). And it's also worth considering
> migrating our other recursive tests to helper scripts too in that case.

I haven't done that yet; but in the end, that might actually be a better
idea than what I hacked up for now:

This patch checks whether $AUTOCONF and $AUTOMAKE point to the oldest
versions we aim to support, otherwise downloads repective release
tarballs, builds and installs them temporarily below a subdirectory in
the test group, then runs those parts of the new testsuite recursively
which use autoconf.  The old testsuite is not dealt with.

While debugging the patch, I did run into an endless recursion or two.
The test is fragile in that it might need updating when we add more
environment variables that influence general test behavior.

At this point, I'm not actually asking to commit this now.  Consider it
a test balloon that you could use in your git tree to test things.  :-)

Cheers,
Ralf
>From e9930b5cf137500b2c08ceb3e3819dfbc6404be0 Mon Sep 17 00:00:00 2001
From: Ralf Wildenhues <ralf.wildenh...@gmx.de>
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 <ralf.wildenh...@gmx.de>
---
 ChangeLog        |   11 +++++++++++
 HACKING          |    7 +++++--
 Makefile.am      |    1 +
 doc/libtool.texi |    9 +++++++++
 4 files changed, 26 insertions(+), 2 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 4584882..d6fb995 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,14 @@
+2010-09-12  Ralf Wildenhues  <ralf.wildenh...@gmx.de>
+
+       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  <juergen.reu...@physik.uni-freiburg.de>  (tiny 
change)
            Ralf Wildenhues  <ralf.wildenh...@gmx.de>
 
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.
 
+...@item 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.
 
+...@item 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}
-- 
1.7.2.1.222.g9988

Reply via email to