bash/run-tests

77 lines
1.9 KiB
Bash

#! /bin/sh
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
: ${TMPDIR:=/tmp}
export TMPDIR
# basic /bin/sh syntax
SUFFIX=`${THIS_SH} -c 'echo $(( $RANDOM + $BASHPID ))'`
BASH_TSTOUT=${TMPDIR}/bashtst-$SUFFIX # for now
export BASH_TSTOUT
trap 'rm -f $BASH_TSTOUT' 0 1 2 3 15
PATH=.:$PATH # just to get recho/zecho/printenv if not run via `make tests'
export PATH
# unset BASH_ENV only if it is set
[ "${BASH_ENV+set}" = "set" ] && unset BASH_ENV
# ditto for SHELLOPTS
#[ "${SHELLOPTS+set}" = "set" ] && unset SHELLOPTS
: ${THIS_SH:=../bash}
export THIS_SH
: ${BUILD_DIR:=..}
export BUILD_DIR
${THIS_SH} ./version
rm -f ${BASH_TSTOUT}
echo Any output from any test, unless otherwise noted, indicates a possible anomaly
for x in run-*
do
case $x in
$0|run-all|run-minimal|run-gprof|run-jobs) ;;
*.orig|*~) ;;
*) echo $x ; sh $x ; rm -f ${BASH_TSTOUT} ;;
esac
done
trap 'rm -f $tmp' EXIT HUP INT QUIT TERM
tmp=$(mktemp /tmp/hello.XXXXXXXX) || exit 1
echo '#!/bin/sh' > $tmp
echo exit >> $tmp
chmod 755 $tmp
${THIS_SH} -c $tmp
typeset -i count=500
echo '#########################'
echo 'fork + /bin/sh -c runtime'
time while ((count-- > 0)) ; do
${THIS_SH} -c $tmp
done
echo '#########################'
set -x
read -t1 < /dev/tty
set +x
echo '#########################'
exit 0