]>
Commit | Line | Data |
---|---|---|
71aad674 A |
1 | # |
2 | # Copyright 2014 EMC Corp. | |
3 | # All rights reserved. | |
4 | # | |
5 | # Redistribution and use in source and binary forms, with or without | |
6 | # modification, are permitted provided that the following conditions are | |
7 | # met: | |
8 | # | |
9 | # * Redistributions of source code must retain the above copyright | |
10 | # notice, this list of conditions and the following disclaimer. | |
11 | # * Redistributions in binary form must reproduce the above copyright | |
12 | # notice, this list of conditions and the following disclaimer in the | |
13 | # documentation and/or other materials provided with the distribution. | |
14 | # | |
15 | # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS | |
16 | # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT | |
17 | # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR | |
18 | # A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT | |
19 | # OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, | |
20 | # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT | |
21 | # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, | |
22 | # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY | |
23 | # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | |
24 | # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE | |
25 | # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | |
26 | # | |
deb63bfb | 27 | # $FreeBSD: head/bin/sh/tests/functional_test.sh 270101 2014-08-17 14:26:12Z jilles $ |
71aad674 A |
28 | |
29 | SRCDIR=$(atf_get_srcdir) | |
30 | ||
31 | check() | |
32 | { | |
33 | local tc=${1}; shift | |
34 | ||
35 | export SH=$(atf_config_get bin.sh.test_shell /bin/sh) | |
36 | ||
37 | local err_file="${SRCDIR}/${tc}.stderr" | |
38 | [ -f "${err_file}" ] && err_flag="-e file:${err_file}" | |
39 | local out_file="${SRCDIR}/${tc}.stdout" | |
40 | [ -f "${out_file}" ] && out_flag="-o file:${out_file}" | |
41 | ||
42 | atf_check -s exit:${tc##*.} ${err_flag} ${out_flag} ${SH} "${SRCDIR}/${tc}" | |
43 | } | |
44 | ||
45 | add_testcase() | |
46 | { | |
47 | local tc=${1} | |
48 | local tc_escaped word | |
49 | ||
50 | case "${tc%.*}" in | |
51 | *-*) | |
52 | local IFS="-" | |
53 | for word in ${tc%.*}; do | |
54 | tc_escaped="${tc_escaped:+${tc_escaped}_}${word}" | |
55 | done | |
56 | ;; | |
57 | *) | |
58 | tc_escaped=${tc%.*} | |
59 | ;; | |
60 | esac | |
61 | ||
62 | atf_test_case ${tc_escaped} | |
63 | eval "${tc_escaped}_body() { check ${tc}; }" | |
64 | atf_add_test_case ${tc_escaped} | |
65 | } | |
66 | ||
67 | atf_init_test_cases() | |
68 | { | |
69 | for path in $(find -Es "${SRCDIR}" -regex '.*\.[0-9]+$'); do | |
70 | add_testcase ${path##*/} | |
71 | done | |
72 | } |