]> CyberLeo.Net >> Repos - FreeBSD/stable/10.git/blob - bin/sh/tests/legacy_test.sh
MFC r285118:
[FreeBSD/stable/10.git] / bin / sh / tests / legacy_test.sh
1 # $FreeBSD$
2
3 : ${SH:="__SH__"}
4 export SH
5
6 # TODO(jmmv): The Kyua TAP interface should be passing us the value of
7 # "srcdir" as an environment variable, just as it does with the ATF
8 # interface in the form of a configuration variable.  For now, just try
9 # to guess this.
10 : ${TESTS_DATA:=$(dirname ${0})}
11
12 COUNTER=1
13
14 do_test() {
15         c=${COUNTER}
16         COUNTER=$((COUNTER+1))
17         ${SH} $1 > tmp.stdout 2> tmp.stderr
18         if [ $? -ne $2 ]; then
19                 echo "not ok ${c} - ${1} # wrong exit status"
20                 rm tmp.stdout tmp.stderr
21                 return
22         fi
23         sed -I '' -e "s|^${TESTS_DATA}|.|" tmp.stderr
24         for i in stdout stderr; do
25                 if [ -f ${1}.${i} ]; then
26                         if ! cmp -s tmp.${i} ${1}.${i}; then
27                                 echo "not ok ${c} - ${1} # wrong output on ${i}"
28                                 rm tmp.stdout tmp.stderr
29                                 return
30                         fi
31                 elif [ -s tmp.${i} ]; then
32                         echo "not ok ${c} - ${1} # wrong output on ${i}"
33                         rm tmp.stdout tmp.stderr
34                         return
35                 fi
36         done
37         echo "ok ${c} - ${1}"
38         rm tmp.stdout tmp.stderr
39 }
40
41 TESTS=$(find -Es ${TESTS_DATA} -regex ".*\.[0-9]+")
42 printf "1..%d\n" $(echo ${TESTS} | wc -w)
43
44 for i in ${TESTS} ; do
45         do_test ${i} ${i##*.}
46 done