Fix a regression in [r8062] (extra space with French smartquotes again).
[docutils.git] / sandbox / manpage-writer / runtest
blobc437f84b32ef1b2f1e37810de6d94ee890a3edfe
1 #!/bin/sh
3 # manpage tests using man/roff
5 # Contact: grubert@users.sourceforge.net
6 # Revision: $Revision$
7 # Date: $Date$
8 # Copyright: This script has been placed in the public domain.
10 IN_DIR=input
11 OUT_DIR=output
12 EXP_DIR=expected
14 if [ -z "`man -?|grep -- '^ *-T'`" ] ; then
15 echo 'WARNING: your man does not support "-T Format" to specify encoding'
16 echo 'SKIPPING encoding tests'
17 ENCS=""
18 else
19 ENCS="latin1 utf8 ascii ps"
22 if [ -z "$1" ] ; then
23 FILES=*.txt
24 else
25 FILES=$1
28 ERROR_CNT=0
30 inc_ERROR_CNT () {
31 ERROR_CNT=$(( ERROR_CNT + 1 ))
34 report_ERROR_CNT () {
35 echo "$ERROR_CNT errors"
38 CMD="../../docutils/tools/rst2man.py --traceback"
40 for IN_F in $IN_DIR/$FILES ; do
41 BASE=`basename $IN_F`
42 F_BASE=${BASE%.txt}
43 if echo $F_BASE | grep -q -- '-de\.' ; then
44 OPT="-l de"
45 else
46 OPT=""
48 $CMD $OPT $IN_F $OUT_DIR/$F_BASE.man
49 if [ $? -eq 0 ] ; then
50 diff -s -u $EXP_DIR/$F_BASE.man $OUT_DIR/$F_BASE.man
51 if [ $? -ne 0 ] ; then
52 inc_ERROR_CNT
54 for ENC in $ENCS ; do
55 if [ -e $EXP_DIR/$F_BASE.$ENC ] ; then
56 man -T$ENC $OUT_DIR/$F_BASE.man > $OUT_DIR/$F_BASE.$ENC
57 diff -s -u $EXP_DIR/$F_BASE.$ENC $OUT_DIR/$F_BASE.$ENC
58 if [ $? -ne 0 ] ; then
59 inc_ERROR_CNT
62 done
64 done
66 if [ -n "$1" ] ; then
67 report_ERROR_CNT
68 exit
71 # language test
72 for L in "en" "de" ; do
73 for IN_F in $IN_DIR/docinfo-*.txt ; do
74 BASE=`basename $IN_F`
75 F_BASE=${BASE%.txt}
76 OPT="-l $L"
77 EXT="-l_$L"
78 $CMD $OPT $IN_F $OUT_DIR/$F_BASE$EXT.man
79 if [ $? -eq 0 ] ; then
80 diff -s -u $EXP_DIR/$F_BASE$EXT.man $OUT_DIR/$F_BASE$EXT.man
81 if [ $? -ne 0 ] ; then
82 inc_ERROR_CNT
85 done
86 done
88 report_ERROR_CNT