]> CyberLeo.Net >> Repos - FreeBSD/releng/10.2.git/blob - contrib/atf/atf-sh/misc_helpers.sh
- Copy stable/10@285827 to releng/10.2 in preparation for 10.2-RC1
[FreeBSD/releng/10.2.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_flush_stdout
143 atf_check_flush_stdout_head()
144 {
145     atf_set "descr" "Helper test case for the t_atf_check test program"
146     atf_set "timeout" "30"
147 }
148 atf_check_flush_stdout_body()
149 {
150     atf_check true
151     atf_check -s exit:1 false
152     touch "${CONTROL_FILE:-done}"
153     while :; do
154         sleep 1
155     done
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_flush_stdout
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