diff options
-rw-r--r-- | ChangeLog | 41 | ||||
-rw-r--r-- | HACKING | 4 | ||||
-rw-r--r-- | NEWS | 4 | ||||
-rw-r--r-- | THANKS | 2 | ||||
-rw-r--r-- | lib/Automake/tests/Makefile.in | 2 | ||||
-rw-r--r-- | lib/am/check.am | 7 | ||||
-rw-r--r-- | lib/am/java.am | 2 | ||||
-rw-r--r-- | tests/Makefile.am | 1 | ||||
-rw-r--r-- | tests/Makefile.in | 20 | ||||
-rwxr-xr-x | tests/check-concurrency-bug9245.test | 62 | ||||
-rwxr-xr-x | tests/java-empty-classpath.test | 90 |
11 files changed, 219 insertions, 16 deletions
@@ -1,3 +1,44 @@ +2011-08-17 Stefano Lattarini <stefano.lattarini@gmail.com> + + * THANKS (Daniel Richard G.): Update e-mail address. + +2011-08-16 Daniel Richard G. <skunk@iskunk.org> (tiny change) + Stefano Lattarini <stefano.lattarini@gmail.com> + + java: avoid compilation errors when CLASSPATH is empty + * lib/am/java.am (CLASSPATH_ENV): When redefining `$CLASSPATH', + do not append an empty component in case the previous value of + CLASSPATH is empty or unset. + * tests/java-empty-classpath.test: New test. + * tests/Makefile.am (TESTS): Update. + Fixes automake bug#9306. + +2011-08-16 Stefano Lattarini <stefano.lattarini@gmail.com> + + parallel-tests: no more spurious successes for FreeBSD make + Work around a bug of FreeBSD make bug that was causing the + automake-generated "check" target to complete with success + even if some tests failed; this happened only when FreeBSD + make was run in concurrent mode (as in, e.g., "make -j2 + check"). The bug is not present in NetBSD make. + This change fixes automake bug#9245: + <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=9245> + See also FreeBSD PR bin/159730: + <http://www.freebsd.org/cgi/query-pr.cgi?pr=159730> + * lib/am/check.am [%?PARALLEL_TESTS%] $(TEST_SUITE_LOG): Use a + more "safe" (and apparently redundant) idiom to exit with error, + so that the non-zero exit status is picked up also by FreeBSD + make when it's running in concurrent mode. + * NEWS: Update. + * tests/check-concurrency-bug9245.test: New test. + * tests/Makefile.am (TESTS): Update. + +2011-08-11 Stefano Lattarini <stefano.lattarini@gmail.com> + + hacking: we now require autoconf 2.68 + * HACKING ("Working in git"): Use autoconf and autom4te 2.68, + not 2.67, in the examples. + 2011-08-09 Stefano Lattarini <stefano.lattarini@gmail.com> coverage: possible infinite recursion in the test harness @@ -102,8 +102,8 @@ not installed as "autoconf", pass it explicitly (along with the accompanying "autom4te") when calling `bootstrap' and `configure'. For example: - $ AUTOCONF=autoconf2.67 AUTOM4TE=autom4te2.67 ./bootstrap - $ ./configure AUTOCONF=autoconf2.67 AUTOM4TE=autom4te2.67 + $ AUTOCONF=autoconf2.68 AUTOM4TE=autom4te2.68 ./bootstrap + $ ./configure AUTOCONF=autoconf2.68 AUTOM4TE=autom4te2.68 * Dependent files aclocal.m4, configure and Makefile.in in all directories should be up to date in the git repository, so that @@ -64,7 +64,9 @@ Bugs fixed in 1.11a: * Bugs introduced by 1.11: - The `parallel-tests' test driver works around a GNU make 3.80 bug with - trailing white space in the test list (`TESTS = foo $(EMPTY)'). + trailing white space in the test list (`TESTS = foo $(EMPTY)'), and + does not report spurious successes when used with concurrent FreeBSD + make (e.g., "make check -j3"). - The `silent-rules' option now also silences all compile rules if dependency tracking is disabled. Also, when `silent-rules' is not used, the output from @@ -67,7 +67,7 @@ Dalibor Topic robilad@kaffe.org danbp danpb@nospam.postmaster.co.uk Daniel Jacobowitz drow@false.org Daniel Kahn Gillmor dkg@fifthhorseman.net -Daniel Richard G. danielg@teragram.com +Daniel Richard G. skunk@iskunk.org Debarshi Ray rishi@gnu.org Dave Brolley brolley@redhat.com Dave Korn dave.korn.cygwin@googlemail.com diff --git a/lib/Automake/tests/Makefile.in b/lib/Automake/tests/Makefile.in index 67a074775..967a95286 100644 --- a/lib/Automake/tests/Makefile.in +++ b/lib/Automake/tests/Makefile.in @@ -431,7 +431,7 @@ $(TEST_SUITE_LOG): $(TEST_LOGS) col="$$red"; \ fi; \ echo "$$msg" | $(am__text_box) "col=$$col" "std=$$std"; \ - $$exit + $$exit || exit 1 # Run all the tests. check-TESTS: diff --git a/lib/am/check.am b/lib/am/check.am index 82ba7ce8c..a65d1fe79 100644 --- a/lib/am/check.am +++ b/lib/am/check.am @@ -227,7 +227,12 @@ $(TEST_SUITE_LOG): $(TEST_LOGS) col="$$red"; \ fi; \ echo "$$msg" | $(am__text_box) "col=$$col" "std=$$std"; \ - $$exit +## The use of "exit 1" below is required to work around a FreeBSD make bug +## (present only when running in concurrent mode). See automake bug#9245: +## <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=9245> +## and FreeBSD PR bin/159730: +## <http://www.freebsd.org/cgi/query-pr.cgi?pr=159730>. + $$exit || exit 1 RECHECK_LOGS = $(TEST_LOGS) diff --git a/lib/am/java.am b/lib/am/java.am index d6eb45585..604df2229 100644 --- a/lib/am/java.am +++ b/lib/am/java.am @@ -21,7 +21,7 @@ ## ---------- ## JAVAC = javac -CLASSPATH_ENV = CLASSPATH=$(JAVAROOT):$(srcdir)/$(JAVAROOT):$$CLASSPATH +CLASSPATH_ENV = CLASSPATH=$(JAVAROOT):$(srcdir)/$(JAVAROOT)$${CLASSPATH:+":$$CLASSPATH"} JAVAROOT = $(top_builddir) class%DIR%.stamp: $(%DIR%_JAVA) diff --git a/tests/Makefile.am b/tests/Makefile.am index 833dc7a26..850240974 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -239,6 +239,7 @@ check12.test \ check-exported-srcdir.test \ check-tests-in-builddir.test \ check-tests_environment.test \ +check-concurrency-bug9245.test \ tests-environment-backcompat.test \ checkall.test \ clean.test \ diff --git a/tests/Makefile.in b/tests/Makefile.in index ede80e6eb..5b5714123 100644 --- a/tests/Makefile.in +++ b/tests/Makefile.in @@ -300,14 +300,14 @@ XFAIL_TESTS = all.test auxdir2.test cond17.test gcj6.test \ override-conditional-2.test pr8365-remake-timing.test \ yacc-dist-nobuild-subdir.test txinfo5.test \ $(instspc_xfail_tests) -parallel_tests = backcompat5-p.test check-exported-srcdir-p.test \ - check-tests-in-builddir-p.test check-tests_environment-p.test \ - check-p.test check10-p.test check11-p.test check12-p.test \ - check2-p.test check3-p.test check4-p.test check5-p.test \ - check6-p.test check7-p.test check8-p.test check9-p.test \ - color-p.test color2-p.test comment9-p.test dejagnu-p.test \ - exeext4-p.test maken3-p.test maken4-p.test \ - posixsubst-tests-p.test +parallel_tests = backcompat5-p.test check-concurrency-bug9245-p.test \ + check-exported-srcdir-p.test check-tests-in-builddir-p.test \ + check-tests_environment-p.test check-p.test check10-p.test \ + check11-p.test check12-p.test check2-p.test check3-p.test \ + check4-p.test check5-p.test check6-p.test check7-p.test \ + check8-p.test check9-p.test color-p.test color2-p.test \ + comment9-p.test dejagnu-p.test exeext4-p.test maken3-p.test \ + maken4-p.test posixsubst-tests-p.test instspc_tests = instspc-squote-build.test instspc-squote-install.test \ instspc-dquote-build.test instspc-dquote-install.test \ instspc-bquote-build.test instspc-bquote-install.test \ @@ -512,6 +512,7 @@ check12.test \ check-exported-srcdir.test \ check-tests-in-builddir.test \ check-tests_environment.test \ +check-concurrency-bug9245.test \ tests-environment-backcompat.test \ checkall.test \ clean.test \ @@ -1474,7 +1475,7 @@ $(TEST_SUITE_LOG): $(TEST_LOGS) col="$$red"; \ fi; \ echo "$$msg" | $(am__text_box) "col=$$col" "std=$$std"; \ - $$exit + $$exit || exit 1 # Run all the tests. check-TESTS: @@ -1675,6 +1676,7 @@ uninstall-am: pdf-am ps ps-am recheck recheck-html uninstall uninstall-am backcompat5-p.log: backcompat5.test +check-concurrency-bug9245-p.log: check-concurrency-bug9245.test check-exported-srcdir-p.log: check-exported-srcdir.test check-tests-in-builddir-p.log: check-tests-in-builddir.test check-tests_environment-p.log: check-tests_environment.test diff --git a/tests/check-concurrency-bug9245.test b/tests/check-concurrency-bug9245.test new file mode 100755 index 000000000..e5dd1535b --- /dev/null +++ b/tests/check-concurrency-bug9245.test @@ -0,0 +1,62 @@ +#! /bin/sh +# Copyright (C) 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 +# 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/>. + +# Look for a bug where FreeBSD make in concurrent mode reported success +# even when the Automake-generated parallel testsuite harness failed. +# See automake bug#9245. + +. ./defs || Exit 1 + +cat >> configure.in << 'END' +AC_OUTPUT +END + +cat > Makefile.am << 'END' +TESTS = foo.test bar.test +END + +cat > foo.test <<'END' +#!/bin/sh +exit 1 +END +chmod a+x foo.test + +cp foo.test bar.test + +$ACLOCAL +$AUTOCONF +$AUTOMAKE -a + +./configure + +# Some make implementations don't grok the `-j' option. +$MAKE -j1 || Exit 77 + +for j in '' -j1 -j2; do + $MAKE $j check && Exit 1 + TESTS=foo.test $MAKE $j -e check && Exit 1 + if test x"$parallel_tests" = x"yes"; then + $MAKE $j recheck && Exit 1 + TEST_LOGS=foo.log $MAKE $j -e check && Exit 1 + rm -f test-suite.log + $MAKE $j test-suite.log && Exit 1 + test -f test-suite.log || Exit 1 + else + : # For shells with buggy 'set -e'. + fi +done + +: diff --git a/tests/java-empty-classpath.test b/tests/java-empty-classpath.test new file mode 100755 index 000000000..230bb7cd3 --- /dev/null +++ b/tests/java-empty-classpath.test @@ -0,0 +1,90 @@ +#! /bin/sh +# Copyright (C) 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 +# 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/>. + +# Java compilation works also when CLASSPATH is unset or empty at +# compilation time. See automake bug#9306. + +required=javac +. ./defs || Exit 1 + +set -e + +cat >> configure.in <<'END' +AC_CONFIG_SRCDIR([org/gnu/bug/Library.java]) +AC_CONFIG_FILES([ + org/Makefile + org/gnu/Makefile + org/gnu/bug/Makefile +]) +AC_OUTPUT +END + +mkdir org org/gnu org/gnu/bug +cat > Makefile.am <<END +CLEANFILES = *.class +SUBDIRS = org +END +echo SUBDIRS = gnu > org/Makefile.am +echo SUBDIRS = bug > org/gnu/Makefile.am +cat > org/gnu/bug/Makefile.am <<'END' +JAVAROOT = ../../.. +dist_noinst_JAVA = Library.java Application.java +END + +cat > org/gnu/bug/Library.java <<'END' +package org.gnu.bug; +public class Library +{ + public Library () + { + // Nothing to do. + } + public static void doSomethingUseful (String arg) + { + System.out.println (arg); + } +} +END + +cat > org/gnu/bug/Application.java <<'END' +import org.gnu.bug.*; +public class Application +{ + public static void main (String args[]) + { + Library lib = new Library (); + lib.doSomethingUseful ("PLUGH"); + } +} +END + +$ACLOCAL +$AUTOCONF +$AUTOMAKE +./configure + +unset CLASSPATH || : +$MAKE +$MAKE clean + +CLASSPATH=''; export CLASSPATH +$MAKE +$MAKE clean + +unset CLASSPATH || : +$MAKE distcheck + +: |