automake-commit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Automake-commit] [SCM] GNU Automake branch, testsuite-work, updated. v1


From: Stefano Lattarini
Subject: [Automake-commit] [SCM] GNU Automake branch, testsuite-work, updated. v1.11-1506-g4b2a828
Date: Thu, 20 Oct 2011 21:29:56 +0000

This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU Automake".

http://git.sv.gnu.org/gitweb/?p=automake.git;a=commitdiff;h=4b2a828b7a7477ecd984bcf0b7cc2887579bce10

The branch, testsuite-work has been updated
       via  4b2a828b7a7477ecd984bcf0b7cc2887579bce10 (commit)
       via  3c45ea72003cb51d76ea222d59e2966c18edbf7c (commit)
       via  9579333e603ae57a6b8210f828147cccd53d9276 (commit)
       via  d2b90968332e5903a1408d49ec967602e499363d (commit)
       via  7cb64d4f6501319acc6984adb3589f60f6e047e9 (commit)
       via  65c015849f02bec4b7c106758be71db12f602d73 (commit)
       via  367df29afd3c875da003fb1cd927e3b2f8ae2197 (commit)
       via  100e97400a06c0f9af0ea7be99aa60be95c624bf (commit)
       via  f8f8ec0e6c0dbcaa458e48efa7b5c64960e528bd (commit)
       via  d91f357d9841d2da2fe7538bbcff73bcca94435a (commit)
       via  b8d6454c2c96ff4d4a9878d382618d72a81a1146 (commit)
       via  7a770586e81edba77ebdbd83fb6ca6fed39d2fab (commit)
       via  8c021e00169da8802d47e9428e282aa6ff78b656 (commit)
       via  f5b69b8a0d787cf798653fdb975affa9e7ff44b8 (commit)
       via  7e5ae808d830c9319a4dd3d357b10dcf4315f529 (commit)
       via  94ad7e48dc63321ca334e71c0f87dc3eada8ffd6 (commit)
       via  02ab80cebbb9efc1e3dfbd3034dc517f3c5e099d (commit)
       via  579b15b79bb494f51e44baaaffc18c8c1e636e63 (commit)
       via  ae412c3817a7fe6d553863c0b2a825bd400e4b76 (commit)
      from  58c019e0a6fac0073250402b49931a501063f55c (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit 4b2a828b7a7477ecd984bcf0b7cc2887579bce10
Author: Stefano Lattarini <address@hidden>
Date:   Thu Oct 20 23:27:39 2011 +0200

    fixup: add forgotten test scripts to $(TESTS)
    
    * tests/list-of-tests.mk: Add various test scripts that are in
    the git repository but weren't correctly listed in $(TESTS).
    The inconsistency had been caused by botched/incomplete merges,
    and revealed by the "maintainer-check-list-of-tests" target.

commit 3c45ea72003cb51d76ea222d59e2966c18edbf7c
Merge: 58c019e 9579333
Author: Stefano Lattarini <address@hidden>
Date:   Thu Oct 20 23:20:54 2011 +0200

    Merge branch 'master' into testsuite-work
    
    * master:
      tests: fix spurious failures with "chatty" make implementations
      tests: fix aclocal-print-acdir.test
      tests: fix spurious failure on fast machines
      tests: avoid spurious failure of 'uninstall-fail.test' on Solaris
      tests: avoid spurious failure of 'uninstall-fail.test' on Cygwin
      tests: avoid spurious failure in 'parallel-tests3.test'
      tests: fix spurious failure with FreeBSD make and Yacc in VPATH
      tests: fix spurious failure with autoconf 2.62
      refactor: improve signature of 'check_directory' sub in automake
      docs: avoid using colon character inside arguments of @pxref

-----------------------------------------------------------------------

Summary of changes:
 ChangeLog                               |   97 +++++++++++++++++++++++++++++++
 THANKS                                  |    2 +-
 automake.in                             |   21 +++----
 doc/automake.texi                       |    2 +-
 tests/Makefile.in                       |   12 ++++
 tests/aclocal-path-install-serial.test  |    4 +-
 tests/distcheck-missing-m4.test         |   15 ++++-
 tests/distcheck-outdated-m4.test        |   16 ++++--
 tests/list-of-tests.mk                  |    8 +++
 tests/parallel-tests3.test              |   18 ++++--
 tests/{subpkg.test => subpkg-yacc.test} |   90 ++++++++++++++++++-----------
 tests/subpkg.test                       |   17 +-----
 tests/uninstall-fail.test               |   13 +++--
 13 files changed, 231 insertions(+), 84 deletions(-)
 copy tests/{subpkg.test => subpkg-yacc.test} (52%)

diff --git a/ChangeLog b/ChangeLog
index b1011ef..4b3c711 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,100 @@
+2011-10-20  Stefano Lattarini  <address@hidden>
+
+       fixup: add forgotten test scripts to $(TESTS)
+       * tests/list-of-tests.mk: Add various test scripts that are in
+       the git repository but weren't correctly listed in $(TESTS).
+       The inconsistency had been caused by botched/incomplete merges,
+       and revealed by the "maintainer-check-list-of-tests" target.
+
+2011-10-18  Stefano Lattarini  <address@hidden>
+
+       tests: fix spurious failure with FreeBSD make and Yacc in VPATH
+       * tests/subpkg.test: Some cosmetic adjustments.  Move the tests
+       checking that $(YLWRAP) is defined and installed properly when
+       ylwrap is in a default auxdir found in a parent package ...
+       * tests/subpkg-yacc.test: ... into this new test, which carefully
+       avoids to trigger the known bug#7884 (combo FreeBSD make plus Yacc
+       plus VPATH build).
+       * tests/Makefile.am (TESTS): Update.
+
+2011-10-18  Stefano Lattarini  <address@hidden>
+
+       tests: avoid spurious failure in 'parallel-tests3.test'
+       This fixes automake bug#8788.
+       * tests/parallel-tests3.test: To ensure that the serial run of
+       the dummy testsuite is still ongoing when the parallel run has
+       terminated, use `kill -0', not a bare `kill'.  This will prevent
+       a testsuite crash on NetBSD 5.1, and a testsuite hang on FreeBSD
+       8.2.  Also, since we are at it, try harder to avoid possible
+       hangs of the script in other unusual situations.
+
+2011-10-20  Stefano Lattarini  <address@hidden>
+
+       tests: fix spurious failures with "chatty" make implementations
+       * tests/distcheck-missing-m4.test: On failure, some make
+       implementations (such as Solaris make) print the whole failed
+       recipe on standard output.  This was causing a spurious failure
+       in the checks grepping the output from make.  Work around this.
+       * tests/distcheck-outdated-m4.test: Likewise.
+
+2011-10-20  Stefano Lattarini  <address@hidden>
+
+       tests: fix spurious failure on fast machines
+       * tests/aclocal-path-precedence.test: Also remove the `configure'
+       script between different test runs, to ensure it is always remade
+       by autoconf.  Add proper explicative comments.
+
+2011-10-20  Stefano Lattarini  <address@hidden>
+
+       tests: avoid spurious failure of 'uninstall-fail.test' on Solaris
+       * tests/uninstall-fail.test: All the Solaris 10 shells (/bin/sh,
+       /bin/ksh, and /usr/xpg4/bin/sh), upon failing to chdir to a
+       directory with the `cd' builtin, print a message like:
+         "sh: /root: permission denied"
+       which doesn't report the `cd' builtin anywhere.  Relax the grepping
+       of the error message accordingly.
+
+2011-10-20  Jim Meyering  <address@hidden>
+
+       tests: fix aclocal-print-acdir.test
+       * tests/aclocal-print-acdir.test: Adjust to pass.
+
+2011-10-19  Stefano Lattarini  <address@hidden>
+
+       tests: avoid spurious failure of 'uninstall-fail.test' on Cygwin
+       * tests/uninstall-fail.test: Be sure to really skip this test
+       on systems that allows files to be removed from unwritable
+       directories.  Motivated by a spurious failure on Cygwin 1.5.
+
+2011-10-17  Stefano Lattarini  <address@hidden>
+
+       tests: fix spurious failure with autoconf 2.62
+       * tests/aclocal-path-precedence.test: Rewrite configure.in,
+       rather than appending to it, to avoid spurious failures (at
+       least with autoconf 2.62) due to repeated calls to AC_INIT.
+       Also, add package name and version arguments to AC_INIT, to
+       avoid spurious errors from automake.
+
+2011-10-16  Stefano Lattarini  <address@hidden>
+
+       docs: avoid using colon character inside arguments of @pxref
+       Fixes automake bug#9753
+       * doc/automake.texi (VPATH Builds): Avoid using colon character
+       `:' inside arguments of @pxref, as this can cause problems in
+       the generated `.info' files, and such an usage will be explicitly
+       forbidden by future texinfo documentation.
+       * THANKS: Update.
+       Reported by Дилян Палаузов.
+
+2011-10-17  Stefano Lattarini  <address@hidden>
+
+       refactor: improve signature of 'check_directory' sub in automake
+       * automake.in (check_directory): Take the relative directory
+       the directory to be checked is expected to be found into as
+       an optional parameter, rather than reading it from the global
+       variable `$relative_dir'.
+       (scan_autoconf_traces, check_directories_in_var): Adjust.
+
 2011-10-17  Stefano Lattarini  <address@hidden>
 
        cosmetics: remove obsolete comment
diff --git a/THANKS b/THANKS
index 2e2c6d9..5156a3d 100644
--- a/THANKS
+++ b/THANKS
@@ -84,7 +84,7 @@ Diab Jerius           address@hidden
 Didier Cassirame       address@hidden
 Dieter Baron           address@hidden
 Dieter Jurzitza                address@hidden
-Dilyan Palauzov                address@hidden
+Дилян Палаузов          address@hidden
 Dmitry Mikhin          address@hidden
 Dmitry V. Levin                address@hidden
 Doug Evans             address@hidden
diff --git a/automake.in b/automake.in
index b3a454f..b8fea3c 100644
--- a/automake.in
+++ b/automake.in
@@ -3886,16 +3886,17 @@ sub handle_dist ()
 }
 
 
-# check_directory ($NAME, $WHERE)
-# -------------------------------
-# Ensure $NAME is a directory, and that it uses a sane name.
-# Use $WHERE as a location in the diagnostic, if any.
-sub check_directory ($$)
+# check_directory ($NAME, $WHERE [, $RELATIVE_DIR = "."])
+# -------------------------------------------------------
+# Ensure $NAME is a directory (in $RELATIVE_DIR), and that it uses a sane
+# name.  Use $WHERE as a location in the diagnostic, if any.
+sub check_directory ($$;$)
 {
-  my ($dir, $where) = @_;
+  my ($dir, $where, $reldir) = @_;
+  $reldir = '.' unless defined $reldir;
 
-  error $where, "required directory $relative_dir/$dir does not exist"
-    unless -d "$relative_dir/$dir";
+  error $where, "required directory $reldir/$dir does not exist"
+    unless -d "$reldir/$dir";
 
   # If an `obj/' directory exists, BSD make will enter it before
   # reading `Makefile'.  Hence the `Makefile' in the current directory
@@ -3934,7 +3935,7 @@ sub check_directories_in_var ($)
     (sub
      {
        my ($var, $val, $cond, $full_cond) = @_;
-       check_directory ($val, $var->rdef ($cond)->location);
+       check_directory ($val, $var->rdef ($cond)->location, $relative_dir);
        return ();
      },
      undef,
@@ -5292,7 +5293,6 @@ sub scan_autoconf_traces ($)
            }
          $config_aux_dir = $args[1];
          $config_aux_dir_set_in_configure_ac = 1;
-         $relative_dir = '.';
          check_directory ($config_aux_dir, $where);
        }
       elsif ($macro eq 'AC_CONFIG_FILES')
@@ -5312,7 +5312,6 @@ sub scan_autoconf_traces ($)
       elsif ($macro eq 'AC_CONFIG_LIBOBJ_DIR')
        {
          $config_libobj_dir = $args[1];
-         $relative_dir = '.';
          check_directory ($config_libobj_dir, $where);
        }
       elsif ($macro eq 'AC_CONFIG_LINKS')
diff --git a/doc/automake.texi b/doc/automake.texi
index c60f3f0..5fcb371 100644
--- a/doc/automake.texi
+++ b/doc/automake.texi
@@ -926,7 +926,7 @@ about some concurrency in the way build commands are run.  
For this
 reason we refer to such setups using the name @emph{VPATH builds} in
 the following.  @emph{VPATH} is the name of the @command{make} feature
 used by the @file{Makefile}s to allow these builds (@pxref{General
-Search, , @code{VPATH}: Search Path for All Prerequisites, make, The
+Search, , @code{VPATH} Search Path for All Prerequisites, make, The
 GNU Make Manual}).
 
 @cindex multiple configurations, example
diff --git a/tests/Makefile.in b/tests/Makefile.in
index e6b0552..3226126 100644
--- a/tests/Makefile.in
+++ b/tests/Makefile.in
@@ -632,14 +632,18 @@ dirlist.test \
 dirlist2.test \
 dirlist-abspath.test \
 discover.test \
+dist-auxdir-many-subdirs.test \
 dist-auxfile-2.test \
 dist-auxfile.test \
 dist-included-parent-dir.test \
+dist-readonly.test \
+dist-repeated.test \
 distcleancheck.test \
 distcom2.test \
 distcom3.test \
 distcom4.test \
 distcom5.test \
+distcom-subdir.test \
 distdir.test \
 distlinks.test \
 distlinksbrk.test \
@@ -911,6 +915,7 @@ missing3.test \
 missing4.test \
 missing5.test \
 missing6.test \
+missing-auxfile-stops-makefiles-creation.test \
 mkinstall.test \
 mkinst2.test \
 mkinst3.test \
@@ -1006,6 +1011,8 @@ testsuite-summary-color.test \
 testsuite-summary-count.test \
 testsuite-summary-count-many.test \
 testsuite-summary-reference-log.test \
+test-driver-acsubst.test \
+test-driver-cond.test \
 test-driver-custom-no-extra-driver.test \
 test-driver-custom.test \
 test-driver-custom-xfail-tests.test \
@@ -1252,6 +1259,7 @@ subpkg.test \
 subpkg2.test \
 subpkg3.test \
 subpkg4.test \
+subpkg-yacc.test \
 subst.test \
 subst3.test \
 subst4.test \
@@ -1559,6 +1567,8 @@ check_testsuite_summary_TESTS = \
 
 use_trivial_test_driver_TESTS = \
   testsuite-summary-count-many.test \
+  test-driver-acsubst.test \
+  test-driver-cond.test \
   test-driver-custom-multitest.test \
   test-driver-custom-multitest-recheck.test \
   test-driver-custom-multitest-recheck2.test \
@@ -2135,6 +2145,8 @@ testsuite-summary-count-many.log: 
extract-testsuite-summary
 testsuite-summary-color.log: testsuite-summary-checks.sh 
 testsuite-summary-count.log: testsuite-summary-checks.sh 
 testsuite-summary-count-many.log: trivial-test-driver 
+test-driver-acsubst.log: trivial-test-driver 
+test-driver-cond.log: trivial-test-driver 
 test-driver-custom-multitest.log: trivial-test-driver 
 test-driver-custom-multitest-recheck.log: trivial-test-driver 
 test-driver-custom-multitest-recheck2.log: trivial-test-driver 
diff --git a/tests/aclocal-path-install-serial.test 
b/tests/aclocal-path-install-serial.test
index 15b4204..511ccee 100755
--- a/tests/aclocal-path-install-serial.test
+++ b/tests/aclocal-path-install-serial.test
@@ -45,7 +45,9 @@ win ()
     pdir) ok=pdir ko=sdir;;
        *) fatal_ "win(): invalud argument \`$1'";;
   esac
-  rm -rf aclocal.m4 autom4te*.cache m4/*
+  # This is required on fast machine, to avoid caching and timestamp
+  # issues with the autotools (already happened in practice).
+  rm -rf configure aclocal.m4 autom4te*.cache m4/*
   $ACLOCAL -I m4 --install
   test -f m4/foo.m4 # Sanity check.
   $AUTOCONF
diff --git a/tests/distcheck-missing-m4.test b/tests/distcheck-missing-m4.test
index 9c6aeb4..d4ba30d 100755
--- a/tests/distcheck-missing-m4.test
+++ b/tests/distcheck-missing-m4.test
@@ -63,6 +63,15 @@ $AUTOCONF
 $EGREP 'MY_(FOO|BAR|BAZ|ZAR)' configure && Exit 1 # Sanity check.
 $AUTOMAKE
 
+check_no_spurious_error ()
+{
+  $EGREP -i 'mkdir:|:.*(permission|denied)' output && Exit 1
+  # On failure, some make implementations (such as Solaris make) print the
+  # whole failed recipe on stdout.  The first grep works around this.
+  grep -v 'rm -rf ' output | grep -i 'autom4te.*\.cache' && Exit 1
+  : # To placate `set -e'.
+}
+
 ./configure
 
 $MAKE distcheck >output 2>&1 && { cat output; Exit 1; }
@@ -70,8 +79,7 @@ cat output
 for x in bar baz zar; do
   $EGREP "required m4 file.*not distributed.* $x.m4( |$)" output
 done
-# Check that we don't fail for spurious errors.
-$EGREP -i 'mkdir:|autom4te.*\.cache|:.*(permission|denied)' output && Exit 1
+check_no_spurious_error
 
 # Now we use `--install', and "make distcheck" should pass.
 $ACLOCAL -I m4 --install
@@ -96,8 +104,7 @@ $MAKE distcheck >output 2>&1 && { cat output; Exit 1; }
 cat output
 $EGREP "required m4 file.*not distributed.* qux.m4( |$)" output
 $EGREP "required m4 file.*not distributed.* bla.m4( |$)" output
-# Check that we don't fail for spurious errors.
-$EGREP -i 'mkdir:|autom4te.*\.cache|permission|denied' output && Exit 1
+check_no_spurious_error
 # Check that we don't complain for files that should have been found.
 $FGREP " (bar|baz|zar).m4" output && Exit 1
 
diff --git a/tests/distcheck-outdated-m4.test b/tests/distcheck-outdated-m4.test
index a4d63d9..5df5650 100755
--- a/tests/distcheck-outdated-m4.test
+++ b/tests/distcheck-outdated-m4.test
@@ -57,6 +57,15 @@ $AUTOMAKE
 ./configure
 $MAKE distcheck # Sanity check.
 
+check_no_spurious_error ()
+{
+  $EGREP -i 'mkdir:|:.*(permission|denied)' output && Exit 1
+  # On failure, some make implementations (such as Solaris make) print the
+  # whole failed recipe on stdout.  The first grep works around this.
+  grep -v 'rm -rf ' output | grep -i 'autom4te.*\.cache' && Exit 1
+  : # To placate `set -e'.
+}
+
 # We start to use a new "third-party" macro in a new version
 # of a pre-existing third-party m4 file, but forget to re-run
 # "aclocal --install" by hand, relying on automatic remake
@@ -74,8 +83,7 @@ $MAKE distcheck >output 2>&1 && { cat output; Exit 1; }
 cat output
 
 $EGREP "required m4 file.* outdated.* baz.m4( |$)" output
-# Check that we don't fail for spurious errors.
-$EGREP -i 'mkdir:|autom4te.*\.cache|permission|denied' output && Exit 1
+check_no_spurious_error
 # Check that we don't complain for files that aren't outdated.
 $EGREP " (foo|bar).m4" output && Exit 1
 
@@ -115,10 +123,8 @@ END
 $MAKE # Rebuild configure and makefiles.
 $MAKE distcheck >output 2>&1 && { cat output; Exit 1; }
 cat output
-
 $EGREP "required m4 file.* outdated.* fnord.m4( |$)" output
-# Check that we don't fail for spurious errors.
-$EGREP -i 'mkdir:|autom4te.*\.cache|permission|denied' output && Exit 1
+check_no_spurious_error
 # Check that we don't complain for files that aren't outdated.
 $EGREP " (foo|bar|baz).m4" output && Exit 1
 
diff --git a/tests/list-of-tests.mk b/tests/list-of-tests.mk
index a60b2f2..ff7b39b 100644
--- a/tests/list-of-tests.mk
+++ b/tests/list-of-tests.mk
@@ -308,14 +308,18 @@ dirlist.test \
 dirlist2.test \
 dirlist-abspath.test \
 discover.test \
+dist-auxdir-many-subdirs.test \
 dist-auxfile-2.test \
 dist-auxfile.test \
 dist-included-parent-dir.test \
+dist-readonly.test \
+dist-repeated.test \
 distcleancheck.test \
 distcom2.test \
 distcom3.test \
 distcom4.test \
 distcom5.test \
+distcom-subdir.test \
 distdir.test \
 distlinks.test \
 distlinksbrk.test \
@@ -587,6 +591,7 @@ missing3.test \
 missing4.test \
 missing5.test \
 missing6.test \
+missing-auxfile-stops-makefiles-creation.test \
 mkinstall.test \
 mkinst2.test \
 mkinst3.test \
@@ -682,6 +687,8 @@ testsuite-summary-color.test \
 testsuite-summary-count.test \
 testsuite-summary-count-many.test \
 testsuite-summary-reference-log.test \
+test-driver-acsubst.test \
+test-driver-cond.test \
 test-driver-custom-no-extra-driver.test \
 test-driver-custom.test \
 test-driver-custom-xfail-tests.test \
@@ -928,6 +935,7 @@ subpkg.test \
 subpkg2.test \
 subpkg3.test \
 subpkg4.test \
+subpkg-yacc.test \
 subst.test \
 subst3.test \
 subst4.test \
diff --git a/tests/parallel-tests3.test b/tests/parallel-tests3.test
index fd33564..69ce1c1 100755
--- a/tests/parallel-tests3.test
+++ b/tests/parallel-tests3.test
@@ -66,15 +66,21 @@ $sleep
 : >stdout
 $MAKE -j4 check >> stdout
 cd ..
-kill $!
+# Ensure the tests are really being run in parallel mode: if this is
+# the case, the serial run of the dummy testsuite started above should
+# still be ongoing when the parallel one has terminated.
+kill -0 $!
 cat parallel/stdout
 test `grep -c '^PASS:' parallel/stdout` -eq 8
 
-# Wait long enough so that there are no open files any more
-# when the post-test cleanup runs.
-while test ! -f serial/test-suite.log
-do
-  $sleep
+# Wait long enough so that there are no open files any more when the
+# post-test cleanup runs.  But exit after we've waited for two minutes
+# or more, to avoid testsuite hangs in unusual situations (this has
+# already happened).
+i=1
+while test ! -f serial/test-suite.log && test $i -le 120; do
+  i=`expr $i + 1`
+  sleep '1' # Extra quoting to please maintainer-check.
 done
 $sleep
 
diff --git a/tests/subpkg.test b/tests/subpkg-yacc.test
similarity index 52%
copy from tests/subpkg.test
copy to tests/subpkg-yacc.test
index e1b01b3..ee8af66 100755
--- a/tests/subpkg.test
+++ b/tests/subpkg-yacc.test
@@ -15,45 +15,32 @@
 # You should have received a copy of the GNU General Public License
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
-# Check subpackage handling.
+# Check that ylwrap is installed properly, and $(YLWRAP) us defined
+# properly, when a subpackage is involved.
 
 required='cc yacc'
 . ./defs || Exit 1
 
-mkdir m4
-
-cat >m4/foo.m4 <<'EOF'
-AC_DEFUN([FOO],[
-  AC_PROG_CC
-  AC_OUTPUT
-])
-EOF
+set -e
 
 cat >>configure.in <<'END'
+AC_PROG_CC
 AC_CONFIG_SUBDIRS([lib])
-FOO
+AC_OUTPUT
 END
 
 cat >Makefile.am <<'EOF'
 SUBDIRS = lib
-# Yes, This program is named LDADD.  So what?
-bin_PROGRAMS = LDADD
-LDADD_LDADD = lib/liblib.a
-
+bin_PROGRAMS = MU
+MU_LDADD = lib/liblib.a
 # It's ok to override distdir.
 distdir = subpack-1
-
-# Make sure $(distdir) and $(top_distdir) work as expected.
-dist-hook:
-       test -f $(distdir)/LDADD.c
-       test -f $(top_distdir)/LDADD.c
-
-ACLOCAL_AMFLAGS = -I m4
+# Remove a file created by rules in subdir lib.
+CLEANFILES = lib-dist-hook-has-run
 EOF
 
-cat >LDADD.c <<'EOF'
+cat >MU.c <<'EOF'
 int lib (void);
-
 int main (void)
 {
   return lib ();
@@ -68,9 +55,11 @@ AC_INIT([lib], [2.3])
 AM_INIT_AUTOMAKE
 AC_PROG_RANLIB
 AC_PROG_YACC
+dnl This comes after YACC and RANLIB checks, deliberately.
+AC_PROG_CC
 AC_CONFIG_HEADERS([config.h:config.hin])
 AC_CONFIG_FILES([Makefile])
-FOO
+AC_OUTPUT
 EOF
 
 cat >lib/Makefile.am <<'EOF'
@@ -79,18 +68,28 @@ liblib_a_SOURCES = src/x.c foo.y
 EXTRA_liblib_a_SOURCES = bar.y
 
 dist-hook:
-       test ! -f $(distdir)/LDADD.c
-       test -f $(top_distdir)/LDADD.c
+       test -d $(top_distdir)
+       test -d $(distdir)
+       find $(top_distdir) $(distdir) ;: For debugging.
+       test -f $(top_distdir)/MU.c
+       test ! -f $(distdir)/MU.c
+       for suf in y c; do \
+         for name in foo bar; do \
+           test -f $(distdir)/$$name.$$suf || exit 1; \
+           test ! -f $(top_distdir)/$$name.$$suf || exit 1; \
+         done; \
+       done
+       test -f $(distdir)/foo.y
+       test ! -f $(top_distdir)/foo.y
        test -f $(distdir)/src/x.c
        test ! -f $(top_distdir)/src/x.c
        test -f $(YLWRAP)
-
-ACLOCAL_AMFLAGS = -I ../m4
+       : > $(top_builddir)/../lib-dist-hook-has-run
 EOF
 
 cat > lib/foo.y << 'END'
 %{
-int yylex () {return 0;}
+int yylex (void) { return 0; }
 void yyerror (char *s) {}
 %}
 %%
@@ -107,22 +106,45 @@ int lib (void)
 }
 EOF
 
-$ACLOCAL -I m4
+$ACLOCAL
 $AUTOCONF
 $AUTOMAKE -Wno-override
 
 cd lib
-$ACLOCAL -I ../m4
-$FGREP 'm4_include([../m4/foo.m4])' aclocal.m4
+$ACLOCAL
 $AUTOCONF
 $AUTOHEADER
 $AUTOMAKE -Wno-override --add-missing
 cd ..
 
+# Some checks here are slightly more tricky than we'd like, but we cannot
+# simply use "make distcheck", to avoid triggering a spurious failure due
+# to issues with FreeBSD make and VPATH builds (see automake bug#7884).
+
 ./configure
 $MAKE
-$MAKE distcheck
-test ! -d subpack-1 # Make sure distcheck cleans up after itself.
+$MAKE dist
+test -f lib-dist-hook-has-run
 test -f subpack-1.tar.gz
+test ! -d subpack-1 # Make sure "dist" cleans up after itself.
+
+mkdir workdir
+cd workdir
+gzip -c -d ../subpack-1.tar.gz | tar xf -
+test -d subpack-1
+mkdir build
+cd build
+../subpack-1/configure
+$MAKE
+$MAKE dist
+test -f lib-dist-hook-has-run
+test -f subpack-1.tar.gz
+test ! -d subpack-1 # Make sure "dist" cleans up after itself.
+
+# Don't trust non-GNU makes to do distcheck with a Yacc-using
+# package (see bug referenced above).
+if using_gmake; then
+  $MAKE distcheck || Exit 1
+fi
 
 :
diff --git a/tests/subpkg.test b/tests/subpkg.test
index e1b01b3..48e3cf6 100755
--- a/tests/subpkg.test
+++ b/tests/subpkg.test
@@ -53,7 +53,6 @@ EOF
 
 cat >LDADD.c <<'EOF'
 int lib (void);
-
 int main (void)
 {
   return lib ();
@@ -67,7 +66,6 @@ cat >lib/configure.ac <<'EOF'
 AC_INIT([lib], [2.3])
 AM_INIT_AUTOMAKE
 AC_PROG_RANLIB
-AC_PROG_YACC
 AC_CONFIG_HEADERS([config.h:config.hin])
 AC_CONFIG_FILES([Makefile])
 FOO
@@ -75,30 +73,17 @@ EOF
 
 cat >lib/Makefile.am <<'EOF'
 noinst_LIBRARIES = liblib.a
-liblib_a_SOURCES = src/x.c foo.y
-EXTRA_liblib_a_SOURCES = bar.y
+liblib_a_SOURCES = src/x.c
 
 dist-hook:
        test ! -f $(distdir)/LDADD.c
        test -f $(top_distdir)/LDADD.c
        test -f $(distdir)/src/x.c
        test ! -f $(top_distdir)/src/x.c
-       test -f $(YLWRAP)
 
 ACLOCAL_AMFLAGS = -I ../m4
 EOF
 
-cat > lib/foo.y << 'END'
-%{
-int yylex () {return 0;}
-void yyerror (char *s) {}
-%}
-%%
-foobar : 'f' 'o' 'o' 'b' 'a' 'r' {};
-END
-
-cp lib/foo.y lib/bar.y
-
 cat >lib/src/x.c <<'EOF'
 #include <config.h>
 int lib (void)
diff --git a/tests/uninstall-fail.test b/tests/uninstall-fail.test
index a3e7a7a..14a843b 100755
--- a/tests/uninstall-fail.test
+++ b/tests/uninstall-fail.test
@@ -24,6 +24,11 @@
 
 set -e
 
+mkdir d
+: > d/f
+chmod a-w d || skip "cannot make directories unwritable"
+rm -f d/f && skip_ "can delete files from unwritable directories"
+
 cat >> configure.in << 'END'
 AC_OUTPUT
 END
@@ -46,9 +51,6 @@ mkdir $inst $inst/share
 : > $inst/share/foobar.txt
 
 chmod a-w $inst/share
-touch $inst/share/t && skip_ "cannot make directories unwritable"
-rm -f $inst/share/t
-
 $MAKE uninstall >output 2>&1 && { cat output; Exit 1; }
 cat output
 grep "rm: .*foobar\.txt" output
@@ -58,7 +60,8 @@ chmod a-rwx $inst/share
 
 $MAKE uninstall >output 2>&1 && { cat output; Exit 1; }
 cat output
-grep "cd: .*$inst/share" output
-
+# Some shells, like Solaris 10 /bin/sh and /bin/ksh, do not report
+# the name of the `cd' builtin upon a chdir error.
+$EGREP "(cd|sh): .*$inst/share" output
 
 :


hooks/post-receive
-- 
GNU Automake



reply via email to

[Prev in Thread] Current Thread [Next in Thread]