:
#!/bin/sh
#
#       @(#)server	1.2 97/01/03 Connectathon testsuite
#	1.1 Lachman ONC Test Suite source
#
# run tests given a server name.  mounts, tests, and unmounts
# arguments:
#	-a|-b|-g|-s|-l	test selectors, passed to runtests
#	-f|-t|-n	test arguments, passed to runtests
#	mnt_options	arg to -o mount options
#	server_path	path to mount from server
#	mntpoint	path to mount on locally
#	server_name	server to mount from
#
Program=`basename $0`

InitFile="./tests.init"
USAGE="usage:  $Program [-a|-b|-g|-s|-l] [-f|-t|-n|-h] [-o mnt_options] [-p server_path] [-m mntpoint] server_name"

# defaults
. $InitFile
export PATH CFLAGS LIBS MOUNT UMOUNT

set - `getopt abfglhm:no:p:st $*`

if [ $? != 0 ]
then
	echo $USAGE
	exit 1
fi
for c in $*
do
	case $c in
		-a|-b|-g|-s|-l)	TEST=$c; shift	;;
		-f|-n|-t)	TESTARG=$c; shift	;;
		-h)		HARDLINKS=n; export HARDLINKS; shift	;;
		-m)		MNTPOINT=$2; shift; shift	;;
		-o)		MNTOPTIONS=$2; shift; shift	;;
		-p)		SERVPATH=$2; shift; shift	;;
		--)		shift; break		;;
	esac
done

if test $# -gt 0
then
	SERVER=$1
	shift
	if test $# -gt 0
	then
		echo $USAGE
		exit 1
	fi
fi

# if no server specified, exit
if test x$SERVER = x
then
	echo $USAGE
	exit 1
fi

# make sure nothing is mounted on the mountpoint
eval $UMOUNTCMD > /dev/null 2>&1

eval $MOUNTCMD

case $? in
    0)
	;;
    *)
	echo "Can't mount $SERVER:$SERVPATH on $MNTPOINT"
	exit 1
	;;
esac

# mount doesn't always return error code if it fails, so lets
# ask here just in case
HOSTNAME=`/usr/bsd/hostname`
HOSTNAME=`expr $HOSTNAME : '\([^.]*\)'`
NFSTESTDIR=$MNTPOINT/$HOSTNAME.test
export NFSTESTDIR
echo $DASHN "Start tests on path $NFSTESTDIR [y/n]?" "$BLC"
read ans
case $ans in
    Y*|y*)
	;;
    *)
	echo "Terminating ($MNTPOINT not unmounted)."
	exit 1
	;;
esac
	
echo ""

echo "sh ./runtests $TEST $TESTARG $NFSTESTDIR"
sh ./runtests $TEST $TESTARG $NFSTESTDIR

if [ $? -ne 0 ]
then
	echo leaving $MNTPOINT mounted
	exit 1
fi

eval $UMOUNTCMD

exit 0
