This is [PATCH 08/10] of the older series, with the various suggestions incorporated. It has been already given an ACK, so a new review shouldn't be required. The amended patch is attached anywawy, for completeness.
Regards, Stefano
From 3f5fcec6c76763102356dd2516452d519bac0cb7 Mon Sep 17 00:00:00 2001 From: Stefano Lattarini <stefano.lattar...@gmail.com> Date: Mon, 20 Dec 2010 16:30:10 +0100 Subject: [PATCH 5/9] Add more tests about AUTOMAKE_OPTIONS. In view of soon-to-follow refactorings (still in the pursuit of a fix for Automake bug#7669 a.k.a. PR/547), add some more tests on AUTOMAKE_OPTIONS support, to prevent obvious regressions. * tests/amopts-variable-expansion.test: New test. * tests/amopts-location.test: Likewise. * tests/Makefile.am (TESTS): Update. --- ChangeLog | 10 ++++ tests/Makefile.am | 2 + tests/Makefile.in | 2 + tests/amopts-location.test | 85 ++++++++++++++++++++++++++++++++++ tests/amopts-variable-expansion.test | 54 +++++++++++++++++++++ 5 files changed, 153 insertions(+), 0 deletions(-) create mode 100755 tests/amopts-location.test create mode 100755 tests/amopts-variable-expansion.test diff --git a/ChangeLog b/ChangeLog index 44ea412..dd08207 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,15 @@ 2011-01-02 Stefano Lattarini <stefano.lattar...@gmail.com> + Add more tests about AUTOMAKE_OPTIONS. + In view of soon-to-follow refactorings (still in the pursuit of a + fix for Automake bug#7669 a.k.a. PR/547), add some more tests on + AUTOMAKE_OPTIONS support, to prevent obvious regressions. + * tests/amopts-variable-expansion.test: New test. + * tests/amopts-location.test: Likewise. + * tests/Makefile.am (TESTS): Update. + +2011-01-02 Stefano Lattarini <stefano.lattar...@gmail.com> + For PR automake/547: Warnings win over strictness in AM_INIT_AUTOMAKE. This change ensures that, for what concerns the options specified diff --git a/tests/Makefile.am b/tests/Makefile.am index 0751589..04a175c 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -134,6 +134,8 @@ alpha2.test \ amassign.test \ ammissing.test \ amopt.test \ +amopts-location.test \ +amopts-variable-expansion.test \ amsubst.test \ ansi.test \ ansi2.test \ diff --git a/tests/Makefile.in b/tests/Makefile.in index 481a101..dde685d 100644 --- a/tests/Makefile.in +++ b/tests/Makefile.in @@ -397,6 +397,8 @@ alpha2.test \ amassign.test \ ammissing.test \ amopt.test \ +amopts-location.test \ +amopts-variable-expansion.test \ amsubst.test \ ansi.test \ ansi2.test \ diff --git a/tests/amopts-location.test b/tests/amopts-location.test new file mode 100755 index 0000000..c6d06e9 --- /dev/null +++ b/tests/amopts-location.test @@ -0,0 +1,85 @@ +#! /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/>. + +# Check that errors about AUTOMAKE_OPTIONS refers to correct +# locations. + +. ./defs || Exit 1 + +set -e + +cat > Makefile.am <<'END' +# comment \ +# continued +include Makefile0.am +END + +cat > Makefile0.am <<'END' +#1 +#2 +#3 +include Makefile1.am +END + +cat > Makefile1.am <<'END' +AUTOMAKE_OPTIONS = tar-pax +# comment +END + +cat > Makefile2.am <<'END' +## automake comment +bar: + : +line = \ +continued +AUTOMAKE_OPTIONS = tar-ustar +END + +cat > Makefile3.am <<'END' +quux = a +AUTOMAKE_OPTIONS = +quux += b +AUTOMAKE_OPTIONS += tar-v7 +zardoz = 1 +END + +cat >>configure.in <<'END' +AC_CONFIG_FILES([Makefile2 Makefile3]) +END + +$ACLOCAL +# Automake options 'tar-v7', 'tar-ustar' and 'tar-pax' can only be used +# as argument to AM_INIT_AUTOMAKE, and not in AUTOMAKE_OPTIONS. +AUTOMAKE_fails + +# Check that all the expected line numbers are correctly reported +# in automake warning/error messages. +grep '^Makefile1\.am:1:.*tar-pax' stderr +grep '^Makefile2\.am:6:.*tar-ustar' stderr +grep '^Makefile3\.am:2:.*tar-v7' stderr +grep '^Makefile\.am:3:.*Makefile0\.am.*included from here' stderr +grep '^Makefile0\.am:4:.*Makefile1\.am.*included from here' stderr + +# And also check that no botched line number is reported. +cat stderr \ + | grep -v '^Makefile\.am:3:' \ + | grep -v '^Makefile0\.am:4:' \ + | grep -v '^Makefile1\.am:1:' \ + | grep -v '^Makefile2\.am:6:' \ + | grep -v '^Makefile3\.am:2:' \ + | grep . && Exit 1 + +: diff --git a/tests/amopts-variable-expansion.test b/tests/amopts-variable-expansion.test new file mode 100755 index 0000000..937cfc5 --- /dev/null +++ b/tests/amopts-variable-expansion.test @@ -0,0 +1,54 @@ +#! /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/>. + +# Check that AUTOMAKE_OPTIONS support variable expansion. + +. ./defs || Exit 1 + +set -e + +# We want complete control over automake options. +AUTOMAKE=$original_AUTOMAKE + +cat > configure.in <<END +AC_INIT([$me], [1.0]) +AM_INIT_AUTOMAKE([-Wall -Werror gnu]) +AC_CONFIG_FILES([Makefile]) +END + +cat > Makefile.am <<'END' +# The following should expand to `-Wnone -Wno-error foreign -Wportability'. +AUTOMAKE_OPTIONS = $(foo) foreign +AUTOMAKE_OPTIONS += ${bar} +foo = $(foo1) +foo1 = ${foo2} +foo2 = -Wnone +foo2 += $(foo3) +foo3 = -Wno-error +bar = -Wportability +## This will give a warning with `-Wportability' +zardoz := +## This would give a warning with `-Woverride'. +install: +END + +$ACLOCAL +AUTOMAKE_run 0 +grep '^Makefile\.am:.*:=.*not portable' stderr +grep README stderr && Exit 1 +$EGREP '(install|override)' stderr && Exit 1 + +: -- 1.7.2.3