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