run-tests revision 1.1.1.2 1 #! /bin/sh
2
3 # Copyright (C) 2000-2002, 2004, 2005, 2011, 2012, 2016 Niels Mller
4 #
5 # This program is free software; you can redistribute it and/or modify
6 # it under the terms of the GNU General Public License as published by
7 # the Free Software Foundation; either version 2 of the License, or
8 # (at your option) any later version.
9 #
10 # This program is distributed in the hope that it will be useful,
11 # but WITHOUT ANY WARRANTY; without even the implied warranty of
12 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 # GNU General Public License for more details.
14 #
15 # You should have received a copy of the GNU General Public License along
16 # with this program; if not, write to the Free Software Foundation, Inc.,
17 # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18
19 failed=0
20 all=0
21
22 debug='no'
23 testflags=''
24
25 if [ -z "$srcdir" ] ; then
26 srcdir=`pwd`
27 fi
28
29 export srcdir
30
31 # When used in make rules, we sometimes get the filenames VPATH
32 # expanded, but usually not.
33 find_program () {
34 case "$1" in
35 */*)
36 echo "$1"
37 ;;
38 *)
39 if [ -x "$1" ] ; then
40 echo "./$1"
41 else
42 echo "$srcdir/$1"
43 fi
44 ;;
45 esac
46 }
47
48 env_program () {
49 if [ -x "$1" ] ; then
50 if "$1"; then : ; else
51 echo FAIL: $1
52 exit 1
53 fi
54 fi
55 }
56
57 TEST_LD_LIBRARY_PATH="$LD_LIBRARY_PATH"
58 TEST_DYLD_LIBRARY_PATH="$DYLD_LIBRARY_PATH"
59
60 if [ "$TEST_LIBRARY_PATH" ] ; then
61 TEST_LD_LIBRARY_PATH="$TEST_LIBRARY_PATH:$TEST_LD_LIBRARY_PATH"
62 TEST_DYLD_LIBRARY_PATH="$TEST_LIBRARY_PATH:$TEST_DYLD_LIBRARY_PATH"
63 fi
64
65 test_program () {
66 testname=`basename "$1" .exe`
67 testname=`basename "$testname" -test`
68 if [ -z "$EMULATOR" ] || head -1 "$1" | grep '^#!' > /dev/null; then
69 LD_LIBRARY_PATH="$TEST_LD_LIBRARY_PATH" \
70 DYLD_LIBRARY_PATH="$TEST_DYLD_LIBRARY_PATH" \
71 "$1" $testflags
72 else
73 $EMULATOR "$1" $testflags
74 fi
75 case "$?" in
76 0)
77 echo PASS: $testname
78 all=`expr $all + 1`
79 ;;
80 77)
81 echo SKIP: $testname
82 ;;
83 *)
84 echo FAIL: $testname
85 failed=`expr $failed + 1`
86 all=`expr $all + 1`
87 ;;
88 esac
89 }
90
91 env_program `find_program setup-env`
92
93 while test $# != 0
94 do
95 case "$1" in
96 --debug)
97 debug=yes
98 ;;
99 -v)
100 testflags='-v'
101 ;;
102 -*)
103 echo >&2 'Unknown option `'"$1'"
104 exit 1
105 ;;
106 *)
107 break
108 ;;
109 esac
110 shift
111 done
112
113 # Comment out special handling for zero arguments to support separate
114 # tests-build/tests-run.
115 #if [ $# -eq 0 ] ; then
116 # for f in *-test; do test_program "./$f"; done
117 #else
118 for f in "$@" ; do test_program `find_program "$f"`; done
119 #fi
120
121 if [ $failed -eq 0 ] ; then
122 banner="All $all tests passed"
123 else
124 banner="$failed of $all tests failed"
125 fi
126 dashes=`echo "$banner" | sed s/./=/g`
127 echo "$dashes"
128 echo "$banner"
129 echo "$dashes"
130
131 if [ "x$debug" = xno ] ; then
132 env_program `find_program teardown-env`
133 fi
134
135 [ "$failed" -eq 0 ]
136