]> arthur.barton.de Git - bup.git/blob - wvtest.sh
wvtest.sh: remove unused LVL variable.
[bup.git] / wvtest.sh
1 #
2 # Include this file in your shell script by using:
3 #         #!/bin/sh
4 #         . ./wvtest.sh
5 #
6
7 # we don't quote $TEXT in case it contains newlines; newlines
8 # aren't allowed in test output.  However, we set -f so that
9 # at least shell glob characters aren't processed.
10 _wvtextclean()
11 {
12         ( set -f; echo $* )
13 }
14
15
16 if [ -n "$BASH_VERSION" ]; then
17         _wvfind_caller()
18         {
19                 WVCALLER_FILE=${BASH_SOURCE[2]}
20                 WVCALLER_LINE=${BASH_LINENO[1]}
21         }
22 else
23         _wvfind_caller()
24         {
25                 WVCALLER_FILE="unknown"
26                 WVCALLER_LINE=0
27         }
28 fi
29
30
31 _wvcheck()
32 {
33         CODE="$1"
34         TEXT=$(_wvtextclean "$2")
35         OK=ok
36         if [ "$CODE" -ne 0 ]; then
37                 OK=FAILED
38         fi
39         echo "! $WVCALLER_FILE:$WVCALLER_LINE  $TEXT  $OK" >&2
40         if [ "$CODE" -ne 0 ]; then
41                 exit $CODE
42         else
43                 return 0
44         fi
45 }
46
47
48 WVPASS()
49 {
50         TEXT="$*"
51
52         _wvfind_caller
53         if "$@"; then
54                 _wvcheck 0 "$TEXT"
55                 return 0
56         else
57                 _wvcheck 1 "$TEXT"
58                 # NOTREACHED
59                 return 1
60         fi
61 }
62
63
64 WVFAIL()
65 {
66         TEXT="$*"
67
68         _wvfind_caller
69         if "$@"; then
70                 _wvcheck 1 "NOT($TEXT)"
71                 # NOTREACHED
72                 return 1
73         else
74                 _wvcheck 0 "NOT($TEXT)"
75                 return 0
76         fi
77 }
78
79
80 _wvgetrv()
81 {
82         ( "$@" >&2 )
83         echo -n $?
84 }
85
86
87 WVPASSEQ()
88 {
89         _wvfind_caller
90         _wvcheck $(_wvgetrv [ "$#" -eq 2 ]) "exactly 2 arguments"
91         echo "Comparing:" >&2
92         echo "$1" >&2
93         echo "--" >&2
94         echo "$2" >&2
95         _wvcheck $(_wvgetrv [ "$1" = "$2" ]) "'$1' = '$2'"
96 }
97
98
99 WVPASSNE()
100 {
101         _wvfind_caller
102         _wvcheck $(_wvgetrv [ "$#" -eq 2 ]) "exactly 2 arguments"
103         echo "Comparing:" >&2
104         echo "$1" >&2
105         echo "--" >&2
106         echo "$2" >&2
107         _wvcheck $(_wvgetrv [ "$1" != "$2" ]) "'$1' != '$2'"
108 }
109
110
111 WVPASSRC()
112 {
113         RC=$?
114         _wvfind_caller
115         _wvcheck $(_wvgetrv [ $RC -eq 0 ]) "return code($RC) == 0"
116 }
117
118
119 WVFAILRC()
120 {
121         RC=$?
122         _wvfind_caller
123         _wvcheck $(_wvgetrv [ $RC -ne 0 ]) "return code($RC) != 0"
124 }
125
126
127 WVSTART()
128 {
129         echo >&2
130         _wvfind_caller
131         echo "Testing \"$*\" in $WVCALLER_FILE:" >&2
132 }