Add manpage syntax checker to 'check' target

In virtually every libssh2 release Debian's lintian catches syntax errors in
manpages. Prevent it by checking manpages as a part of testsuite.
This commit is contained in:
Mikhail Gusarov 2011-09-10 15:57:12 +02:00 committed by Daniel Stenberg
parent d2dc600be7
commit 8d3709f57a
2 changed files with 37 additions and 2 deletions

View File

@ -7,7 +7,7 @@ ssh2_SOURCES = ssh2.c
endif endif
ctests = simple$(EXEEXT) ctests = simple$(EXEEXT)
TESTS = $(ctests) TESTS = $(ctests) mansyntax.sh
if SSHD if SSHD
TESTS += ssh2.sh TESTS += ssh2.sh
endif endif
@ -15,5 +15,5 @@ check_PROGRAMS = $(ctests)
TESTS_ENVIRONMENT = SSHD=$(SSHD) EXEEXT=$(EXEEXT) TESTS_ENVIRONMENT = SSHD=$(SSHD) EXEEXT=$(EXEEXT)
EXTRA_DIST = ssh2.sh EXTRA_DIST = ssh2.sh mansyntax.sh
EXTRA_DIST += etc/host etc/host.pub etc/user etc/user.pub EXTRA_DIST += etc/host etc/host.pub etc/user etc/user.pub

35
tests/mansyntax.sh Executable file
View File

@ -0,0 +1,35 @@
#!/bin/sh
set -e
# Written by Mikhail Gusarov
#
# Run syntax checks for all manpages in the documentation tree.
#
srcdir=${srcdir:-$PWD}
mandir=${srcdir}/../docs
#
# Only test if suitable man is available
#
if ! man --help | grep -q warnings; then
exit 77
fi
ec=0
trap "rm -f $srcdir/man3" EXIT
ln -sf "$mandir" "$srcdir/man3"
for manpage in $mandir/libssh2_*.*; do
echo "$manpage"
warnings=$(LANG=en_US.UTF-8 MANWIDTH=80 man -M "$srcdir" --warnings \
-E UTF-8 -l "$manpage" 2>&1 >/dev/null)
if [ -n "$warnings" ]; then
echo "$warnings"
ec=1
fi
done
exit $ec