From: Stefano Lattarini Date: Mon, 16 Apr 2012 12:22:08 +0000 (+0200) Subject: [ng] tests: add "spy" test for '.PHONY' support X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=661337527c7bef0b794ce366e963b14c326ba1d5;p=thirdparty%2Fautomake.git [ng] tests: add "spy" test for '.PHONY' support Some make implementations (especially Solaris make) have some problems in '.PHONY' support, and this has had the consequence that mainstream Automake hadn't been able to fully take advantage of the '.PHONY' semantics to simplify some of its idioms or recipes. Since we now want to assume and take advantage of such semantics, we add a new "spy" test case verifying that they truly hold GNU make, to avoid unwelcome surprises. * t/spy-phony.sh: New test. * t/list-of-tests.mk: Add it. Signed-off-by: Stefano Lattarini --- diff --git a/t/list-of-tests.mk b/t/list-of-tests.mk index dd2109eca..02e89ecc9 100644 --- a/t/list-of-tests.mk +++ b/t/list-of-tests.mk @@ -980,6 +980,7 @@ t/spell2.sh \ t/spell3.sh \ t/spelling.sh \ t/spy.sh \ +t/spy-phony.sh \ t/spy-rm.tap \ t/spy-vpath-rewrite.sh \ t/stdinc.sh \ diff --git a/t/spy-phony.sh b/t/spy-phony.sh new file mode 100755 index 000000000..4e428193f --- /dev/null +++ b/t/spy-phony.sh @@ -0,0 +1,57 @@ +#! /bin/sh +# Copyright (C) 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 . + +# Check that the '.PHONY' semantics we expect truly hold. + +am_create_testdir=empty +. ./defs || Exit 1 + +cat > Makefile <<'END' +.PHONY: pdir pfile +pdir rdir: + echo foo > $@/foo +pfile rfile: + echo bar >$@ +.PHONY: other +other: + echo baz >> dummy +indirect: other + echo run > $@ +END + +: > rfile +mkdir rdir +$MAKE rdir rfile +test ! -s rfile +test ! -f rdir/foo + +: > pfile +mkdir pdir +$MAKE pdir pfile +test "`cat pfile`" = bar +test "`cat pdir/foo`" = foo + +$MAKE other +test "`cat dummy`" = baz +$MAKE other +test "`cat dummy`" = "baz${nl}baz" + +echo not run > indirect +$MAKE indirect +test "`cat indirect`" = run +test "`cat dummy`" = "baz${nl}baz${nl}baz" + +: