From 574df3f633c9c8c7eb07c280c47ce959fc65fc5f Mon Sep 17 00:00:00 2001 From: Ralf Wildenhues Date: Thu, 29 Mar 2007 23:02:05 +0000 Subject: [PATCH] * automake.in (handle_tests): Rewrite XFAIL_TESTS just like TESTS, appending $(EXEEXT), so that matching continues to work on w32. * NEWS: Mention this. * doc/automake.texi (EXEEXT, Extending): Update. * tests/check7.test: New test. * tests/Makefile.am: Adjust. Bug report by Ed Hartnett. --- ChangeLog | 11 ++++++++ NEWS | 4 +++ automake.in | 3 ++ doc/automake.texi | 16 +++++------ doc/stamp-vti | 4 +-- doc/version.texi | 4 +-- tests/Makefile.am | 1 + tests/Makefile.in | 1 + tests/check7.test | 70 +++++++++++++++++++++++++++++++++++++++++++++++ 9 files changed, 102 insertions(+), 12 deletions(-) create mode 100755 tests/check7.test diff --git a/ChangeLog b/ChangeLog index 811bc9a53..4579c0521 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,14 @@ +2007-03-30 Ralf Wildenhues + + * automake.in (handle_tests): Rewrite XFAIL_TESTS just like + TESTS, appending $(EXEEXT), so that matching continues to work + on w32. + * NEWS: Mention this. + * doc/automake.texi (EXEEXT, Extending): Update. + * tests/check7.test: New test. + * tests/Makefile.am: Adjust. + Bug report by Ed Hartnett. + 2007-03-30 Ralf Wildenhues * m4/depout.m4 (_AM_OUTPUT_DEPENDENCY_COMMANDS): Again search diff --git a/NEWS b/NEWS index 19ee8b3b5..95b6cfe76 100644 --- a/NEWS +++ b/NEWS @@ -25,6 +25,10 @@ Bugs fixed in 1.10a: - Fix output of dummy dependency files in presence of post-processed Makefile.in's again, but also cope with long lines. + + - $(EXEEXT) is automatically appended to filenames of XFAIL_TESTS + that have been declared as programs in the same Makefile. + This is for consistency with the analogous change to TESTS in 1.10. New in 1.10: diff --git a/automake.in b/automake.in index 1f8bcef94..9d045593e 100755 --- a/automake.in +++ b/automake.in @@ -4605,7 +4605,10 @@ sub handle_tests $output_rules .= &file_contents ('check', new Automake::Location); # Tests that are known programs should have $(EXEEXT) appended. + # For matching purposes, we need to adjust XFAIL_TESTS as well. append_exeext { exists $known_programs{$_[0]} } 'TESTS'; + append_exeext { exists $known_programs{$_[0]} } 'XFAIL_TESTS' + if (var ('XFAIL_TESTS')); } } diff --git a/doc/automake.texi b/doc/automake.texi index debc51b04..3ca707c45 100644 --- a/doc/automake.texi +++ b/doc/automake.texi @@ -14,7 +14,7 @@ This manual is for @acronym{GNU} Automake (version @value{VERSION}, Makefiles from template files. Copyright @copyright{} 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -2003, 2004, 2005, 2006 Free Software Foundation, Inc. +2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc. @quotation Permission is granted to copy, distribute and/or modify this document @@ -6572,10 +6572,10 @@ bin_PROGRAMS = liver$(EXEEXT) The targets Automake generates are likewise given the @samp{$(EXEEXT)} extension. -The variable @code{TESTS} (@pxref{Tests}) is also rewritten if it -contains filenames that have been declared as programs in the same -@file{Makefile}. (This is mostly useful when some programs from -@code{check_PROGRAMS} are listed in @code{TESTS}.) +The variables @code{TESTS}, @code{XFAIL_TESTS} (@pxref{Tests}) are also +rewritten if it contains filenames that have been declared as programs +in the same @file{Makefile}. (This is mostly useful when some programs +from @code{check_PROGRAMS} are listed in @code{TESTS}.) However, Automake cannot apply this rewriting to @command{configure} substitutions. This means that if you are conditionally building a @@ -9055,9 +9055,9 @@ resort to handwritten rules or even handwritten @file{Makefile}s. @node Extending @section Extending Automake Rules -With some minor exceptions (like @code{_PROGRAMS} variables being -rewritten to append @samp{$(EXEEXT)}), the contents of a -@file{Makefile.am} is copied to @file{Makefile.in} verbatim. +With some minor exceptions (like @code{_PROGRAMS} variables, @code{TESTS}, +or @code{XFAIL_TESTS}) being rewritten to append @samp{$(EXEEXT)}), the +contents of a @file{Makefile.am} is copied to @file{Makefile.in} verbatim. @cindex copying semantics diff --git a/doc/stamp-vti b/doc/stamp-vti index e57627b22..5bacab1f9 100644 --- a/doc/stamp-vti +++ b/doc/stamp-vti @@ -1,4 +1,4 @@ -@set UPDATED 27 January 2007 -@set UPDATED-MONTH January 2007 +@set UPDATED 30 March 2007 +@set UPDATED-MONTH March 2007 @set EDITION 1.10a @set VERSION 1.10a diff --git a/doc/version.texi b/doc/version.texi index e57627b22..5bacab1f9 100644 --- a/doc/version.texi +++ b/doc/version.texi @@ -1,4 +1,4 @@ -@set UPDATED 27 January 2007 -@set UPDATED-MONTH January 2007 +@set UPDATED 30 March 2007 +@set UPDATED-MONTH March 2007 @set EDITION 1.10a @set VERSION 1.10a diff --git a/tests/Makefile.am b/tests/Makefile.am index 1177fc72d..afa698b23 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -87,6 +87,7 @@ check3.test \ check4.test \ check5.test \ check6.test \ +check7.test \ checkall.test \ clean.test \ clean2.test \ diff --git a/tests/Makefile.in b/tests/Makefile.in index 9a895a810..7ca66fbfa 100644 --- a/tests/Makefile.in +++ b/tests/Makefile.in @@ -220,6 +220,7 @@ check3.test \ check4.test \ check5.test \ check6.test \ +check7.test \ checkall.test \ clean.test \ clean2.test \ diff --git a/tests/check7.test b/tests/check7.test new file mode 100755 index 000000000..3a2c695df --- /dev/null +++ b/tests/check7.test @@ -0,0 +1,70 @@ +#! /bin/sh +# Copyright (C) 2007 Free Software Foundation, Inc. +# +# This file is part of GNU Automake. +# +# GNU Automake 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. +# +# GNU Automake 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 Automake; see the file COPYING. If not, write to +# the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, +# Boston, MA 02110-1301, USA. + +# Check EXEEXT extension for XFAIL_TESTS. + +. ./defs || exit 1 + +set -e + +cat >> configure.in << 'END' +AC_PROG_CC +AC_OUTPUT +END + +cat > Makefile.am << 'END' +TESTS = $(XFAIL_TESTS) +XFAIL_TESTS = a b c d +check_PROGRAMS = a c d +check_SCRIPTS = b + +print-xfail-tests: + @echo BEG: $(XFAIL_TESTS) :END +END + +cat >>b <<'END' +#! /bin/sh +exit 1 +END +chmod a+x b + +cat >>a.c <<'END' +#include +int main() { return EXIT_FAILURE; } +END + +cp a.c c.c +cp a.c d.c + +$ACLOCAL +$AUTOCONF +$AUTOMAKE -a + +./configure +$MAKE check +EXEEXT=.bin $MAKE -e print-xfail-tests >foo +cat foo +grep 'BEG: a.bin b c.bin d.bin :END' foo + +$MAKE distclean +mkdir build +cd build +../configure +$MAKE check -- 2.34.1