]> arthur.barton.de Git - bup.git/blob - wvtest.sh
A bunch of wvtests for the 'bup index' command.
[bup.git] / wvtest.sh
1 # we don't quote $TEXT in case it contains newlines; newlines
2 # aren't allowed in test output.  However, we set -f so that
3 # at least shell glob characters aren't processed.
4 _textclean()
5 {
6         ( set -f; echo $* )
7 }
8
9 _wvcheck()
10 {
11         CODE="$1"
12         TEXT=$(_textclean "$2")
13         OK=ok
14         if [ "$CODE" -ne 0 ]; then
15                 OK=FAILED
16         fi
17         echo "! ${BASH_SOURCE[2]}:${BASH_LINENO[1]}  $TEXT  $OK" >&2
18         if [ "$CODE" -ne 0 ]; then
19                 exit $CODE
20         else
21                 return 0
22         fi
23 }
24
25
26 WVPASS()
27 {
28         TEXT="$*"
29         
30         if "$@"; then
31                 _wvcheck 0 "$TEXT"
32                 return 0
33         else
34                 _wvcheck 1 "$TEXT"
35                 # NOTREACHED
36                 return 1
37         fi
38 }
39
40
41 WVFAIL()
42 {
43         TEXT="$*"
44         
45         if "$@"; then
46                 _wvcheck 1 "NOT($TEXT)"
47                 # NOTREACHED
48                 return 1
49         else
50                 _wvcheck 0 "NOT($TEXT)"
51                 return 0
52         fi
53 }
54
55
56 _wvgetrv()
57 {
58         ( "$@" >&2 )
59         echo -n $?
60 }
61
62
63 WVPASSEQ()
64 {
65         WVPASS [ "$#" -eq 2 ]
66         echo "Comparing:" >&2
67         echo "$1" >&2
68         echo "--" >&2
69         echo "$2" >&2
70         _wvcheck $(_wvgetrv [ "$1" = "$2" ]) "'$1' = '$2'"
71 }
72
73
74 WVPASSNE()
75 {
76         WVPASS [ "$#" -eq 2 ]
77         echo "Comparing:" >&2
78         echo "$1" >&2
79         echo "--" >&2
80         echo "$2" >&2
81         _wvcheck $(_wvgetrv [ "$1" != "$2" ]) "'$1' != '$2'"
82 }
83
84
85 WVSTART()
86 {
87         echo >&2
88         echo "Testing \"$*\" in ${BASH_SOURCE[1]}:" >&2
89 }