Separate checks on target overriding into multiple test scripts. * tests/overrid.test: Deleted, it's contents separated into ... * tests/override-suggest-local.test: ... this new test ... * tests/override-html.test: ... and this new test ... * tests/override-conditional-1.test: ... and this new test ... * tests/override-conditional-2.test: ... and this new test (still xfailing). * tests/Makefile.am (TESTS, XFAIL_TESTS): Updated. --- ChangeLog | 11 ++++++ tests/Makefile.am | 6 +++- tests/Makefile.in | 6 +++- tests/overrid.test | 67 ------------------------------------- tests/override-conditional-1.test | 56 +++++++++++++++++++++++++++++++ tests/override-conditional-2.test | 41 ++++++++++++++++++++++ tests/override-html.test | 35 +++++++++++++++++++ tests/override-suggest-local.test | 45 +++++++++++++++++++++++++ 8 files changed, 198 insertions(+), 69 deletions(-) delete mode 100755 tests/overrid.test create mode 100755 tests/override-conditional-1.test create mode 100755 tests/override-conditional-2.test create mode 100755 tests/override-html.test create mode 100755 tests/override-suggest-local.test
-*-*-*- It is this comment in the old `overrid.test' that suggested me a better organization and separation of the checks was in order: # Conditional overrides ought to be diagnosed, but it can't be done yet. # See the FIXME in Automake::Rule::define. Once this is fixed, the grep below # will fail. If you see the failure, it means you fixed Automake. Well done! # Just strip out the next '&& Exit 1' and this comment. grep ':.*overrides.*ps' stderr && Exit 1 The patch is based off of maint, and intended for master; OK to apply? Regards, Stefano
From ef1a629fa4405e7554543717f50f9b5fe1e9c0f4 Mon Sep 17 00:00:00 2001 From: Stefano Lattarini <stefano.lattar...@gmail.com> Date: Wed, 24 Nov 2010 15:01:31 +0100 Subject: [PATCH] Separate checks on target overriding into multiple test scripts. * tests/overrid.test: Deleted, its contents separated into ... * tests/override-suggest-local.test: ... this new test ... * tests/override-html.test: ... and this new test ... * tests/override-conditional-1.test: ... and this new test ... * tests/override-conditional-2.test: ... and this new test (still xfailing). * tests/Makefile.am (TESTS, XFAIL_TESTS): Updated. --- ChangeLog | 11 ++++++ tests/Makefile.am | 6 +++- tests/Makefile.in | 6 +++- tests/overrid.test | 67 ------------------------------------- tests/override-conditional-1.test | 56 +++++++++++++++++++++++++++++++ tests/override-conditional-2.test | 41 ++++++++++++++++++++++ tests/override-html.test | 35 +++++++++++++++++++ tests/override-suggest-local.test | 45 +++++++++++++++++++++++++ 8 files changed, 198 insertions(+), 69 deletions(-) delete mode 100755 tests/overrid.test create mode 100755 tests/override-conditional-1.test create mode 100755 tests/override-conditional-2.test create mode 100755 tests/override-html.test create mode 100755 tests/override-suggest-local.test diff --git a/ChangeLog b/ChangeLog index ffbeb69..67dddad 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,14 @@ +2010-11-25 Stefano Lattarini <stefano.lattar...@gmail.com> + + Separate checks on target overriding into multiple test scripts. + * tests/overrid.test: Deleted, its contents separated into ... + * tests/override-suggest-local.test: ... this new test ... + * tests/override-html.test: ... and this new test ... + * tests/override-conditional-1.test: ... and this new test ... + * tests/override-conditional-2.test: ... and this new test (still + xfailing). + * tests/Makefile.am (TESTS, XFAIL_TESTS): Updated. + 2010-11-21 Stefano Lattarini <stefano.lattar...@gmail.com> Tests: consistently use "|| Exit 1" after ". ./defs". diff --git a/tests/Makefile.am b/tests/Makefile.am index 5f1ab9e..dbed2c1 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -21,6 +21,7 @@ all.test \ auxdir2.test \ cond17.test \ gcj6.test \ +override-conditional-2.test \ txinfo5.test include $(srcdir)/parallel-tests.am @@ -542,7 +543,10 @@ output11.test \ output12.test \ output13.test \ output-order.test \ -overrid.test \ +override-conditional-1.test \ +override-conditional-2.test \ +override-html.test \ +override-suggest-local.test \ parallel-am.test \ parallel-am2.test \ parallel-am3.test \ diff --git a/tests/Makefile.in b/tests/Makefile.in index 140b178..863d9bb 100644 --- a/tests/Makefile.in +++ b/tests/Makefile.in @@ -277,6 +277,7 @@ all.test \ auxdir2.test \ cond17.test \ gcj6.test \ +override-conditional-2.test \ txinfo5.test parallel_tests = \ @@ -809,7 +810,10 @@ output11.test \ output12.test \ output13.test \ output-order.test \ -overrid.test \ +override-conditional-1.test \ +override-conditional-2.test \ +override-html.test \ +override-suggest-local.test \ parallel-am.test \ parallel-am2.test \ parallel-am3.test \ diff --git a/tests/overrid.test b/tests/overrid.test deleted file mode 100755 index df453ca..0000000 --- a/tests/overrid.test +++ /dev/null @@ -1,67 +0,0 @@ -#! /bin/sh -# Copyright (C) 2003, 2004, 2006 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/>. - -# Make sure automake -Woverride suggests using TARGET-local instead -# of TARGET when possible. - -. ./defs || Exit 1 - -set -e - -cat >> configure.in << 'END' -AM_CONDITIONAL([COND], [:]) -END - -cat > Makefile.am << 'END' -install: - : -installcheck: - : -html: - : -clean-am: - : - -if COND -ps: mine - : -endif -END - -$ACLOCAL -$AUTOMAKE -Wno-override -AUTOMAKE_fails -grep ':.*install-local' stderr && Exit 1 # There is no such thing as install-local -grep ':.*installcheck-local' stderr -grep ':.*html-local' stderr -# Make sure overriding *-am targets suggest using *-local, not *-am. -grep ':.*clean-am-local' stderr && Exit 1 -grep ':.*clean-local' stderr - -# Conditional overrides ought to be diagnosed, but it can't be done yet. -# See the FIXME in Automake::Rule::define. Once this is fixed, the grep below -# will fail. If you see the failure, it means you fixed Automake. Well done! -# Just strip out the next '&& Exit 1' and this comment. -grep ':.*overrides.*ps' stderr && Exit 1 - -# Test for another issue. Overriding html: should cause only one -# html: rule to be output. -test `grep '^html:' Makefile.in | wc -l` = 1 - -# ps: should be output in two conditions -test `grep '[^-]ps:' Makefile.in | wc -l` = 2 -grep '@cond_t...@ps: mine' Makefile.in -grep '@cond_fa...@ps: ps-am' Makefile.in diff --git a/tests/override-conditional-1.test b/tests/override-conditional-1.test new file mode 100755 index 0000000..fe0bbba --- /dev/null +++ b/tests/override-conditional-1.test @@ -0,0 +1,56 @@ + +#! /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/>. + +# Test for conditionally-defined overrides. + +. ./defs || Exit 1 + +set -e + +cat >> configure.in << 'END' +AM_CONDITIONAL([COND], [test x"$cond" = x"yes"]) +AC_OUTPUT +END + +cat > Makefile.am << 'END' +foobar: + : > $@ +if COND +ps: foobar + : +endif +END + +$ACLOCAL +$AUTOMAKE -Wno-override + +# "ps:" should be output in two conditions +test `grep '[^-]ps:' Makefile.in | wc -l` = 2 +grep '@cond_t...@ps: *foobar' Makefile.in +grep '@cond_fa...@ps: *ps-am' Makefile.in + +$AUTOCONF + +./configure cond=no +$MAKE ps +test ! -r foobar + +./configure cond=yes +$MAKE ps +test -f foobar + +: diff --git a/tests/override-conditional-2.test b/tests/override-conditional-2.test new file mode 100755 index 0000000..132b841 --- /dev/null +++ b/tests/override-conditional-2.test @@ -0,0 +1,41 @@ +#! /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/>. + +# Test that conditional overrides are diagnosed. +# This test is still xfailing; see the FIXME in Automake::Rule::define. +# Once that is fixed, the test should succeed. + +. ./defs || Exit 1 + +set -e + +cat >> configure.in << 'END' +AM_CONDITIONAL([COND], [:]) +END + +cat > Makefile.am << 'END' +if COND +all: + : +endif +END + +$ACLOCAL + +AUTOMAKE_fails +grep ':.*overrides.*all' stderr + +: diff --git a/tests/override-html.test b/tests/override-html.test new file mode 100755 index 0000000..baece42 --- /dev/null +++ b/tests/override-html.test @@ -0,0 +1,35 @@ +#! /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/>. + +# Test that overriding `html' target causes only one "html:" rule to +# be output. + +. ./defs || Exit 1 + +set -e + +cat > Makefile.am << 'END' +html: + : +END + +$ACLOCAL +$AUTOMAKE -Wno-override + +# Overriding `html' should cause only one "html:" rule to be output. +test `grep '^html:' Makefile.in | wc -l` = 1 + +: diff --git a/tests/override-suggest-local.test b/tests/override-suggest-local.test new file mode 100755 index 0000000..851393a --- /dev/null +++ b/tests/override-suggest-local.test @@ -0,0 +1,45 @@ +#! /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/>. + +# Make sure automake -Woverride suggests using TARGET-local instead +# of TARGET when possible. + +. ./defs || Exit 1 + +set -e + +cat > Makefile.am << 'END' +install: + : +installcheck: + : +html: + : +clean-am: + : +END + +$ACLOCAL +$AUTOMAKE -Wno-override +AUTOMAKE_fails +grep ':.*install-local' stderr && Exit 1 # There is no such thing as install-local +grep ':.*installcheck-local' stderr +grep ':.*html-local' stderr +# Make sure overriding *-am targets suggest using *-local, not *-am. +grep ':.*clean-am-local' stderr && Exit 1 +grep ':.*clean-local' stderr + +: -- 1.7.1