Standard transformations are done. Tests added. HTML output works.
[docutils/kirr.git] / sandbox / grubert / runtest
blobd97ae12d882cef30ace9eb6dcd8caaf2056876e0
1 #!/bin/bash
3 # quick latex writer test runner
4 # $Id$
6 CHECKS=0
7 FAILS=0
8 FAIL_QUEUE=""
10 function do_diff() {
11 CHECKS=$((CHECKS + 1))
12 diff -q -s $1 $2
13 if test $? -gt 0 ; then
14 FAILS=$((FAILS + 1))
15 FAIL_QUEUE="$FAIL_QUEUE,$1"
19 function report() {
20 echo "-------------------------------------"
21 if test $FAILS -eq 0 ; then
22 echo "OK: all $CHECKS tests passed"
23 else
24 echo "ERROR: $FAILS of $CHECKS failed"
25 echo "Failed tests: $FAIL_QUEUE"
29 BARE_CMD="../../docutils/tools/rst2latex.py --traceback "
30 BASE_CMD="$BARE_CMD --stylesheet= "
32 CMD="$BASE_CMD"
33 if [ -z "$1" ] ; then
34 FM="*.txt"
35 else
36 FM=$1
39 for INF in `ls test/$FM` ; do
40 OUTF="$INF.tex"
41 REFF="$OUTF.ref"
42 OPT=""
43 if [ $INF = "test/unicode-box.txt" ] ; then
44 OPT="-o utf-8:strict"
46 $CMD $OPT $2 $3 $INF > $OUTF
47 do_diff $REFF $OUTF
48 done
50 if [ -n "$1" -a ! "$1" == "-" ] ; then
51 report
52 exit
55 # stylesheet embedding
57 # fail for no extension
58 INF=test/header.txt
59 STF=test/dummy_stylesheet
60 echo -e "% dummy stylesheet\n% second line" > $STF
61 OUTF="$INF-embed-stylesheet.err"
62 REFF="$OUTF.ref"
63 $CMD --stylesheet-path=$STF --embed-stylesheet $2 $3 $INF > $OUTF 2>&1
64 do_diff $REFF $OUTF
65 # embed for .inc
66 mv $STF $STF.inc
67 OUTF="$INF-embed-stylesheet.tex"
68 REFF="$OUTF.ref"
69 $CMD --stylesheet-path=$STF.inc --embed-stylesheet $2 $3 $INF > $OUTF 2>&1
70 do_diff $REFF $OUTF
71 # embed for .sty
72 mv $STF.inc $STF.sty
73 OUTF="$INF-embed-stylesheet-sty.tex"
74 REFF="$OUTF.ref"
75 $CMD --stylesheet-path=$STF.sty --embed-stylesheet $2 $3 $INF > $OUTF 2>&1
76 do_diff $REFF $OUTF
77 exit
78 INF=test/header.txt
79 for GO in "" auto pdftex dvips,300dpi ; do
80 OUTF="$INF-graphicx-option-$GO.tex"
81 REFF="$OUTF.ref"
82 $CMD --graphicx-option=$GO $2 $3 $INF > $OUTF
83 do_diff $REFF $OUTF
84 done
86 # font encoding
87 for FONTENC in "" T1 OT1 ; do
88 for INF in `ls test/characters.txt` ; do
89 OUTF="$INF-$FONTENC.tex"
90 REFF="$OUTF.ref"
91 if [ -z $FONTENC ] ; then
92 $CMD $2 $3 $INF > $OUTF
93 else
94 $CMD --font-encoding=$FONTENC $2 $3 $INF > $OUTF
96 do_diff $REFF $OUTF
97 done
98 done
100 # reference-label
101 for LR in "" "ref" ; do
102 for INF in test/links.txt ; do
103 OUTF="$INF-$LR.tex"
104 REFF="$OUTF.ref"
105 $CMD --reference-label=$LR $2 $3 $INF > $OUTF
106 do_diff $REFF $OUTF
107 done
108 done
110 INF="test/tables.txt"
111 OUTF="$INF-verbatim.tex"
112 REFF="$OUTF.ref"
113 $CMD --use-verbatim-when-possible $2 $3 $INF > $OUTF
114 do_diff $REFF $OUTF
116 INF="test/tables.txt"
117 OUTF="$INF-literal-block-env.tex"
118 REFF="$OUTF.ref"
119 $CMD --literal-block-env="lstlisting[language=Python]" $2 $3 $INF > $OUTF
120 do_diff $REFF $OUTF
122 # table-style
123 for TABSTYLE in "" standard booktabs nolines ; do
124 for INF in `ls test/tables.txt` ; do
125 OUTF="$INF-$TABSTYLE.tex"
126 REFF="$OUTF.ref"
127 if [ -z $TABSTYLE ] ; then
128 $CMD $2 $3 $INF > $OUTF
129 else
130 $CMD --table-style=$TABSTYLE $2 $3 $INF > $OUTF
132 do_diff $REFF $OUTF
133 done
134 done
136 INF=test/sections.txt
137 OUTF="$INF-parts.tex"
138 REFF="$OUTF.ref"
139 $CMD --use-part-section $2 $3 $INF > $OUTF
140 do_diff $REFF $OUTF
142 # rowspan tables
143 INF=test/tables-multirow.txt
144 OUTF="$INF.tex"
145 REFF="$OUTF.ref"
146 $CMD $INF > $OUTF
147 do_diff $REFF $OUTF
149 # with generated footer
150 INF=test/docinfo.txt
151 OUTF="$INF-gs.tex"
152 REFF="$OUTF.ref"
153 $CMD $INF > $OUTF
154 do_diff $REFF $OUTF
156 CMD="$BASE_CMD --documentclass=book"
157 INF=test/docinfo.txt
158 OUTF="$INF-book.tex"
159 REFF="$OUTF.ref"
160 $CMD $INF > $OUTF
161 do_diff $REFF $OUTF
163 CMD="$BASE_CMD --documentclass=custom"
164 INF=test/docinfo.txt
165 OUTF="$INF-custom.tex"
166 REFF="$OUTF.ref"
167 $CMD $INF > $OUTF
168 do_diff $REFF $OUTF
170 CMD="$BASE_CMD --no-doc-info"
171 INF=test/docinfo.txt
172 OUTF="$INF-no-info.tex"
173 REFF="$OUTF.ref"
174 $CMD $INF > $OUTF
175 do_diff $REFF $OUTF
177 CMD="$BASE_CMD --no-doc-title"
178 INF=test/docinfo.txt
179 OUTF="$INF-no-title.tex"
180 REFF="$OUTF.ref"
181 $CMD $INF > $OUTF
182 do_diff $REFF $OUTF
184 CMD="$BASE_CMD --no-doc-title --no-doc-info"
185 INF=test/docinfo.txt
186 OUTF="$INF-no-title-info.tex"
187 REFF="$OUTF.ref"
188 $CMD $INF > $OUTF
189 do_diff $REFF $OUTF
191 CMD="$BASE_CMD --use-titlepage-env"
192 for F in docinfo docinfo-1 docinfo-2 docinfo-3 ; do
193 INF=test/$F.txt
194 OUTF="$INF-use-titlepage-env.tex"
195 REFF="$OUTF.ref"
196 $CMD $INF > $OUTF
197 do_diff $REFF $OUTF
198 done
200 CMD="$BASE_CMD --use-latex-abstract --use-titlepage-env"
201 for F in docinfo-2 docinfo-3 ; do
202 INF=test/$F.txt
203 OUTF="$INF-use-titlepage-env-latexabstract.tex"
204 REFF="$OUTF.ref"
205 $CMD $INF > $OUTF
206 do_diff $REFF $OUTF
207 done
209 CMD="$BASE_CMD --use-latex-abstract"
210 F=docinfo-2
211 INF=test/$F.txt
212 OUTF="$INF-use-latex-abstract.tex"
213 REFF="$OUTF.ref"
214 $CMD $INF > $OUTF
215 do_diff $REFF $OUTF
217 CMD="$BASE_CMD --use-latex-docinfo"
218 for F in docinfo docinfo-2 ; do
219 INF=test/$F.txt
220 OUTF="$INF-use-latex-docinfo.tex"
221 REFF="$OUTF.ref"
222 $CMD $INF > $OUTF
223 do_diff $REFF $OUTF
224 done
226 CMD="$BASE_CMD"
227 # with latex toc
228 for F in toc toc-autonr ; do
229 INF=test/$F.txt
230 OUTF="$INF-use-latex-toc.tex"
231 REFF="$OUTF.ref"
232 $CMD --use-latex-toc $INF > $OUTF
233 do_diff $REFF $OUTF
234 done
236 # german
237 for F in toc quotes ; do
238 for L in de fr it ; do
239 INF=test/$F.txt
240 OUTF="$INF-$L.tex"
241 REFF="$OUTF.ref"
242 $CMD -l $L $INF > $OUTF
243 do_diff $REFF $OUTF
244 done
245 done
247 # spanish --language=es flags inhibits --use-latex-docinfo when using
248 # --documentclass=book and --use-latex-toc
249 CMD="$BASE_CMD --documentclass=book --use-latex-toc --use-latex-docinfo"
250 for F in toc quotes ; do
251 INF=test/$F.txt
252 OUTF="$INF-latex-docinfo.tex"
253 REFF="$OUTF.ref"
254 $CMD $INF > $OUTF
255 LANG=es
256 do_diff $REFF $OUTF
257 OUTF="$INF-$LANG-latex-docinfo.tex"
258 REFF="$OUTF.ref"
259 $CMD --language=$LANG $INF > $OUTF
260 do_diff $REFF $OUTF
261 done
263 # use latex footnotes
264 CMD="$BASE_CMD --use-latex-footnotes"
265 INF=test/footnotes.txt
266 OUTF="$INF-use-latex-footnotes.tex"
267 REFF="$OUTF.ref"
268 $CMD $INF > $OUTF
269 do_diff $REFF $OUTF
271 # use latex citations
272 CMD="$BASE_CMD --use-latex-citations"
273 for F in footnotes.txt no-citations.txt citation_labels.txt ; do
274 INF=test/$F
275 OUTF="$INF-use-latex-citations.tex"
276 REFF="$OUTF.ref"
277 $CMD $INF > $OUTF
278 do_diff $REFF $OUTF
279 done
281 # use bibtex
282 INF=test/citations.txt
283 CMD="$BASE_CMD --use-latex-citations --use-bibtex=mystyle,mydb1,mydb2"
284 OUTF="$INF-use-bibtex.tex"
285 REFF="$OUTF.ref"
286 $CMD $INF > $OUTF
287 do_diff $REFF $OUTF
289 CMD="$BASE_CMD --use-verbatim-when-possible"
290 INF=test/literal.txt
291 OUTF="$INF-use-verbatim-when-possible.tex"
292 REFF="$OUTF.ref"
293 $CMD $INF > $OUTF
294 do_diff $REFF $OUTF
296 for L in en de es ; do
297 CMD="$BASE_CMD "
298 INF=test/literal.txt
299 OUTF="$INF-$L.tex"
300 REFF="$OUTF.ref"
301 $CMD --lang=$L $INF > $OUTF
302 do_diff $REFF $OUTF
303 OUTF="$INF-$L-verb.tex"
304 REFF="$OUTF.ref"
305 $CMD --use-verbatim-when-possible --language=$L $INF > $OUTF
306 do_diff $REFF $OUTF
307 done
309 report
310 echo "CHECK: toc with latex toc "
312 exit
314 # lost test files.
316 INF=test/kasten.txt
317 OUTF="$INF-de.tex"
318 REFF="$OUTF.ref"
319 $CMD -l de $INF > $OUTF
320 do_diff $REFF $OUTF
322 CMD="$BASE_CMD --attribution=parens"
323 INF=test/attribution.txt
324 OUTF="$INF-parens-attribution.tex"
325 REFF="$OUTF.ref"
326 $CMD $INF > $OUTF
327 do_diff $REFF $OUTF
329 INF=test/iso-8859-15.txt
330 OUTF="$INF-enc.tex"
331 REFF="$OUTF.ref"
332 $CMD --input-encoding=iso-8859-15 --output-encoding=iso-8859-15 $INF > $OUTF
333 do_diff $REFF $OUTF