diff options
Diffstat (limited to 'Master/texmf-dist/doc/latex/textpos/t/runtests')
-rwxr-xr-x | Master/texmf-dist/doc/latex/textpos/t/runtests | 99 |
1 files changed, 99 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/latex/textpos/t/runtests b/Master/texmf-dist/doc/latex/textpos/t/runtests new file mode 100755 index 00000000000..d7264da52f8 --- /dev/null +++ b/Master/texmf-dist/doc/latex/textpos/t/runtests @@ -0,0 +1,99 @@ +#! /bin/sh - +# +# $Id: runtests,v 1.4 2005/08/30 18:19:12 norman Exp $ +# +# Run a series of tests on LaTeX files. The directory contains a collection +# of documents named `t<number>.tex', and these are processed in turn and their +# output diffed against `t<number>.correct.dvi'. Exit status is the +# number of failures. +# +# Run without an argument, and if there is no file runtests.filelist, +# this runs all the tests in the directory; run with an argument, it +# runs only the specified tests. +# +# If there is no argument, but a file runtests.filelist exists, use +# that file's contents as the list of tests to run. This means that +# we can make it easy to do a subset of the tests repeatedly while +# testing. +# +# The only we we really have of testing whether the binary DVI files +# differ is by comparing them using cmp, which simply reports the +# byte-offset where they differ. This isn't terribly helpful, and +# even examining the files using dv2dt doesn't help much. It's also +# probably rather sensitive to things like the version of hyperref +# which is being used. Also, since TeX puts a timestamp in DVI files, +# we have to ignore the first 50 bytes or so (see a thread with the +# subject `diff for dvi files', in comp.text.tex, in May 2001. +# +# If the option --keep is present, then it doesn't delete temporary files. + +UsageString="$0 [--keep] [filename...]" +deletetemp=true +LS=/bin/ls + + +filelist="" + +while [ $# -gt 0 ]; do + case $1 in + --keep) deletetemp=false ;; + --*) echo "Usage: $UsageString" + exit 1 + ;; + *) filelist="$filelist $1" + ;; + esac + shift +done + +# If filelist is null, and a file runtests.filelist exists, use that +# file's contents as the value of filelist. +if [ -z "$filelist" -a -f runtests.filelist ]; then + echo "Reading filelist from runtests.filelist" + filelist=`cat runtests.filelist` +fi + +# Check filelist is non-null, and make it t* if it is. +if [ -z "$filelist" ]; then + filelist=`$LS | grep '^t[0-9]*\.tex$' | sed 's/\.tex//'` +fi + + + +nfailures=0 + +for name in $filelist +do + echo -n "$name... " + # Make sure we run twice, if there's no preexisting aux file. + test -f $name.aux || latex $name.tex >$name.stdout 2>$name.stderr + latex $name.tex >$name.stdout 2>$name.stderr + testval=$? + #test -f $name.dvi && mv $name.dvi $name.dvi.tmp + + if [ $testval != 0 ]; then + echo "failed (exited with error status $testval)" + nfailures=`expr $nfailures + 1` + $deletetemp && rm -f $name.stdout $name.stderr $name.dvi $name*.tmp + elif [ -r "$name.correct.dvi" ]; then + cmp -i50 $name.dvi $name.correct.dvi >$name.diff + rval=$? + if [ $rval != 0 ]; then + make $name.dtl.diff >/dev/null + echo "failed (results in $name.dtl.diff)" + nfailures=`expr $nfailures + 1` + else + echo "ok" + $deletetemp && rm -f $name.diff $name.stdout $name.stderr $name.dvi $name*.tmp + fi + else + echo "apparently OK, but no correct results to compare" + mv $name.dvi $name.correct.dvi + echo " (now in $name.correct.dvi)" + $deletetemp && rm -f $name*.tmp + fi +done + +echo "$nfailures failed tests" + +exit $nfailures |