blob: 79efb87581af18278bff959c6ec5ab60a577ba07 (
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
|
#!/bin/bash
set -e
autoimport=
. tests/lib
t-dependencies man-db make groff git-debrebase
cd $root
printenv |grep MAKE ||: |sort
manpages=$(MAKEFLAGS= MAKELEVEL= make list-manpages)
export MANWIDTH=80
run_man () {
if [ "x${DGIT_MANPAGES_SOURCE_DIR}" = x ]; then
cmd='man "$@" $section $page'
else
make $roff >&2
cmd='man "$@" -l $roff'
fi
eval "$cmd 2>&1 >/dev/null |tee $errs"
}
for roff in $manpages; do
for fmt in txt; do
>$tmp/$roff.$fmt-expected
done
done
expected () {
cat >$tmp/$2.$1-expected
}
not_egrep_vxPf () {
# egrep -vxPf does not work, so we reimplement it
perl -ne '
BEGIN () {
open PATS, shift @ARGV or die $!;
$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 errors\n" if $bad; }
' "$@"
}
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%.*}
prep txt
run_man
check
done
t-ok
|