]> arthur.barton.de Git - bup.git/blob - wvtest.sh
0ed5fb0cdadb541ffc2e6a0847429c86907a4da0
[bup.git] / wvtest.sh
1 WVIFS=" 
2 "
3
4 # we don't quote $TEXT in case it contains newlines; newlines
5 # aren't allowed in test output.  However, we set -f so that
6 # at least shell glob characters aren't processed.
7 _textclean()
8 {
9         ( set -f; echo $* )
10 }
11
12 _wvcheck()
13 {
14         CODE="$1"
15         TEXT=$(_textclean "$2")
16         OK=ok
17         if [ "$CODE" -ne 0 ]; then
18                 OK=FAILED
19         fi
20         echo "! ${BASH_SOURCE[2]}:${BASH_LINENO[1]}  $TEXT  $OK" >&2
21         if [ "$CODE" -ne 0 ]; then
22                 exit $CODE
23         else
24                 return 0
25         fi
26 }
27
28
29 WVPASS()
30 {
31         #xIFS="$IFS"
32         #IFS="$WVIFS"
33         TEXT="$*"
34         #IFS="$xIFS"
35         
36         if "$@"; then
37                 _wvcheck 0 "$TEXT"
38                 return 0
39         else
40                 _wvcheck 1 "$TEXT"
41                 # NOTREACHED
42                 return 1
43         fi
44 }
45
46
47 WVFAIL()
48 {
49         #xIFS="$IFS"
50         #IFS="$WVIFS"
51         TEXT="$*"
52         #IFS="$xIFS"
53         
54         if "$@"; then
55                 _wvcheck 1 "NOT($TEXT)"
56                 # NOTREACHED
57                 return 1
58         else
59                 _wvcheck 0 "NOT($TEXT)"
60                 return 0
61         fi
62 }
63
64
65 WVSTART()
66 {
67         echo >&2
68         echo "Testing \"$*\" in ${BASH_SOURCE[1]}:" >&2
69 }