1149781Sstefanf# $FreeBSD$
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	c=${COUNTER}
13149781Sstefanf	COUNTER=$((COUNTER+1))
14213738Sobrien	${SH} $1 > tmp.stdout 2> tmp.stderr
15149781Sstefanf	if [ $? -ne $2 ]; then
16149781Sstefanf		echo "not ok ${c} - ${1} # wrong exit status"
17149781Sstefanf		rm tmp.stdout tmp.stderr
18149781Sstefanf		return
19149781Sstefanf	fi
20149781Sstefanf	for i in stdout stderr; do
21149781Sstefanf		if [ -f ${1}.${i} ]; then
22149781Sstefanf			if ! cmp -s tmp.${i} ${1}.${i}; then
23149781Sstefanf				echo "not ok ${c} - ${1} # wrong output on ${i}"
24149781Sstefanf				rm tmp.stdout tmp.stderr
25149781Sstefanf				return
26149781Sstefanf			fi
27149781Sstefanf		elif [ -s tmp.${i} ]; then
28149781Sstefanf			echo "not ok ${c} - ${1} # wrong output on ${i}"
29149781Sstefanf			rm tmp.stdout tmp.stderr
30149781Sstefanf			return
31149781Sstefanf		fi
32149781Sstefanf	done
33149781Sstefanf	echo "ok ${c} - ${1}"
34149781Sstefanf	rm tmp.stdout tmp.stderr
35149781Sstefanf}
36149781Sstefanf
37151797SstefanfTESTS=$(find -Es . -regex ".*\.[0-9]+")
38151797Sstefanfprintf "1..%d\n" $(echo ${TESTS} | wc -w)
39151797Sstefanf
40149791Sstefanffor i in ${TESTS} ; do
41149791Sstefanf	do_test ${i} ${i##*.}
42149781Sstefanfdone
43