1*4887Schin# This program runs ksh regression tests
2*4887Schin# shtests [ name=value ... ] a.sh b.sh ...
3*4887Schin
4*4887Schinunset DISPLAY ENV FIGNORE
5*4887SchinLANG=C
6*4887SchinLC_ALL=C
7*4887Schintime=1
8*4887Schinwhile	:
9*4887Schindo	case $1 in
10*4887Schin	*=*)	n=${1%%=*}
11*4887Schin		v=${1#*=}
12*4887Schin		eval $n=\'$v\'
13*4887Schin		export $n
14*4887Schin		;;
15*4887Schin	-t|--t*)time=
16*4887Schin		;;
17*4887Schin	*)	break
18*4887Schin		;;
19*4887Schin	esac
20*4887Schin	shift
21*4887Schindone
22*4887Schinexport LANG LC_ALL PATH PWD SHELL
23*4887SchinPWD=`pwd`
24*4887SchinSHELL=${SHELL-ksh}
25*4887Schincase $0 in
26*4887Schin/*)	d=`dirname $0`;;
27*4887Schin*/*)	d=$PWD/`dirname $0`;;
28*4887Schin*)	d=$PWD;;
29*4887Schinesac
30*4887Schincase $SHELL in
31*4887Schin/*)	;;
32*4887Schin*/*)	SHELL=$d/$SHELL;;
33*4887Schin*)	SHELL=$(whence $SHELL);;
34*4887Schinesac
35*4887SchinPATH=/bin:/usr/bin
36*4887Schinif	[[ -d /usr/ucb ]]
37*4887Schinthen	PATH=$PATH:/usr/ucb
38*4887Schinfi
39*4887SchinPATH=$PATH:$d
40*4887Schinif [[ $INSTALLROOT && -r $INSTALLROOT/bin/.paths ]]
41*4887Schinthen	PATH=$INSTALLROOT/bin:$PATH
42*4887Schinfi
43*4887Schinfor i in ${*-*.sh}
44*4887Schindo	echo test $i begins ${time:+"at $(date +%Y-%m-%d+%H:%M:%S)"}
45*4887Schin	t=$(grep -c err_exit $i)
46*4887Schin	if	(( $t ))
47*4887Schin	then	(( t = $t - 1 ))
48*4887Schin	fi
49*4887Schin	T=test
50*4887Schin	if	(( $t != 1 ))
51*4887Schin	then	T=${T}s
52*4887Schin	fi
53*4887Schin	E=error
54*4887Schin	if	$SHELL $i
55*4887Schin	then	echo test $i passed ${time:+"at $(date +%Y-%m-%d+%H:%M:%S)"} "[ $t $T 0 ${E}s ]"
56*4887Schin	else	e=$?
57*4887Schin		E=error
58*4887Schin		if	(( $e != 1 ))
59*4887Schin		then	E=${E}s
60*4887Schin		fi
61*4887Schin		echo test $i failed ${time:+"at $(date +%Y-%m-%d+%H:%M:%S)"} with exit code $e "[ $t $T $e $E ]"
62*4887Schin	fi
63*4887Schindone
64