2011-11-10 Stefano Lattarini <stefano.lattarini@gmail.com>
+ tests: avoid a spurious failure of 'ltinit.test' MinGW
+ * tests/ltinit.test: Be laxer in grepping configure output, to
+ avoid spurious failures on systems which lack POSIX dynamic
+ linking (e.g., MinGW), or when cross-compiling for such systems.
+ See also commit `v1.11-855-ge9e5d4a'.
+ Report and suggestion from Peter Rosin.
+
+ 2011-11-08 Stefano Lattarini <stefano.lattarini@gmail.com>
+
+ tests: testsuite is now safe to run with dmake in parallel mode
+ * tests/defs.in: Unset variables DMAKE_CHILD, DMAKE_DEF_PRINTED
+ and DMAKE_MAX_JOBS, which are exported by Solaris dmake when run
+ in parallel mode, and which might confuse make processes spawned
+ by our testsuite.
+
+ 2011-11-08 Stefano Lattarini <stefano.lattarini@gmail.com>
+
+ tests: fix spurious failures w.r.t. parallel make and colorization
+ * tests/color2.test: Skip the test if the $MAKE program fails to
+ consider the standard output as a tty when spawned by `expect'.
+ This is required for make implementations, like FreeBSD make and
+ Solaris dmake, that redirect the output of recipes to temporary
+ files or pipes when run in parallel mode. Since we are at it,
+ simplify the detection of a working `expect' program, and throw
+ in other minor simplifications.
+
+ 2011-11-07 Stefano Lattarini <stefano.lattarini@gmail.com>
+
+ tests: fix spurious failure in 'distcheck-override-infodir.test'
+ * tests/distcheck-override-infodir.test ($required): Add
+ 'install-info'.
+
+ 2011-11-07 Stefano Lattarini <stefano.lattarini@gmail.com>
+
+ tests: avoid another failure of 'uninstall-fail.test' on Solaris
+ * tests/uninstall-fail.test: On Solaris 10, if `/bin/rm' is run
+ with the `-f' option, it doesn't print any error message when
+ failing to remove a file (due to e.g., "Permission denied").
+ Yikes. Cater to this incompatibility, by relaxing the test when
+ a faulty `rm' is detected.
+
+ 2011-11-10 Stefano Lattarini <stefano.lattarini@gmail.com>
+
+ tests: various minor tweakings, mostly related to AM_PROG_AR
+ * tests/alloca2.test: Ensure we don't experience a spurious failure
+ due to a missing `AM_PROG_AR' macro or a missing `ar-lib' auxiliary
+ script.
+ * tests/libtool4.test: Likewise.
+ * tests/ldadd.test: Likewise. Since we are at it, make grepping of
+ automake stderr stricter.
+ * tests/reqd2.test: Likewise.
+ * tests/pr211.test: Ensure automake fails also with `-Wnone', since
+ the error we are testing for is an hard error, not a mere warning.
+ * tests/syntax.test: Likewise, and ensure we don't fail to other
+ errors by removing use of `lib_LTLIBRARIES' in Makefile.am. Since
+ we are at it, make grepping of automake stderr stricter.
+
+ 2011-11-05 Stefano Lattarini <stefano.lattarini@gmail.com>
+
+ ar-lib: fix configure output for "unrecognized archiver interface"
+ * m4/ar-lib.m4: Ensure that, even when an error is hit while trying
+ to determine the archiver interface kind, the "checking archiver
+ interface" message from configure is properly terminated before
+ an error message is printed, to avoid slightly garbled output.
+ * tests/ar4.test: Enhance.
+ * tests/ar5.test: Likewise.
+
+ 2011-11-04 Stefano Lattarini <stefano.lattarini@gmail.com>
+
+ warnings: fix buglets for portability warnings
+ * lib/Automake/ChannelDefs.pm (switch_warning): Ensure the
+ correct implications and inter-dependencies between warnings
+ in the categories `portability', `extra-portability' and
+ `recursive-portability' are respected. Also add detailed
+ explicative comments, and references to the relevant tests.
+ * tests/dollarvar2.test: Update and extend. Also, remove
+ some unnecessary uses of `--force' option in automake calls.
+ * tests/extra-portability3.test: New test.
+ * tests/Makefile.am (TESTS): Add it.
+
+ 2011-11-04 Stefano Lattarini <stefano.lattarini@gmail.com>
+
+ tests: extend tests on 'extra-portability' warning category
+ * tests/extra-portability.test: Redefine `$AUTOMAKE' to ensure we
+ have complete control over the automake options. Extend by using
+ also a setup where no `portability' warning is present (only an
+ `extra-portability' warning is). Other minor extensions. Remove
+ some redundant, verbose comments about the expected diagnostic.
+
++2011-11-10 Stefano Lattarini <stefano.lattarini@gmail.com>
++
+ tests: fix broken backport of tests on `extra-portability' warnings
+ * tests/extra-portability2.test: Ensure all the automake invocations
+ have the warnings in the `extra-portability' category enabled.
+ Report by Peter Rosin.
+
+2011-11-08 Peter Rosin <peda@lysator.liu.se>
+
+ tests: fix broken backport of AM_PROG_AR tests
+ * tests/ar-lib3.test: Explicitly request -Wextra-portability
+ in order to trigger the expected error.
+ * tests/ar-lib4.test: Likewise.
+
+2011-11-04 Stefano Lattarini <stefano.lattarini@gmail.com>
+
+ warnings: 'extra-portability' category is not implied by '-Wall'
+ This change is only intended for the 1.11.x series. In automake
+ 1.12, `-Wall' will be meant to enable `-Wextra-portability'.
+ * lib/Automake/ChannelDefs.pm (switch_warning): Do not enable
+ extra-portability warnings when `-Wall' is given. Use ...
+ ($have_extra_portability ): ... this new global variable.
+ Add a trailing "1;" to avoid spurious errors upon the importing
+ of this module.
+ * tests/extra-portability.test: Update and extend.
+ * NEWS: Update.
+
2011-11-03 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: various minor tweakings, mostly related to AM_PROG_AR
elsif (channel_type ($cat) eq 'warning')
{
setup_channel $cat, silent => $has_no;
- #
- # Handling of portability warnings is trickier. For relevant tests,
- # see `dollarvar2', `extra-portability' and `extra-portability3'.
- #
- # -Wportability-recursive and -Wno-portability-recursive should not
- # have any effect on other 'portability' or 'extra-portability'
- # warnings, so there's no need to handle them separately or ad-hoc.
- #
- if ($cat eq 'extra-portability' && ! $has_no) # -Wextra-portability
+ setup_channel 'portability-recursive', silent => $has_no
+ if $cat eq 'portability';
+ if ($cat eq 'portability' && $has_no)
{
- # -Wextra-portability must enable 'portability' and
- # 'portability-recursive' warnings.
- setup_channel 'portability', silent => 0;
- setup_channel 'portability-recursive', silent => 0;
+ setup_channel 'extra-portability', silent => 1;
+ $have_extra_portability = 0;
}
- if ($cat eq 'portability') # -Wportability or -Wno-portability
+ if ($cat eq 'extra-portability' && ! $has_no)
{
- if ($has_no) # -Wno-portability
- {
- # -Wno-portability must disable 'extra-portability' and
- # 'portability-recursive' warnings.
- setup_channel 'portability-recursive', silent => 1;
- setup_channel 'extra-portability', silent => 1;
- }
- else # -Wportability
- {
- # -Wportability must enable 'portability-recursive'
- # warnings. But it should have no influence over the
- # 'extra-portability' warnings.
- setup_channel 'portability-recursive', silent => 0;
- }
+ setup_channel 'portability', silent => 0;
++ setup_channel 'portability-recursive', silent => 0;
+ $have_extra_portability = 1;
}
}
else
libfoo_a_SOURCES = sub/foo.c
END
- $ACLOCAL
+ # Sanity check: extra-portability warnings causes the expected error.
+ AUTOMAKE_fails -Wextra-portability
+ grep 'requires.*AM_PROG_AR' stderr
+
+ # Warnings in extra-portability category are not enabled by default.
+ $AUTOMAKE
-# -Wall enables extra-portability.
-AUTOMAKE_fails -Wall
-grep 'requires.*AM_PROG_AR' stderr
-
-# Disabling portability disables extra-portability as well.
-$AUTOMAKE -Wextra-portability -Wno-portability
-$AUTOMAKE -Wall -Wno-portability
+# `-Wall' does not enable extra-portability warnings.
+$AUTOMAKE -Wall -Werror
-#
-# Now, a setup where also a "simple" portability warning is present.
-#
+# Enabling extra-portability works.
+AUTOMAKE_fails -Wnone -Wextra-portability
+grep 'requires.*AM_PROG_AR' stderr
+# Disabling portability disables extra-portability.
+$AUTOMAKE -Wno-portability -Wall
+$AUTOMAKE -Wextra-portability -Wno-portability -Wall
-# Per-target flags require the use of AM_PROG_CC_C_O in configure.ac.
echo libfoo_a_CPPFLAGS = -Dwhatever >> Makefile.am
-# Enabling extra-portability enables portability as well ...
-AUTOMAKE_fails -Wextra-portability
+# Enabling extra-portability enables portability.
+AUTOMAKE_fails -Wnone -Wextra-portability
+# The expected diagnostic is
+# Makefile.am:2: compiling `foo.c' with per-target flags requires `AM_PROG_CC_C_O' in `configure.in'
+# .../lib/am/library.am: `libfoo.a': linking libraries using a non-POSIX
+# .../lib/am/library.am: archiver requires `AM_PROG_AR' in `configure.in'
+# Makefile.am:1: while processing library `libfoo.a'
grep 'requires.*AM_PROG_CC_C_O' stderr
grep 'requires.*AM_PROG_AR' stderr
-# ... even if it had been previously disabled.
-AUTOMAKE_fails -Wno-portability -Wextra-portability
+
+# `-Wall' does not reset extra portability warnings to their
+# default (i.e., disabled).
+AUTOMAKE_fails -Wextra-portability -Wall
grep 'requires.*AM_PROG_CC_C_O' stderr
grep 'requires.*AM_PROG_AR' stderr
grep 'requires.*AM_PROG_CC_C_O' stderr
grep 'requires.*AM_PROG_AR' stderr && Exit 1
+# `-Wall' does not set extra portability warnings if they have
+# been previously disabled.
+AUTOMAKE_fails -Wno-extra-portability -Wall
+grep 'requires.*AM_PROG_CC_C_O' stderr
+grep 'requires.*AM_PROG_AR' stderr && Exit 1
+
# Enabling portability does not enable extra-portability.
AUTOMAKE_fails -Wnone -Wportability
- # The expected diagnostic is
- # Makefile.am:2: compiling `foo.c' with per-target flags requires `AM_PROG_CC_C_O' in `configure.in'
- # Makefile.am:1: while processing library `libfoo.a'
grep 'requires.*AM_PROG_CC_C_O' stderr
grep 'requires.*AM_PROG_AR' stderr && Exit 1