#! /bin/sh -vx # $Id$ # Copyright 2017-2021 Karl Berry # Copyright 2009-2014 Peter Breitenlohner # You may freely use, modify and/or distribute this file. W2CDir=${W2CDir:-..} ExeExt=${ExeExt:-} _tex=$W2CDir/tex$ExeExt _pltotf=$W2CDir/pltotf$ExeExt _tftopl=$W2CDir/tftopl$ExeExt _dvitype=$W2CDir/dvitype$ExeExt LC_ALL=C; export LC_ALL; LANGUAGE=C; export LANGUAGE testdir=$abs_srcdir/triptrap TEXMFCNF=$testdir; export TEXMFCNF rm -rf tripdir mkdir tripdir cd tripdir mkdir a b # See triptrap/README for explanation of why we believe these diffs are ok. # TeX Live generic cat >filter <<-\_EOF s,^\*\*(\./trip\.tex ##,** \&trip trip \ (trip.tex ##, s/ (TeX Live 20[^)]*)// s/ (Web2C 202[3-9][^)]*)// s/(preloaded format=tex)/(INITEX)/ s/format=trip [^)][^)]*)/format=trip)/ s/) [0-9A-Z: ]*$/)/ s,^(\./,(, s/[1-9][0-9]* strings out of [1-9].*/XX strings out of YYY/ s/[1-9][0-9]* string characters out of [1-9].*/XXX string characters out of YYYY/ s/sequences out of [1-9].*/sequences out of YYYY/ s/[1-9] hyphenation exceptions* out of [1-9].*/X hyphenation exceptions out of YYY/ s/[1-9][0-9]* strings of total length [1-9].*/XXXX strings of total length YYYYY/ s/9 ops out of [1-9][0-9]*/9 ops out of YYY/ s/TeX output ....\...\...:..../TeX output YYYY.MM.DD:hhmm/ _EOF # x86 glue rounding cat >>filter <<-\_EOF s/ 16341\.999.*fil/ 16342.0fil/ s/ 16238\.999.*fil/ 16239.0fil/ s/ 16317\.999.*fil/ 16318.0fil/ s/ 16330\.999.*fil/ 16331.0fil/ s/ 16331\.999.*fil/ 16332.0fil/ s/ 16343\.999.*fil/ 16344.0fil/ s/ 9737\.587..fil/ 9737.58789fil/ s/down4 639342.../down4 639342208/ s/y4 2039217../y4 203921760/ s/y0 2039217../y0 203921760/ _EOF dvitype_args="-output-level=2 -dpi=72.27 -page-start='*.*.*.*.*.*.*.*.*.*'" echo ">>> Running TRIP test for TeX." >&2 echo ">>> See $testdir/trip.diffs for example of acceptable diffs." >&2 is_OK=: set -x $_pltotf $testdir/trip.pl trip.tfm || exit 1 $_tftopl ./trip.tfm trip.pl || exit 1 diff $testdir/trip.pl trip.pl || is_OK=false # get same filename in log rm -f trip.tex $LN_S $testdir/trip.tex . || exit 1 rm -f trip.fmt $_tex --progname=initex --ini <$testdir/trip1.in >tripin.fot if test ! -s trip.fmt; then echo "*** trip.fmt not created by trip1.in, investigate!" >&2 exit 1 fi mv trip.log tripin.log || exit 1 diff $testdir/tripin.log tripin.log # May as well test non-ini second time through. $_tex --progname=tex <$testdir/trip2.in >trip.fot diff $testdir/trip.fot trip.fot # We use $DIFF instead of `diff' only for those files where there # might actually be legitimate numerical differences. $DIFF $DIFFFLAGS $testdir/trip.log trip.log diff $testdir/tripos.tex tripos.tex || is_OK=false eval $_dvitype $dvitype_args trip.dvi >trip.typ || exit 1 $DIFF $DIFFFLAGS $testdir/trip.typ trip.typ for f in tripin.log trip.fot trip.log trip.typ; do sed -f filter $testdir/$f >a/$f sed -f filter $f >b/$f diff a/$f b/$f || is_OK=false done $is_OK && { echo ">>> All differences are acceptable." >&2 } || { echo "*** Error(s) found in trip test, investigate!" >&2 exit 1 }