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