regress.sh revision 213738
1149781Sstefanf# $FreeBSD: head/tools/regression/bin/sh/regress.sh 213738 2010-10-12 18:20:38Z obrien $
2149781Sstefanf
3213738Sobrienif [ -z "${SH}" ]; then
4213738Sobrien	echo '${SH} is not set, please correct and re-run.'
5213738Sobrien	exit 1
6213738Sobrienfi
7213738Sobrienexport SH=${SH}
8213738Sobrien
9149781SstefanfCOUNTER=1
10149781Sstefanf
11149781Sstefanfdo_test() {
12149781Sstefanf	local c
13149781Sstefanf	c=${COUNTER}
14149781Sstefanf	COUNTER=$((COUNTER+1))
15213738Sobrien	${SH} $1 > tmp.stdout 2> tmp.stderr
16149781Sstefanf	if [ $? -ne $2 ]; then
17149781Sstefanf		echo "not ok ${c} - ${1} # wrong exit status"
18149781Sstefanf		rm tmp.stdout tmp.stderr
19149781Sstefanf		return
20149781Sstefanf	fi
21149781Sstefanf	for i in stdout stderr; do
22149781Sstefanf		if [ -f ${1}.${i} ]; then
23149781Sstefanf			if ! cmp -s tmp.${i} ${1}.${i}; then
24149781Sstefanf				echo "not ok ${c} - ${1} # wrong output on ${i}"
25149781Sstefanf				rm tmp.stdout tmp.stderr
26149781Sstefanf				return
27149781Sstefanf			fi
28149781Sstefanf		elif [ -s tmp.${i} ]; then
29149781Sstefanf			echo "not ok ${c} - ${1} # wrong output on ${i}"
30149781Sstefanf			rm tmp.stdout tmp.stderr
31149781Sstefanf			return
32149781Sstefanf		fi
33149781Sstefanf	done
34149781Sstefanf	echo "ok ${c} - ${1}"
35149781Sstefanf	rm tmp.stdout tmp.stderr
36149781Sstefanf}
37149781Sstefanf
38151797SstefanfTESTS=$(find -Es . -regex ".*\.[0-9]+")
39151797Sstefanfprintf "1..%d\n" $(echo ${TESTS} | wc -w)
40151797Sstefanf
41149791Sstefanffor i in ${TESTS} ; do
42149791Sstefanf	do_test ${i} ${i##*.}
43149781Sstefanfdone
44