xref: /freebsd/contrib/unifdef/scripts/runtests.sh (revision fb3ef04d2028110f06d68b09009f1f2ca0f4128e)
1*fb3ef04dSDag-Erling Smørgrav#!/bin/sh
2*fb3ef04dSDag-Erling Smørgrav
3*fb3ef04dSDag-Erling Smørgravexport PATH="$(pwd):${PATH}"
4*fb3ef04dSDag-Erling Smørgrav${1:+cd} ${1:-:}
5*fb3ef04dSDag-Erling Smørgravfor cmd in *.sh
6*fb3ef04dSDag-Erling Smørgravdo
7*fb3ef04dSDag-Erling Smørgrav	printf .
8*fb3ef04dSDag-Erling Smørgrav	t=${cmd%.sh}
9*fb3ef04dSDag-Erling Smørgrav
10*fb3ef04dSDag-Erling Smørgrav	sh ./${cmd} >${t}.out 2>${t}.err
11*fb3ef04dSDag-Erling Smørgrav	echo $? >${t}.rc
12*fb3ef04dSDag-Erling Smørgrav
13*fb3ef04dSDag-Erling Smørgrav	# strip carriage returns from error output
14*fb3ef04dSDag-Erling Smørgrav	# in case we are trying to run on MinGW
15*fb3ef04dSDag-Erling Smørgrav	tr -d '
16*fb3ef04dSDag-Erling Smørgrav' >${t}.xerr <${t}.err
17*fb3ef04dSDag-Erling Smørgrav	mv ${t}.xerr ${t}.err
18*fb3ef04dSDag-Erling Smørgrav
19*fb3ef04dSDag-Erling Smørgrav	ok=true
20*fb3ef04dSDag-Erling Smørgrav	for e in out err rc
21*fb3ef04dSDag-Erling Smørgrav	do
22*fb3ef04dSDag-Erling Smørgrav		exp=${t}.exp${e}
23*fb3ef04dSDag-Erling Smørgrav		got=${t}.${e}
24*fb3ef04dSDag-Erling Smørgrav		if ! cmp -s ${exp} ${got}
25*fb3ef04dSDag-Erling Smørgrav		then
26*fb3ef04dSDag-Erling Smørgrav			echo
27*fb3ef04dSDag-Erling Smørgrav			echo FAILED: ${got}: $(cat ${cmd})
28*fb3ef04dSDag-Erling Smørgrav			diff -u ${exp} ${got}
29*fb3ef04dSDag-Erling Smørgrav			ok=false
30*fb3ef04dSDag-Erling Smørgrav		fi
31*fb3ef04dSDag-Erling Smørgrav	done
32*fb3ef04dSDag-Erling Smørgrav
33*fb3ef04dSDag-Erling Smørgrav	if ${ok}
34*fb3ef04dSDag-Erling Smørgrav	then rm -f ${t}.out ${t}.err ${t}.rc
35*fb3ef04dSDag-Erling Smørgrav	else rc=1
36*fb3ef04dSDag-Erling Smørgrav	fi
37*fb3ef04dSDag-Erling Smørgravdone
38*fb3ef04dSDag-Erling Smørgravecho
39exit ${rc}
40