#! /bin/sh -vx # $Id$ # Copyright 2023 Japanese TeX Development Community # Copyright 2017 Karl Berry # Copyright 2009-2014 Peter Breitenlohner # You may freely use, modify and/or distribute this file. W2CDir=${W2CDir:-..} ExeExt=${ExeExt:-} _etex=$W2CDir/etex$ExeExt _pltotf=$W2CDir/pltotf$ExeExt _tftopl=$W2CDir/tftopl$ExeExt _dvitype=$W2CDir/dvitype$ExeExt testdir=$abs_srcdir/triptrap etestdir=$abs_srcdir/etexdir/etrip TEXMFCNF=$etestdir; export TEXMFCNF rm -rf etripdir mkdir etripdir cd etripdir mkdir -p a b # TeX Live generic cat >filter <<-\_EOF /^\*\* \&trip trip/d /^\*\*entering extended mode/d s,^(trip\.tex ##,**(./trip.tex ##, s,^## (\./trip\.tex,**(./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 # eTeX cat >>filter <<-\_EOF s/This is .*TeX,/This is *TeX,/ s/ Version 3\.141592653[^(]*(/ Version 3.141592653* (/ s/ before: [1-9][0-9][0-9][0-9]*&[1-9][0-9][0-9][0-9]*; / before: XXX\&YYY; / s/ after: [1-9][0-9][0-9][0-9]*&[1-9][0-9][0-9][0-9]*; / after: XXX\&YYY; / s/ still untouched: [1-9][0-9][0-9][0-9]*/ still untouched: XXX/ _EOF cat >filter1 <<-\_EOF :l N $!b l s/ inside a group at level 1).*bottom level/ inside a group at level 1)/ _EOF dvitype_args="-output-level=2 -dpi=72.27 -page-start='*.*.*.*.*.*.*.*.*.*'" echo ">>> Running e-TRIP test for e-TeX." >&2 echo ">>> See $etestdir/etrip.diffs for example of acceptable diffs." >&2 is_OK=: set -x echo "*** TRIP test for e-TeX in compatibility mode ***." $_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 $LN_S $testdir/trip.tex . $_etex --progname=einitex --ini <$testdir/trip1.in >ctripin.fot if test ! -s trip.fmt; then echo "*** trip.fmt not created by trip1.in, investigate!" >&2 exit 1 fi mv trip.log ctripin.log || exit 1 diff $testdir/tripin.log ctripin.log # May as well test non-ini second time through. $_etex --progname=etex <$testdir/trip2.in >ctrip.fot mv trip.log ctrip.log #diff $testdir/trip.fot ctrip.fot # We use $DIFF instead of `diff' only for those files where there # might actually be legitimate numerical differences. $DIFF $DIFFFLAGS $testdir/trip.log ctrip.log mv tripos.tex ctripos.tex diff $testdir/tripos.tex ctripos.tex eval $_dvitype $dvitype_args trip.dvi >ctrip.typ || exit 1 #$DIFF $DIFFFLAGS $testdir/trip.typ ctrip.typ for f in trip.fot trip.typ; do sed -f filter $testdir/$f >a/$f sed -f filter c$f >b/$f diff a/$f b/$f || is_OK=false done mv trip.fmt ctrip.fmt # ============================== echo "*** TRIP test for e-TeX in extended mode ***." $_etex --progname=einitex --ini <$etestdir/etrip1.in >xtripin.fot if test ! -s trip.fmt; then echo "*** trip.fmt not created by etrip1.in, investigate!" >&2 exit 1 fi mv trip.log xtripin.log || exit 1 diff ctripin.log xtripin.log # May as well test non-ini second time through. $_etex --progname=etex <$etestdir/trip2.in >xtrip.fot mv trip.log xtrip.log #diff ctrip.fot xtrip.fot # We use $DIFF instead of `diff' only for those files where there # might actually be legitimate numerical differences. $DIFF $DIFFFLAGS ctrip.log xtrip.log mv tripos.tex xtripos.tex diff $testdir/tripos.tex xtripos.tex eval $_dvitype $dvitype_args trip.dvi >xtrip.typ || exit 1 #$DIFF $DIFFFLAGS ctrip.typ xtrip.typ for f in trip.fot trip.typ; do sed -f filter c$f >a/x$f sed -f filter x$f | sed -f filter1 >b/x$f diff a/x$f b/x$f || is_OK=false done mv trip.fmt xtrip.fmt # ============================== echo "*** e-TeX specific part of e-TRIP test ***." $_pltotf $etestdir/etrip.pl etrip.tfm || exit 1 $_tftopl ./etrip.tfm etrip.pl || exit 1 diff $etestdir/etrip.pl etrip.pl || is_OK=false # get same filename in log $LN_S $etestdir/etrip.tex . $_etex --progname=einitex --ini <$etestdir/etrip2.in >etripin.fot if test ! -s etrip.fmt; then echo "*** etrip.fmt not created by etrip2.in, investigate!" >&2 exit 1 fi mv etrip.log etripin.log || exit 1 diff $etestdir/etripin.log etripin.log # May as well test non-ini second time through. $_etex --progname=etex <$etestdir/etrip3.in >etrip.fot #diff $etestdir/etrip.fot etrip.fot # We use $DIFF instead of `diff' only for those files where there # might actually be legitimate numerical differences. $DIFF $DIFFFLAGS $etestdir/etrip.log etrip.log diff $etestdir/etrip.out etrip.out eval $_dvitype $dvitype_args etrip.dvi >etrip.typ || exit 1 #$DIFF $DIFFFLAGS $etestdir/etrip.typ etrip.typ for f in trip.fot trip.typ; do sed -f filter $etestdir/e$f >a/e$f sed -f filter e$f >b/e$f diff a/e$f b/e$f || is_OK=false done $is_OK || { echo ">>> There were some errors." >&2 exit 1 }