summaryrefslogtreecommitdiffstats
path: root/regress/regress.sh
diff options
context:
space:
mode:
Diffstat (limited to 'regress/regress.sh')
-rwxr-xr-xregress/regress.sh39
1 files changed, 39 insertions, 0 deletions
diff --git a/regress/regress.sh b/regress/regress.sh
new file mode 100755
index 00000000..baa7e819
--- /dev/null
+++ b/regress/regress.sh
@@ -0,0 +1,39 @@
+#!/bin/sh
+
+MANDOC=${MANDOC:-../mandoc}
+NROFF=${NROFF:-nroff}
+OUTPUT=${NROFF_OUTPUT:--Tascii}
+
+check_skip_list() {
+ [ -f skip_list ] || return 1
+ while read file; do
+ [ "$file" != "$1" ] || return 0
+ done < skip_list
+ return 1
+}
+
+rm -rf output
+
+echo "Starting regression tests..."
+pass=0
+failed=0
+for file in */*.1 */*/*.1; do
+ [ -f "$file" ] || continue
+ check_skip_list "$file" && break
+ printf "%s: " "$file"
+ mandoc "$file" > test.mandoc 2> /dev/null
+ ${NROFF} ${OUTPUT} -mandoc "$file" > test.nroff 2> /dev/null
+ if cmp -s test.mandoc test.nroff; then
+ echo "passed"
+ pass=`expr $pass + 1`
+ else
+ file2="output/$file"
+ mkdir -p `dirname $file2`
+ echo "failed, see $file2"
+ failed=`expr $failed + 1`
+ mv test.nroff "${file2}".nroff
+ mv test.mandoc "${file2}".mandoc
+ diff -u "${file2}".nroff "${file2}".mandoc > "${file2}".diff
+ fi
+done
+echo "Total: $pass passed, $failed failed"