chiark / gitweb /
test suite: manpages-format: Test -Tps too
[dgit.git] / tests / tests / manpages-format
index 4b9585f2618990edb4a0596da65af1a3f5224ef4..3f3362b6ea8e3dd429593b3ca0596a02f0a482d8 100755 (executable)
@@ -19,15 +19,17 @@ run_man () {
                make $roff >&2
                cmd='man "$@" -l $roff'
        fi
-       eval "$cmd 2>&1 >/dev/null |tee $errs >&2"
+       eval "$cmd 2>&1 >/dev/null |tee $errs"
 }
 
 for roff in $manpages; do
-       >$tmp/$roff.expected
+       for fmt in txt ps; do
+               >$tmp/$roff.$fmt-expected
+       done
 done
 
 expected () {
-       cat >$tmp/$1.expected
+       cat >$tmp/$2.$1-expected
 }
 
 not_egrep_vxPf () {
@@ -35,27 +37,42 @@ not_egrep_vxPf () {
        perl -ne '
                BEGIN () {
                        open PATS, shift @ARGV or die $!;
-                       $re = join "|", map { chomp; qr{^(?:$_)$} } <PATS>;
+                       $re = join "|", map { chomp; qr{^(?:$_)$} }
+                               qr{^(?=a)b}, <PATS>;
+                       print STDERR "RE $re\n";
                }
                next if m{$re};
                print STDERR "unexpected: $_";
                $bad = 1;
-               END { die "unexpected, re= $re\n" if $bad; }
+               END { die "unexpected errors\n" if $bad; }
        ' "$@"
 }
 
-expected dgit.1 <<'END'
+expected txt dgit.1 <<'END'
 .* # table wider than line width
 END
 
+prep () {
+       fmt=$1
+       errs=$tmp/$roff.$fmt-errs
+}
+
+check () {
+       perl -0777 -i~ -pe 's/\n[ \t]+/ # /' $errs
+       not_egrep_vxPf $tmp/$roff.$fmt-expected $errs
+}
+
 for roff in $manpages; do
        section=${roff##*.}
        page=${roff%.*}
 
-       errs=$tmp/$roff.errs
-       run_man >/dev/null
-       perl -0777 -i~ -pe 's/\n[ \t]+/ # /' $errs
-       not_egrep_vxPf $tmp/$roff.expected $errs
+       prep txt
+       run_man
+       check
+
+       prep ps
+       run_man -Tps
+       check
 done
 
 t-ok