diff --git a/tests/Makefile.am b/tests/Makefile.am index 16210aa..8ca2efd 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -7,7 +7,7 @@ ssh2_SOURCES = ssh2.c endif ctests = simple$(EXEEXT) -TESTS = $(ctests) +TESTS = $(ctests) mansyntax.sh if SSHD TESTS += ssh2.sh endif @@ -15,5 +15,5 @@ check_PROGRAMS = $(ctests) 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 diff --git a/tests/mansyntax.sh b/tests/mansyntax.sh new file mode 100755 index 0000000..3e72c25 --- /dev/null +++ b/tests/mansyntax.sh @@ -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