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