summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefano Lattarini <stefano.lattarini@gmail.com>2012-07-06 09:59:23 +0200
committerStefano Lattarini <stefano.lattarini@gmail.com>2012-07-06 09:59:23 +0200
commit2634d5d8ba99a52023f25bb6ea6b038f76e55a7f (patch)
treec5d828bc7bfcc798ed36cac9e15c970480d45b07
parentfc21a888343751b9fbd2bc35fe1ffc96f4f310f2 (diff)
downloadautomake-2634d5d8ba99a52023f25bb6ea6b038f76e55a7f.tar.gz
coverage: test that AM_PROG_MKDIR_P and $(mkdir_p) still works
They are deprecated, but should continue to work in the 1.12.x release series. Report from Benoit Sigoure and Diego Elio Pattenò: <http://lists.gnu.org/archive/html/automake/2012-07/msg00001.html> * t/mkdirp-deprecation.sh: Enhance. * t/mkdir_p.sh: New test, check that AM_INIT_AUTOMAKE still defines the $(mkdir_p) make variable. Currently xfailing. * t/list-of-tests.mk (handwritten_TESTS, XFAIL_TESTS): Add the new test. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
-rw-r--r--t/list-of-tests.mk2
-rwxr-xr-xt/mkdir_p.sh51
-rwxr-xr-xt/mkdirp-deprecation.sh36
3 files changed, 83 insertions, 6 deletions
diff --git a/t/list-of-tests.mk b/t/list-of-tests.mk
index 53b2439bd..0fe5a7e58 100644
--- a/t/list-of-tests.mk
+++ b/t/list-of-tests.mk
@@ -38,6 +38,7 @@ t/override-conditional-2.sh \
t/dist-pr109765.sh \
t/instdir-cond2.sh \
t/java-nobase.sh \
+t/mkdir_p.sh \
t/objext-pr10128.sh \
t/parallel-tests-many.sh \
t/pr8365-remake-timing.sh \
@@ -689,6 +690,7 @@ t/missing5.sh \
t/missing6.sh \
t/am-missing-prog.sh \
t/missing-auxfile-stops-makefiles-creation.sh \
+t/mkdir_p.sh \
t/mkdirp-deprecation.sh \
t/mkinstall.sh \
t/mkinst2.sh \
diff --git a/t/mkdir_p.sh b/t/mkdir_p.sh
new file mode 100755
index 000000000..624365c2d
--- /dev/null
+++ b/t/mkdir_p.sh
@@ -0,0 +1,51 @@
+#! /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/>.
+
+# AM_INIT_AUTOMAKE should still define $(mkdir_p), for backward
+# compatibility.
+
+. ./defs || exit 1
+
+cat >> configure.ac << 'END'
+AC_CONFIG_FILES([sub/Makefile])
+AC_OUTPUT
+END
+
+cat > Makefile.am << 'END'
+SUBDIRS = sub
+all-local:
+ $(mkdir_p) . dir1/dir2
+check-local: all
+ test -d dir1/dir2
+ test -d dir1/dir3
+END
+
+mkdir sub
+cat > sub/Makefile.am << 'END'
+# '$(mkdir_p)' should continue to work even in subdir makefiles.
+all-local:
+ $(mkdir_p) .. ../dir1/dir3
+END
+
+$ACLOCAL
+$AUTOCONF -Werror -Wall
+$AUTOMAKE
+
+./configure
+$MAKE check-local
+$MAKE distcheck
+
+:
diff --git a/t/mkdirp-deprecation.sh b/t/mkdirp-deprecation.sh
index 8482dea36..025739181 100755
--- a/t/mkdirp-deprecation.sh
+++ b/t/mkdirp-deprecation.sh
@@ -14,13 +14,33 @@
# 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 AM_PROG_MKDIR_P macro is deprecated. It will be
-# be removed in the next major Automake release.
+# Check that the AM_PROG_MKDIR_P macro is deprecated; it will be
+# be removed in the next major Automake release. But also check
+# that it still works as expected in the current release series.
. ./defs || exit 1
-echo AM_PROG_MKDIR_P >> configure.ac
-: > Makefile.am
+cat >> configure.ac << 'END'
+AM_PROG_MKDIR_P
+AC_CONFIG_FILES([sub/Makefile])
+AC_OUTPUT
+END
+
+cat > Makefile.am << 'END'
+SUBDIRS = sub
+all-local:
+ $(mkdir_p) . dir1/dir2
+check-local: all
+ test -d dir1/dir2
+ test -d dir1/dir3
+END
+
+mkdir sub
+cat > sub/Makefile.am << 'END'
+# '$(mkdir_p)' should continue to work even in subdir makefiles.
+all-local:
+ $(mkdir_p) .. ../dir1/dir3
+END
grep_err ()
{
@@ -38,11 +58,15 @@ grep_err
$AUTOCONF -Werror -Wno-obsolete
-#AUTOMAKE_fails
-#grep_err
+AUTOMAKE_fails
+grep_err
AUTOMAKE_fails --verbose -Wnone -Wobsolete
grep_err
$AUTOMAKE -Wno-obsolete
+./configure
+$MAKE check-local
+$MAKE distcheck
+
: