chiark / gitweb /
src/event.c: Use `continue' in adns_processreadable (style)
[adns.git] / regress / checkall
index 2191ae28cc18c30a8ce2efc6e87ed45bed2dd096..c63a294452d57261ccecbabbd764ecc0f605258a 100755 (executable)
@@ -1,29 +1,70 @@
 #!/bin/sh
+# usage: checkall
+# runs all test cases
+#
+#  This file is part of adns, which is
+#    Copyright (C) 1997-2000,2003,2006  Ian Jackson
+#    Copyright (C) 1999-2000,2003,2006  Tony Finch
+#    Copyright (C) 1991 Massachusetts Institute of Technology
+#  (See the file INSTALL for full details.)
+#  
+#  This program is free software; you can redistribute it and/or modify
+#  it under the terms of the GNU General Public License as published by
+#  the Free Software Foundation; either version 2, or (at your option)
+#  any later version.
+#  
+#  This program is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#  GNU General Public License for more details.
+#  
+#  You should have received a copy of the GNU General Public License
+#  along with this program; if not, write to the Free Software Foundation,
+#  Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 
 
-allok=true
+set -e
 
-for f in case-*.sys
+: ${srcdir=.}
+failed=''
+passed=''
+skipped=''
+
+for f in $srcdir/case-*.sys
 do
-       case="`echo \"$f\" | sed -e 's/^case-//; s/\.sys$//'`"
-       if ./r1test $case
-       then
-               :
-       else
-               echo
-               allok=false
+       case="`echo \"$f\" | sed -e 's:^.*/::; s/^case-//; s/\.sys$//'`"
+       set +e
+       $srcdir/r1test $case
+       rc=$?
+       set -e
+       case $rc in
+       0)      passed="$passed $case" ;;
+       5)      skipped="$skipped $case" ;;
+       *)      echo
+               failed="$failed $case"
                echo
-       fi
+               ;;
+       esac
 done
 
-if $allok
+if [ "x$failed" = x ]
 then
        echo "
-all tests passed."
+"
+       if [ "x$skipped" = x ]
+       then
+               echo "all tests passed."
+       else
+               echo "all applicable tests passed (skipped:$skipped)"
+       fi
+       echo
        exit 0
 fi
 
-echo >&2 '
+echo >&2 "
 AT LEAST ONE TEST FAILED
-'
+passed tests:${passed:- NONE}
+skipped tests:${skipped:- NONE}
+failed tests:$failed
+"
 
 exit 1