]> CyberLeo.Net >> Repos - FreeBSD/stable/10.git/blob - contrib/atf/atf-sh/misc_helpers.sh
Update atf to 0.18 and remove the code of the deprecated tools.
[FreeBSD/stable/10.git] / contrib / atf / atf-sh / misc_helpers.sh
1 #
2 # Automated Testing Framework (atf)
3 #
4 # Copyright (c) 2007 The NetBSD Foundation, Inc.
5 # All rights reserved.
6 #
7 # Redistribution and use in source and binary forms, with or without
8 # modification, are permitted provided that the following conditions
9 # are met:
10 # 1. Redistributions of source code must retain the above copyright
11 #    notice, this list of conditions and the following disclaimer.
12 # 2. Redistributions in binary form must reproduce the above copyright
13 #    notice, this list of conditions and the following disclaimer in the
14 #    documentation and/or other materials provided with the distribution.
15 #
16 # THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND
17 # CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
18 # INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
19 # MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
20 # IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS BE LIABLE FOR ANY
21 # DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
22 # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
23 # GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
24 # INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
25 # IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
26 # OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
27 # IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
28 #
29
30 # -------------------------------------------------------------------------
31 # Helper tests for "t_atf_check".
32 # -------------------------------------------------------------------------
33
34 atf_test_case atf_check_info_ok
35 atf_check_info_ok_head()
36 {
37     atf_set "descr" "Helper test case for the t_atf_check test program"
38 }
39 atf_check_info_ok_body()
40 {
41     atf_check -s eq:0 -o empty -e empty true
42 }
43
44 atf_test_case atf_check_info_fail
45 atf_check_info_fail_head()
46 {
47     atf_set "descr" "Helper test case for the t_atf_check test program"
48 }
49 atf_check_info_fail_body()
50 {
51     # In Solaris, /usr/bin/false returns 255 rather than 1.  Use the
52     # built-in version for the check.
53     atf_check -s eq:1 -o empty -e empty sh -c "false"
54 }
55
56 atf_test_case atf_check_expout_mismatch
57 atf_check_expout_mismatch_head()
58 {
59     atf_set "descr" "Helper test case for the t_atf_check test program"
60 }
61 atf_check_expout_mismatch_body()
62 {
63     cat >expout <<SECONDEOF
64 foo
65 SECONDEOF
66     atf_check -s eq:0 -o file:expout -e empty echo bar
67 }
68
69 atf_test_case atf_check_experr_mismatch
70 atf_check_experr_mismatch_head()
71 {
72     atf_set "descr" "Helper test case for the t_atf_check test program"
73 }
74 atf_check_experr_mismatch_body()
75 {
76     cat >experr <<SECONDEOF
77 foo
78 SECONDEOF
79     atf_check -s eq:0 -o empty -e file:experr -x 'echo bar 1>&2'
80 }
81
82 atf_test_case atf_check_null_stdout
83 atf_check_null_stdout_head()
84 {
85     atf_set "descr" "Helper test case for the t_atf_check test program"
86 }
87 atf_check_null_stdout_body()
88 {
89     atf_check -s eq:0 -o empty -e empty echo "These are the contents"
90 }
91
92 atf_test_case atf_check_null_stderr
93 atf_check_null_stderr_head()
94 {
95     atf_set "descr" "Helper test case for the t_atf_check test program"
96 }
97 atf_check_null_stderr_body()
98 {
99     atf_check -s eq:0 -o empty -e empty -x 'echo "These are the contents" 1>&2'
100 }
101
102 atf_test_case atf_check_equal_ok
103 atf_check_equal_ok_head()
104 {
105     atf_set "descr" "Helper test case for the t_atf_check test program"
106 }
107 atf_check_equal_ok_body()
108 {
109     atf_check_equal a a
110 }
111
112 atf_test_case atf_check_equal_fail
113 atf_check_equal_fail_head()
114 {
115     atf_set "descr" "Helper test case for the t_atf_check test program"
116 }
117 atf_check_equal_fail_body()
118 {
119     atf_check_equal a b
120 }
121
122 atf_test_case atf_check_equal_eval_ok
123 atf_check_equal_eval_ok_head()
124 {
125     atf_set "descr" "Helper test case for the t_atf_check test program"
126 }
127 atf_check_equal_eval_ok_body()
128 {
129     x=a
130     y=a
131     atf_check_equal '${x}' '${y}'
132 }
133
134 atf_test_case atf_check_equal_eval_fail
135 atf_check_equal_eval_fail_head()
136 {
137     atf_set "descr" "Helper test case for the t_atf_check test program"
138 }
139 atf_check_equal_eval_fail_body()
140 {
141     x=a
142     y=b
143     atf_check_equal '${x}' '${y}'
144 }
145
146 atf_test_case atf_check_timeout
147 atf_check_timeout_head()
148 {
149     atf_set "descr" "Helper test case for the t_atf_check test program"
150     atf_set "timeout" 1
151 }
152 atf_check_timeout_body()
153 {
154     atf_check true
155     atf_check sleep 42
156 }
157
158 # -------------------------------------------------------------------------
159 # Helper tests for "t_config".
160 # -------------------------------------------------------------------------
161
162 atf_test_case config_get
163 config_get_head()
164 {
165     atf_set "descr" "Helper test case for the t_config test program"
166 }
167 config_get_body()
168 {
169     if atf_config_has ${TEST_VARIABLE}; then
170         echo "${TEST_VARIABLE} = $(atf_config_get ${TEST_VARIABLE})"
171     fi
172 }
173
174 atf_test_case config_has
175 config_has_head()
176 {
177     atf_set "descr" "Helper test case for the t_config test program"
178 }
179 config_has_body()
180 {
181     if atf_config_has ${TEST_VARIABLE}; then
182         echo "${TEST_VARIABLE} found"
183     else
184         echo "${TEST_VARIABLE} not found"
185     fi
186 }
187
188 # -------------------------------------------------------------------------
189 # Helper tests for "t_normalize".
190 # -------------------------------------------------------------------------
191
192 atf_test_case normalize
193 normalize_head()
194 {
195     atf_set "descr" "Helper test case for the t_normalize test program"
196     atf_set "a.b" "test value 1"
197     atf_set "c-d" "test value 2"
198 }
199 normalize_body()
200 {
201     echo "a.b: $(atf_get a.b)"
202     echo "c-d: $(atf_get c-d)"
203 }
204
205 # -------------------------------------------------------------------------
206 # Helper tests for "t_tc".
207 # -------------------------------------------------------------------------
208
209 atf_test_case tc_pass_true
210 tc_pass_true_head()
211 {
212     atf_set "descr" "Helper test case for the t_tc test program"
213 }
214 tc_pass_true_body()
215 {
216     true
217 }
218
219 atf_test_case tc_pass_false
220 tc_pass_false_head()
221 {
222     atf_set "descr" "Helper test case for the t_tc test program"
223 }
224 tc_pass_false_body()
225 {
226     false
227 }
228
229 atf_test_case tc_pass_return_error
230 tc_pass_return_error_head()
231 {
232     atf_set "descr" "Helper test case for the t_tc test program"
233 }
234 tc_pass_return_error_body()
235 {
236     return 1
237 }
238
239 atf_test_case tc_fail
240 tc_fail_head()
241 {
242     atf_set "descr" "Helper test case for the t_tc test program"
243 }
244 tc_fail_body()
245 {
246     echo "An error" 1>&2
247     exit 1
248 }
249
250 atf_test_case tc_missing_body
251 tc_missing_body_head()
252 {
253     atf_set "descr" "Helper test case for the t_tc test program"
254 }
255
256 # -------------------------------------------------------------------------
257 # Helper tests for "t_tp".
258 # -------------------------------------------------------------------------
259
260 atf_test_case tp_srcdir
261 tp_srcdir_head()
262 {
263     atf_set "descr" "Helper test case for the t_tp test program"
264 }
265 tp_srcdir_body()
266 {
267     echo "Calling helper"
268     helper_subr || atf_fail "Could not call helper subroutine"
269 }
270
271 # -------------------------------------------------------------------------
272 # Main.
273 # -------------------------------------------------------------------------
274
275 atf_init_test_cases()
276 {
277     # Add helper tests for t_atf_check.
278     atf_add_test_case atf_check_info_ok
279     atf_add_test_case atf_check_info_fail
280     atf_add_test_case atf_check_expout_mismatch
281     atf_add_test_case atf_check_experr_mismatch
282     atf_add_test_case atf_check_null_stdout
283     atf_add_test_case atf_check_null_stderr
284     atf_add_test_case atf_check_equal_ok
285     atf_add_test_case atf_check_equal_fail
286     atf_add_test_case atf_check_equal_eval_ok
287     atf_add_test_case atf_check_equal_eval_fail
288     atf_add_test_case atf_check_timeout
289
290     # Add helper tests for t_config.
291     atf_add_test_case config_get
292     atf_add_test_case config_has
293
294     # Add helper tests for t_normalize.
295     atf_add_test_case normalize
296
297     # Add helper tests for t_tc.
298     atf_add_test_case tc_pass_true
299     atf_add_test_case tc_pass_false
300     atf_add_test_case tc_pass_return_error
301     atf_add_test_case tc_fail
302     atf_add_test_case tc_missing_body
303
304     # Add helper tests for t_tp.
305     [ -f $(atf_get_srcdir)/subrs ] && . $(atf_get_srcdir)/subrs
306     atf_add_test_case tp_srcdir
307 }
308
309 # vim: syntax=sh:expandtab:shiftwidth=4:softtabstop=4