From: Stefano Lattarini <stefano.lattar...@gmail.com> In view of soon-to-follow refactorings (still in the pursuit of a fix for Automake bug#7669 a.k.a. PR/547), we add some more tests on AUTOMAKE_OPTIONS support, to prevent obvious regressions.
* tests/amopts-indirect.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-indirect.test | 53 +++++++++++++++++++++++++++++ tests/amopts-location.test | 80 ++++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 147 insertions(+), 0 deletions(-) create mode 100755 tests/amopts-indirect.test create mode 100755 tests/amopts-location.test diff --git a/ChangeLog b/ChangeLog index 69deb04..67e7be0 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,15 @@ 2010-12-20 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), we add some more tests + on AUTOMAKE_OPTIONS support, to prevent obvious regressions. + * tests/amopts-indirect.test: New test. + * tests/amopts-location.test: Likewise. + * tests/Makefile.am (TESTS): Update. + +2010-12-20 Stefano Lattarini <stefano.lattar...@gmail.com> + Warnings win over strictness in AM_INIT_AUTOMAKE. This change ensures that, for what concerns the options specified in AM_INIT_AUTOMAKE, explicitly-defined warnings always take diff --git a/tests/Makefile.am b/tests/Makefile.am index 307cf5f..3ced8e5 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -134,6 +134,8 @@ alpha2.test \ amassign.test \ ammissing.test \ amopt.test \ +amopts-indirect.test \ +amopts-location.test \ amsubst.test \ ansi.test \ ansi2.test \ diff --git a/tests/Makefile.in b/tests/Makefile.in index 2e265c2..cec24e4 100644 --- a/tests/Makefile.in +++ b/tests/Makefile.in @@ -397,6 +397,8 @@ alpha2.test \ amassign.test \ ammissing.test \ amopt.test \ +amopts-indirect.test \ +amopts-location.test \ amsubst.test \ ansi.test \ ansi2.test \ diff --git a/tests/amopts-indirect.test b/tests/amopts-indirect.test new file mode 100755 index 0000000..dccc888 --- /dev/null +++ b/tests/amopts-indirect.test @@ -0,0 +1,53 @@ +#! /bin/sh +# Copyright (C) 2010 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 indirections. + +. ./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' +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 + +: diff --git a/tests/amopts-location.test b/tests/amopts-location.test new file mode 100755 index 0000000..7c3fbc6 --- /dev/null +++ b/tests/amopts-location.test @@ -0,0 +1,80 @@ +#! /bin/sh +# Copyright (C) 2010 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_fails + +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 + +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 + +: -- 1.7.2.3