automake-ng
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Automake-ng] [FYI] [ng] tests: add "spy" test for '.PHONY' support


From: Stefano Lattarini
Subject: [Automake-ng] [FYI] [ng] tests: add "spy" test for '.PHONY' support
Date: Mon, 16 Apr 2012 14:22:36 +0200

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 <address@hidden>
---
 t/list-of-tests.mk |    1 +
 t/spy-phony.sh     |   57 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 58 insertions(+)
 create mode 100755 t/spy-phony.sh

diff --git a/t/list-of-tests.mk b/t/list-of-tests.mk
index dd2109e..02e89ec 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 0000000..4e42819
--- /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 <http://www.gnu.org/licenses/>.
+
+# 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"
+
+:
-- 
1.7.9.5




reply via email to

[Prev in Thread] Current Thread [Next in Thread]