automake-patches
[Top][All Lists]
Advanced

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

[FYI] {maint} tests: some enhancements to texinfo tests (from Automake-N


From: Stefano Lattarini
Subject: [FYI] {maint} tests: some enhancements to texinfo tests (from Automake-NG)
Date: Mon, 31 Dec 2012 19:53:36 +0100

* t/txinfo-many-output-formats.sh: Backport improvements, almost verbatim,
from Automake-NG commit 'v1.13-768-gb434acc' (plus minor tweaks for the
sake of non-GNU make implementation).
* t/txinfo-many-output-formats-vpath.sh: New test, backported almost
verbatim from that same Automake-NG commit (again, with minor tweaks for
the sake of non-GNU make implementations).
* t/lsit-of-tests.mk: Adjust.

Signed-off-by: Stefano Lattarini <address@hidden>
---
 t/list-of-tests.mk                    |   1 +
 t/txinfo-many-output-formats-vpath.sh | 206 ++++++++++++++++++++++++++++++++++
 t/txinfo-many-output-formats.sh       |  44 +++++---
 3 files changed, 237 insertions(+), 14 deletions(-)
 create mode 100755 t/txinfo-many-output-formats-vpath.sh

diff --git a/t/list-of-tests.mk b/t/list-of-tests.mk
index c55ce4e..eef3de9 100644
--- a/t/list-of-tests.mk
+++ b/t/list-of-tests.mk
@@ -1165,6 +1165,7 @@ t/txinfo-dvi-recurs.sh \
 t/txinfo-info-in-srcdir.sh \
 t/txinfo-makeinfo-error-no-clobber.sh \
 t/txinfo-many-output-formats.sh \
+t/txinfo-many-output-formats-vpath.sh \
 t/txinfo-no-clutter.sh \
 t/txinfo-no-extra-dist.sh \
 t/txinfo-no-installinfo.sh \
diff --git a/t/txinfo-many-output-formats-vpath.sh 
b/t/txinfo-many-output-formats-vpath.sh
new file mode 100755
index 0000000..74b04eb
--- /dev/null
+++ b/t/txinfo-many-output-formats-vpath.sh
@@ -0,0 +1,206 @@
+#! /bin/sh
+# Copyright (C) 2003-2013 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 support for building HTML documentation, and the many
+# install-DOC flavors, in VPATH builds.
+# Keep in sync with sister test 'txinfo-many-output-formats.sh'.
+# FIXME: in the long term, the best thing to do is probably to convert
+# FIXME: this test and that sister test to TAP, and merge them.
+
+required='makeinfo tex texi2dvi'
+. test-init.sh
+
+cat >>configure.ac <<\EOF
+AC_CONFIG_FILES([rec/Makefile])
+
+# At the time of writing, Autoconf does not supplies any of these
+# definitions (and those below are purposely not those of the standard).
+AC_SUBST([dvidir],  ['${datadir}/${PACKAGE}/dvi'])
+AC_SUBST([htmldir], ['${datadir}/${PACKAGE}/html'])
+AC_SUBST([pdfdir],  ['${datadir}/${PACKAGE}/pdf'])
+AC_SUBST([psdir],   ['${datadir}/${PACKAGE}/ps'])
+
+AC_OUTPUT
+EOF
+
+cat > Makefile.am << 'END'
+SUBDIRS = rec
+info_TEXINFOS = main.texi sub/main2.texi
+END
+
+cat > main.texi << 'END'
+\input texinfo
address@hidden main.info
address@hidden main
address@hidden Top
+Hello walls.
address@hidden
+END
+
+mkdir sub
+cat > sub/main2.texi << 'END'
+\input texinfo
address@hidden main2.info
address@hidden main2
address@hidden Top
+Hello walls.
address@hidden
+END
+
+mkdir rec
+cat > rec/main3.texi << 'END'
+\input texinfo
address@hidden main3.info
address@hidden main3
address@hidden Top
+Hello walls.
address@hidden
+END
+
+cat > rec/Makefile.am << 'END'
+info_TEXINFOS = main3.texi
+
+install-pdf-local:
+       @$(MKDIR_P) "$(pdfdir)"
+       : > "$(pdfdir)/hello"
+uninstall-local:
+       rm -f "$(pdfdir)/hello"
+
+check-local: ps pdf dvi html # For "make distcheck".
+END
+
+$ACLOCAL
+$AUTOMAKE --add-missing
+$AUTOCONF
+
+# To simplify syncing with sister test 'txinfo-many-output-formats.sh'
+srcdir=..
+
+if test $srcdir = ..; then
+  mkdir build
+  cd build
+fi
+
+$srcdir/configure --prefix="$(pwd)"
+
+$MAKE
+
+$sleep
+# Test production of split-per-node HTML.
+$MAKE html
+test -d main.html
+test -d sub/main2.html
+test -d rec/main3.html
+
+# Rebuilding main.html should cause its timestamp to be updated.
+is_newest main.html $srcdir/main.texi
+$sleep
+touch $srcdir/main.texi
+$MAKE html
+is_newest main.html $srcdir/main.texi
+
+$MAKE clean
+test ! -e main.html
+test ! -e sub/main2.html
+test ! -e rec/main3.html
+
+# Test production of a single HTML file.
+MAKEINFOFLAGS=--no-split $MAKE -e html
+test -f main.html
+test -f sub/main2.html
+test -f rec/main3.html
+$MAKE clean
+test ! -e main.html
+test ! -e sub/main2.html
+test ! -e rec/main3.html
+
+# Make sure AM_MAKEINFOHTMLFLAGS is supported, and override AM_MAKEINFO.
+
+cp $srcdir/Makefile.am $srcdir/Makefile.sav
+cat >> $srcdir/Makefile.am <<'EOF'
+AM_MAKEINFOHTMLFLAGS = --no-headers --no-split
+AM_MAKEINFOFLAGS = --unsupported-option
+EOF
+(cd $srcdir && $AUTOMAKE)
+./config.status Makefile
+
+$MAKE html
+test -f main.html
+test -f sub/main2.html
+test -d rec/main3.html
+$MAKE clean
+test ! -e main.html
+test ! -e sub/main2.html
+test ! -e rec/main3.html
+
+$MAKE install-html
+test -f share/$me/html/main.html
+test -f share/$me/html/main2.html
+test -d share/$me/html/main3.html
+$MAKE uninstall
+test ! -e share/$me/html/main.html
+test ! -e share/$me/html/main2.html
+test ! -e share/$me/html/main3.html
+
+$MAKE dvi
+test -f main.dvi
+test -f sub/main2.dvi
+test -f rec/main3.dvi
+$MAKE clean
+test ! -e main.dvi
+test ! -e sub/main2.dvi
+test ! -e rec/main3.dvi
+
+$MAKE install-dvi
+test -f share/$me/dvi/main.dvi
+test -f share/$me/dvi/main2.dvi
+test -f share/$me/dvi/main3.dvi
+$MAKE uninstall
+test ! -e share/$me/dvi/main.dvi
+test ! -e share/$me/dvi/main2.dvi
+test ! -e share/$me/dvi/main3.dvi
+
+dvips --help || skip_ "dvips is missing"
+
+$MAKE install-ps
+test -f share/$me/ps/main.ps
+test -f share/$me/ps/main2.ps
+test -f share/$me/ps/main3.ps
+$MAKE uninstall
+test ! -e share/$me/ps/main.ps
+test ! -e share/$me/ps/main2.ps
+test ! -e share/$me/ps/main3.ps
+
+pdfetex --help || pdftex --help \
+  || skip_ "pdftex and pdfetex are both missing"
+
+$MAKE install-pdf
+test -f share/$me/pdf/main.pdf
+test -f share/$me/pdf/main2.pdf
+test -f share/$me/pdf/main3.pdf
+test -f share/$me/pdf/hello
+$MAKE uninstall
+test ! -e share/$me/pdf/main.pdf
+test ! -e share/$me/pdf/main2.pdf
+test ! -e share/$me/pdf/main3.pdf
+test ! -e share/$me/pdf/hello
+
+# Restore the makefile without a broken AM_MAKEINFOFLAGS definition.
+cp -f $srcdir/Makefile.sav $srcdir/Makefile.am
+using_gmake || $MAKE Makefile
+$MAKE distcheck
+
+:
diff --git a/t/txinfo-many-output-formats.sh b/t/txinfo-many-output-formats.sh
index 7913ece..9d0bd8b 100755
--- a/t/txinfo-many-output-formats.sh
+++ b/t/txinfo-many-output-formats.sh
@@ -16,6 +16,9 @@
 
 # Test support for building HTML documentation, and the many
 # install-DOC flavors.
+# Keep in sync with sister test 'txinfo-many-output-formats-vpath.sh'.
+# FIXME: in the long term, the best thing to do is probably to convert
+# FIXME: this test and that sister test to TAP, and merge them.
 
 required='makeinfo tex texi2dvi'
 . test-init.sh
@@ -34,7 +37,6 @@ AC_OUTPUT
 EOF
 
 cat > Makefile.am << 'END'
-check-local: ps pdf dvi html # For "make distcheck".
 SUBDIRS = rec
 info_TEXINFOS = main.texi sub/main2.texi
 END
@@ -73,7 +75,7 @@ info_TEXINFOS = main3.texi
 
 install-pdf-local:
        @$(MKDIR_P) "$(pdfdir)"
-       :> "$(pdfdir)/hello"
+       : > "$(pdfdir)/hello"
 uninstall-local:
        rm -f "$(pdfdir)/hello"
 
@@ -84,7 +86,15 @@ $ACLOCAL
 $AUTOMAKE --add-missing
 $AUTOCONF
 
-./configure --prefix "$(pwd)"
+# To simplify syncing with sister test 'txinfo-many-output-formats.sh'
+srcdir=.
+
+if test $srcdir = ..; then
+  mkdir build
+  cd build
+fi
+
+$srcdir/configure --prefix="$(pwd)"
 
 $MAKE
 
@@ -96,11 +106,11 @@ test -d sub/main2.html
 test -d rec/main3.html
 
 # Rebuilding main.html should cause its timestamp to be updated.
-is_newest main.html main.texi
+is_newest main.html $srcdir/main.texi
 $sleep
-touch main.texi
+touch $srcdir/main.texi
 $MAKE html
-is_newest main.html main.texi
+is_newest main.html $srcdir/main.texi
 
 $MAKE clean
 test ! -e main.html
@@ -119,19 +129,18 @@ test ! -e rec/main3.html
 
 # Make sure AM_MAKEINFOHTMLFLAGS is supported, and override AM_MAKEINFO.
 
-cp Makefile.am Makefile.sav
-cat >>Makefile.am <<\EOF
+cp $srcdir/Makefile.am $srcdir/Makefile.sav
+cat >> $srcdir/Makefile.am <<'EOF'
 AM_MAKEINFOHTMLFLAGS = --no-headers --no-split
 AM_MAKEINFOFLAGS = --unsupported-option
 EOF
-$AUTOMAKE
+(cd $srcdir && $AUTOMAKE)
 ./config.status Makefile
 
 $MAKE html
 test -f main.html
 test -f sub/main2.html
 test -d rec/main3.html
-
 $MAKE clean
 test ! -e main.html
 test ! -e sub/main2.html
@@ -146,6 +155,15 @@ test ! -e share/$me/html/main.html
 test ! -e share/$me/html/main2.html
 test ! -e share/$me/html/main3.html
 
+$MAKE dvi
+test -f main.dvi
+test -f sub/main2.dvi
+test -f rec/main3.dvi
+$MAKE clean
+test ! -e main.dvi
+test ! -e sub/main2.dvi
+test ! -e rec/main3.dvi
+
 $MAKE install-dvi
 test -f share/$me/dvi/main.dvi
 test -f share/$me/dvi/main2.dvi
@@ -181,10 +199,8 @@ test ! -e share/$me/pdf/main3.pdf
 test ! -e share/$me/pdf/hello
 
 # Restore the makefile without a broken AM_MAKEINFOFLAGS definition.
-mv -f Makefile.sav Makefile.am
-$AUTOMAKE
-./config.status Makefile
-
+cp -f $srcdir/Makefile.sav $srcdir/Makefile.am
+using_gmake || $MAKE Makefile
 $MAKE distcheck
 
 :
-- 
1.8.1.rc3.27.g3b73c7d




reply via email to

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