chiark / gitweb /
changelog: start 0.6.8
[secnet.git] / comprehensive-test
index 12d63d6972ec467317de7bba67ab02ec002002d9..919c690fbb6c5510dc3c5fead70b8d66fa6d9f6d 100755 (executable)
@@ -1,4 +1,9 @@
 #!/bin/bash
+# This file is part of secnet.
+# See LICENCE and this file CREDITS for full list of copyright holders.
+# SPDX-License-Identifier: GPL-3.0-or-later
+# There is NO WARRANTY.
+
 set -e
 set -o pipefail
 
@@ -15,6 +20,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 +48,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"
 }