Imported Upstream version 2.4
[platform/upstream/nettle.git] / testsuite / run-tests
1 #! /bin/sh
2
3 failed=0
4 all=0
5
6 debug='no'
7 testflags=''
8
9 if [ -z "$srcdir" ] ; then
10   srcdir=`pwd`
11 fi
12
13 export srcdir
14
15 # When used in make rules, we sometimes get the filenames VPATH
16 # expanded, but usually not. 
17 find_program () {
18     case "$1" in
19         */*)
20           echo "$1"
21           ;;
22         *)
23           if [ -x "$1" ] ; then
24               echo "./$1"
25           else
26               echo "$srcdir/$1"
27           fi
28           ;;
29     esac
30 }
31
32 env_program () {
33   if [ -x "$1" ] ; then
34     if "$1"; then : ; else
35       echo FAIL: $1
36       exit 1
37     fi
38   fi
39 }
40
41 test_program () {
42   testname=`basename "$1" .exe`
43   testname=`basename "$testname" -test`
44   "$1" $testflags
45   case "$?" in
46       0)
47         echo PASS: $testname
48         all=`expr $all + 1`
49         ;;
50       77)
51         echo SKIP: $testname
52       ;;
53       *)
54         echo FAIL: $testname
55         failed=`expr $failed + 1`
56         all=`expr $all + 1`
57         ;;
58   esac
59 }
60
61 env_program `find_program setup-env`
62
63 while test $# != 0
64 do
65   case "$1" in
66   --debug)
67     debug=yes
68     ;;
69   -v)
70     testflags='-v'
71     ;;
72   -*)
73     echo >&2 'Unknown option `'"$1'" 
74     exit 1
75     ;;
76   *)
77     break
78     ;;
79   esac
80   shift
81 done
82   
83 if [ $# -eq 0 ] ; then
84   for f in *-test; do test_program "./$f"; done
85 else
86   for f in "$@" ; do test_program `find_program "$f"`; done
87 fi
88
89 if [ $failed -eq 0 ] ; then
90   banner="All $all tests passed"
91 else
92   banner="$failed of $all tests failed"
93 fi
94 dashes=`echo "$banner" | sed s/./=/g`
95 echo "$dashes"
96 echo "$banner"
97 echo "$dashes"
98
99 if [ "x$debug" = xno ] ; then
100   env_program `find_program teardown-env`
101 fi
102
103 [ "$failed" -eq 0 ]
104