summaryrefslogtreecommitdiff
path: root/Build/source/texk/web2c/triptest
blob: a522fe75ed3093a3e200e5d60caa454e3892581d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
#! /bin/sh

# Copyright (C) 2009-2014 Peter Breitenlohner <tex-live@tug.org>
# You may freely use, modify and/or distribute this file.

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 ##,
	/^\\openout.*/,/^$/d
	s/ (TeX Live 20[^)]*)//
	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 20..\...\...:..../TeX output 20YY.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
$LN_S $testdir/trip.tex .

../tex --progname=initex --ini <$testdir/trip1.in >tripin.fot
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

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 $testdir/$f -f filter >a/$f
  sed $f -f filter >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
}