]> CyberLeo.Net >> Repos - FreeBSD/releng/8.2.git/blob - tools/regression/bin/sh/regress.sh
Copy stable/8 to releng/8.2 in preparation for FreeBSD-8.2 release.
[FreeBSD/releng/8.2.git] / tools / regression / bin / sh / regress.sh
1 # $FreeBSD$
2
3 if [ -z "${SH}" ]; then
4         echo '${SH} is not set, please correct and re-run.'
5         exit 1
6 fi
7 export SH=${SH}
8
9 COUNTER=1
10
11 do_test() {
12         local c
13         c=${COUNTER}
14         COUNTER=$((COUNTER+1))
15         ${SH} $1 > tmp.stdout 2> tmp.stderr
16         if [ $? -ne $2 ]; then
17                 echo "not ok ${c} - ${1} # wrong exit status"
18                 rm tmp.stdout tmp.stderr
19                 return
20         fi
21         for i in stdout stderr; do
22                 if [ -f ${1}.${i} ]; then
23                         if ! cmp -s tmp.${i} ${1}.${i}; then
24                                 echo "not ok ${c} - ${1} # wrong output on ${i}"
25                                 rm tmp.stdout tmp.stderr
26                                 return
27                         fi
28                 elif [ -s tmp.${i} ]; then
29                         echo "not ok ${c} - ${1} # wrong output on ${i}"
30                         rm tmp.stdout tmp.stderr
31                         return
32                 fi
33         done
34         echo "ok ${c} - ${1}"
35         rm tmp.stdout tmp.stderr
36 }
37
38 TESTS=$(find -Es . -regex ".*\.[0-9]+")
39 printf "1..%d\n" $(echo ${TESTS} | wc -w)
40
41 for i in ${TESTS} ; do
42         do_test ${i} ${i##*.}
43 done