shtests revision da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968
# This program runs ksh regression tests
# shtests [ name=value ... ] a.sh b.sh ...
unset DISPLAY ENV FIGNORE
LANG=C
LC_ALL=C
time=1
while :
do case $1 in
*=*) n=${1%%=*}
v=${1#*=}
eval $n=\'$v\'
export $n
;;
-t|--t*)time=
;;
*) break
;;
esac
shift
done
export LANG LC_ALL PATH PWD SHELL
PWD=`pwd`
SHELL=${SHELL-ksh}
case $0 in
/*) d=`dirname $0`;;
*/*) d=$PWD/`dirname $0`;;
*) d=$PWD;;
esac
case $SHELL in
/*) ;;
*/*) SHELL=$d/$SHELL;;
*) SHELL=$(whence $SHELL);;
esac
PATH=/bin:/usr/bin
if [[ -d /usr/ucb ]]
then PATH=$PATH:/usr/ucb
fi
PATH=$PATH:$d
if [[ $INSTALLROOT && -r $INSTALLROOT/bin/.paths ]]
then PATH=$INSTALLROOT/bin:$PATH
fi
for i in ${*-*.sh}
do echo test $i begins ${time:+"at $(date +%Y-%m-%d+%H:%M:%S)"}
t=$(grep -c err_exit $i)
if (( $t ))
then (( t = $t - 1 ))
fi
T=test
if (( $t != 1 ))
then T=${T}s
fi
E=error
if $SHELL $i
then echo test $i passed ${time:+"at $(date +%Y-%m-%d+%H:%M:%S)"} "[ $t $T 0 ${E}s ]"
else e=$?
E=error
if (( $e != 1 ))
then E=${E}s
fi
echo test $i failed ${time:+"at $(date +%Y-%m-%d+%H:%M:%S)"} with exit code $e "[ $t $T $e $E ]"
fi
done