tags 11793 patch close 1173 thanks Hi Eric, thanks for the patch.
On 06/27/2012 11:55 PM, Eric Blake wrote: > Addresses automake bug#11793. > > This macro has been present for a long time, and coreutils has been > relying on it despite no documentation, which argues that it is stable > enough to be worth documenting. > > Furthermore, since we are hoping to change our preferred invocation > from 'missing --run program' to 'missing program' in a future version > of automake, we need a way for packages to consistently get the > preferred invocation form rather than open-coding a call to 'missing'. > In particular, the Autoconf manual would love to recommend this macro > when discussing how to integrate an autotest suite with automake. > > * doc/automake.texi (Public Macros): Document AM_MISSING_PROG. > --- > doc/automake.texi | 10 ++++++++++ > 1 file changed, 10 insertions(+) > > diff --git a/doc/automake.texi b/doc/automake.texi > index 059241d..20af53e 100644 > --- a/doc/automake.texi > +++ b/doc/automake.texi > @@ -4062,6 +4062,16 @@ Public Macros > This macro will abort @command{configure} if no Unified Parallel C > compiler is found. > > +@item AM_MISSING_PROG(@var{name}, @var{program}) > +@acindex AM_MISSING_PROG > +@vindex MISSING > +Find a maintainer tool @var{program} and define the @var{name} > +environment variable with its location. If @var{program} is not > +detected, then @var{name} will instead invoke the @command{missing} > +script, in order to give useful advice to the user about the missing > +maintainer tool. @xref{maintainer-mode}, for more information on when > +the @command{missing} script is appropriate. > + > @item AM_SILENT_RULES > @acindex AM_SILENT_RULES > Enable the machinery for less verbose build output (@pxref{Options}). > I've applied you patch verbatim to maint, and applied the patch below as a follow-up to enhance testsuite coverage of AM_MISSING_PROG. I'm thus closing this bug report. Thanks, Stefano >From 78900b933039b7001443be126b63862430ec2648 Mon Sep 17 00:00:00 2001 Message-Id: <78900b933039b7001443be126b63862430ec2648.1340873870.git.stefano.lattar...@gmail.com> From: Stefano Lattarini <stefano.lattar...@gmail.com> Date: Thu, 28 Jun 2012 10:55:13 +0200 Subject: [PATCH] coverage: tests AM_MISSING_PROG usage Now that AM_MISSING_PROG is documented, we want to make sure it works as expected when used in third-party code. * t/am-missing-prog.sh: New test. * t/ammissing: Rename ... * t/am-macro-not-found.sh: ... like this, to avoid confusion (this test has nothing to do with the 'missing' script nor with the 'AM_MISSING_PROG' macro). * t/list-of-tests.mk: Adjust. Signed-off-by: Stefano Lattarini <stefano.lattar...@gmail.com> --- t/{ammissing.sh => am-macro-not-found.sh} | 0 t/am-missing-prog.sh | 99 +++++++++++++++++++++++++++++ t/list-of-tests.mk | 3 +- 3 files changed, 101 insertions(+), 1 deletion(-) rename t/{ammissing.sh => am-macro-not-found.sh} (100%) create mode 100755 t/am-missing-prog.sh diff --git a/t/ammissing.sh b/t/am-macro-not-found.sh similarity index 100% rename from t/ammissing.sh rename to t/am-macro-not-found.sh diff --git a/t/am-missing-prog.sh b/t/am-missing-prog.sh new file mode 100755 index 0000000..a3e0cac --- /dev/null +++ b/t/am-missing-prog.sh @@ -0,0 +1,99 @@ +#! /bin/sh +# Copyright (C) 2003-2012 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 AM_MISSING_PROG. + +. ./defs || Exit 1 + +cat >> configure.ac <<'END' +AM_MISSING_PROG([NO_SUCH_COMMAND], [am-none-none]) +AM_MISSING_PROG([MISMATCHED_COMMAND], [am-exit-63]) +AM_MISSING_PROG([OVERRIDDEN_COMMAND], [am-none-none]) +AM_MISSING_PROG([COMMAND_FOUND], [my-command]) +AC_OUTPUT +END + +mkdir bin +cat > bin/am-exit-63 <<'END' +#!/bin/sh +echo "Oops, I'm too old" +exit 63 +END +cat > bin/am-overridden <<'END' +#!/bin/sh +echo "Hey, I'm OK!" +exit 0 +END +cat > bin/my-command <<'END' +#!/bin/sh +echo SNAFU +exit 0 +END +chmod a+x bin/* +PATH=$(pwd)/bin$PATH_SEPARATOR$PATH; export PATH + +cat > Makefile.am <<'END' +# Different for different targets, for the sake of parallel make. +o = $@-stdout +e = $@-stderr + +debug_info = grep . $@-stdout $@-stderr +status_is = $(debug_info); echo $@: st=$$st; : test $$st -eq + +w_mis = 'am-none-none' is needed, and is missing on your system +w_old = 'am-exit-63' is needed, and is probably too old + +# FIXME: make this test stricter w.r.t. the exit statuses once +# FIXME: we are merged to master! +test1: + st=0; $(NO_SUCH_COMMAND) >$o 2>$e || st=$$?; $(status_is) 127 + grep "^WARNING: $(w_mis)" $e + test ! -s $o +test2: + st=0; $(MISMATCHED_COMMAND) >$o 2>$e || st=$$?; $(status_is) 63 + grep "^WARNING: $(w_old)" $e + test "`cat $o`" = "Oops, I'm too old" +test3: + st=0; $(OVERRIDDEN_COMMAND) >$o 2>$e || st=$$?; $(status_is) 0 + st=0; $(OVERRIDDEN_COMMAND) >$o 2>$e || st=$$?; \ + test ! -s $e + test "`cat $o`" = "Hey, I'm OK!" +test4: + st=0; $(COMMAND_FOUND) >$o 2>$e || st=$$?; $(status_is) 0 + test ! -s $e + test "`cat $o`" = SNAFU +check-local: test1 test2 test2 test4 +.PHONY: test1 test2 test2 test4 +CLEANFILES = test[1234]-stdout test[1234]-stderr +END + +$ACLOCAL +$AUTOCONF +$AUTOMAKE + +./configure OVERRIDDEN_COMMAND=am-overridden + +$FGREP COMMAND Makefile.in Makefile # For debugging. + +grep "^NO_SUCH_COMMAND = \${SHELL} .*/missing .*am-none-none" Makefile +grep "^MISMATCHED_COMMAND = \${SHELL} .*/missing .*am-exit-63" Makefile +grep "^COMMAND_FOUND = \${SHELL} .*/missing .*my-command" Makefile +grep '^OVERRIDDEN_COMMAND = am-overridden *$' Makefile + +$MAKE test1 test2 test3 test4 +$MAKE distcheck DISTCHECK_CONFIGURE_FLAGS='OVERRIDDEN_COMMAND=am-overridden' + +: diff --git a/t/list-of-tests.mk b/t/list-of-tests.mk index e16dd1d..5967fcb 100644 --- a/t/list-of-tests.mk +++ b/t/list-of-tests.mk @@ -125,7 +125,7 @@ t/amhello-cross-compile.sh \ t/amhello-binpkg.sh \ t/aminit-moreargs-deprecation.sh \ t/amassign.sh \ -t/ammissing.sh \ +t/am-macro-not-found.sh \ t/amopt.sh \ t/amopts-location.sh \ t/amopts-variable-expansion.sh \ @@ -686,6 +686,7 @@ t/missing3.sh \ t/missing4.sh \ t/missing5.sh \ t/missing6.sh \ +t/am-missing-prog.sh \ t/missing-auxfile-stops-makefiles-creation.sh \ t/mkdirp-deprecation.sh \ t/mkinstall.sh \ -- 1.7.9.5