chiark / gitweb /
changelog: work on documentation of changes since ea31544cc33a
[secnet.git] / comprehensive-test
index 12d63d6972ec467317de7bba67ab02ec002002d9..cf01c7b0d736931a5aeaa6b08f28e2896cc23f4b 100755 (executable)
@@ -15,6 +15,19 @@ for arg in "$@"; do
     esac
 done
 
+case "${OLD_SECNET_DIR:?must be set, perhaps to the empty string}" in
+    ''|/*)
+        ;;
+    ../*)
+       OLD_SECNET_DIR="${PWD%/*}/${OLD_SECNET_DIR#../}"
+       echo >&2 "x OLD_SECNET_DIR=$OLD_SECNET_DIR"
+       ;;
+    *)
+       echo >&2 "relative non-.. OLD_SECNET_DIR $OLD_SECNET_DIR !";
+       exit 1
+       ;;
+esac
+
 x () { echo >&2 "x $*"; "$@"; }
 
 srcdir=$(pwd)
@@ -30,6 +43,29 @@ build_and_test () {
     x cd "$1"
     x "$srcdir/configure" CFLAGS='-O0 -g'
     x make $mflags all check
+    for t in mtest/check stest/check; do
+       x make $mflags clean
+       x make $mflags $t
+    done
+    x make $mflags clean
+    if [ "x$1" != x. ]; then
+        find -type f
+     else
+        git-ls-files -o
+    fi | perl -ne '
+       s{^\./}{};
+       s{^}{/};
+        next if m{^/ct-files$};
+        next if m{^/autom4te\.cache/};
+        next if m{/Makefile$};
+       next if m{\.mk$};
+       next if m{^/common\.make$};
+       next if m{^/(?:config|\.makefiles)\.stamp$};
+       next if m{^/config\.(?:log|status|h)$};
+        warn "clean in '"$1"' missed $_";
+        $bad=1;
+        END { exit $bad; }
+    '
     cd "$srcdir"
 }