summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--t/list-of-tests.mk1
-rwxr-xr-xt/txinfo-many-output-formats-vpath.sh206
-rwxr-xr-xt/txinfo-many-output-formats.sh44
3 files changed, 237 insertions, 14 deletions
diff --git a/t/list-of-tests.mk b/t/list-of-tests.mk
index 39b8de753..a73e55146 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 000000000..74b04ebc1
--- /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
+@setfilename main.info
+@settitle main
+@node Top
+Hello walls.
+@bye
+END
+
+mkdir sub
+cat > sub/main2.texi << 'END'
+\input texinfo
+@setfilename main2.info
+@settitle main2
+@node Top
+Hello walls.
+@bye
+END
+
+mkdir rec
+cat > rec/main3.texi << 'END'
+\input texinfo
+@setfilename main3.info
+@settitle main3
+@node Top
+Hello walls.
+@bye
+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 7913ece83..9d0bd8b8f 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
: