summaryrefslogtreecommitdiff
path: root/Build/source/texk/dviout-util/dvispc.test
blob: f477921e759246283b43a691c9ee4caa56ba954f (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
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
#! /bin/sh -vx
# $Id$
# Copyright (C) 2018 Japanese TeX Development Community <issue@texjp.org>
# You may freely use, modify and/or distribute this file.

testdir=$srcdir/tests

# pre-generated test results in the repository are stored in LF
# but the output might be written in CRLF on some platform.
# if 'diff --strip-trailing-cr' is available, exploit it.
# (useful for tests on win32 binaries run on MSYS shell)
diffoptCRLF=
diff --strip-trailing-cr $testdir/test.spc $testdir/test.spc \
  && diffoptCRLF=--strip-trailing-cr || echo


## EXE2SPECIAL

./dvispc -s $testdir/test.dvi xtest.spc && \
  diff $diffoptCRLF $testdir/test.spc xtest.spc && echo || exit 1

./dvispc -s $testdir/test.dvi > x1test.spc && \
  diff $diffoptCRLF $testdir/test.spc x1test.spc && echo || exit 2

## invalid usage
#./dvispc -s < $testdir/test.dvi x2test.spc && \
#  diff $testdir/test.spc x2test.spc && echo || exit 0

## stdin is a DVI, random access may not be supported, no test
#./dvispc -s < $testdir/test.dvi > x3test.spc && \
#  diff $testdir/test.spc x3test.spc && echo || exit 3


## EXE2TEXT + EXE2DVI

./dvispc -a $testdir/test.dvi xtesta.txt && \
  ./dvispc -x xtesta.txt xtestax.dvi && \
  cmp $testdir/test.dvi xtestax.dvi && echo || exit 4

./dvispc -a $testdir/test.dvi > x1testa.txt && \
  ./dvispc -x < x1testa.txt > x1testax.dvi && \
  cmp $testdir/test.dvi x1testax.dvi && echo || exit 5

# not working as expected only for test (redirect??)
#./dvispc -a $testdir/test.dvi | ./dvispc -x x2testax.dvi && \
#  cmp $testdir/test.dvi x2testax.dvi && echo || exit 6

./dvispc -a $testdir/test.dvi | ./dvispc -x > x3testax.dvi && \
  cmp $testdir/test.dvi x3testax.dvi && echo || exit 7


## EXE2INDEP

./dvispc -c $testdir/oldindep.dvi xoldindepout.dvi && \
  cmp $testdir/oldindepout.dvi xoldindepout.dvi && echo || exit 1

./dvispc -c $testdir/oldindep.dvi > x1oldindepout.dvi && \
  cmp $testdir/oldindepout.dvi x1oldindepout.dvi && echo || exit 2

## check default overwrite
# not working as expected only for test (redirect??)
#cp $testdir/oldindep.dvi x3write.dvi && \
#  ./dvispc x3write.dvi
#  cmp $testdir/oldindepout.dvi x3write.dvi && echo || exit 3

./dvispc && echo || exit 0

# the following tests include
#   * correction of dvipdfmx-style specials
#   * correction of long (>255) specials
#   * correction in reversed order which requires prior scanning
# so will not pass for old version written by SHIMA.
# that version can be distinguished from the new version by
# exit code 1 for usage without argument. (the above line did it!)

./dvispc -c $testdir/test.dvi xtestout.dvi && \
  cmp $testdir/testout.dvi xtestout.dvi && echo || exit 4

./dvispc -c $testdir/test.dvi > x1testout.dvi && \
  cmp $testdir/testout.dvi x1testout.dvi && echo || exit 5

## invalid usage
#./dvispc -c < $testdir/test.dvi x2testout.dvi && \
#  cmp $testdir/testout.dvi x2testout.dvi && echo || exit 0

## stdin is a DVI, random access may not be supported, no test
#./dvispc -c < $testdir/test.dvi > x3testout.dvi && \
#  cmp $testdir/testout.dvi x3testout.dvi && echo || exit 6

./dvispc -c $testdir/longspec.dvi xlongspecout.dvi && \
  cmp $testdir/longspecout.dvi xlongspecout.dvi && echo || exit 7

## check default is -c
./dvispc $testdir/longspec.dvi x1longspecout.dvi && \
  cmp $testdir/longspecout.dvi x1longspecout.dvi && echo || exit 8

## check -b backup works (old version did not work)
# not working as expected only for test (redirect??)
#cp $testdir/oldindep.dvi x4write.dvi && \
#  ./dvispc -b x4write.dvi
#  cmp $testdir/oldindepout.dvi x4write.dvi && echo || exit 9
#  cmp $testdir/oldindep.dvi x4write.dvi.bak && echo || exit 9

## without .dvi extension (old version missed for outfile)
cp $testdir/oldindep.dvi x5write.dvi && \
  ./dvispc x5write x5writeout
  cmp $testdir/oldindepout.dvi x5writeout.dvi && echo || exit 10


exit 0