#!/bin/bash
# Run aim9 benchmark

P=aim9-bench
DEFAULT_VERSION=9110
. $SHELLPACK_INCLUDE/common.sh
TIME_CMD=`which time`
if [ "$TIME_CMD" = "" ]; then
        TIMEFORMAT="%2Uuser %2Ssystem %Relapsed %P%%CPU"
        TIME_CMD="time"
fi

WORKFILE=s9workfile-short
HOSTNAME=`hostname`
RELEASE=`uname -r`
TESTTIME=15
ITERATIONS=12
TESTLIST=

# Basic argument parser
TASKSET_SERVER=
TASKSET_CLIENT=
SERVERSIDE_COMMAND=none
SERVERSIDE_NAME=`date +%Y%m%d-%H%M-%S`

while [ "$1" != "" ]; do
	case "$1" in
	-v)
		VERSION=$2
		shift 2
		;;
	--serverside-command)
		SERVERSIDE_COMMAND=$2
		shift 2
		;;
	--serverside-name)
		SERVERSIDE_NAME=$2
		shift 2
		;;
	--install-only)
		INSTALL_ONLY=yes
		shift
		;;
	--install-force)
		INSTALL_FORCE=yes
		shift
		;;
		--full)
			WORKFILE=s9workfile-full
			shift
			;;
		--test-list)
			TESTLIST=$2
			shift 2
			;;
		--time)
			TESTTIME=$2
			shift 2
			;;
	*)
		echo Unrecognised option: $1
		shift
	esac
done
if [ "$TASKSET_SERVER" != "" ]; then
	echo TASKSET_SERVER: $TASKSET_SERVER
	echo TASKSET_CLIENT: $TASKSET_CLIENT
fi
if [ -z "$VERSION" ]; then
	VERSION=$DEFAULT_VERSION
fi

if [ "$INSTALL_FORCE" = "yes" ]; then
	rm -rf $SHELLPACK_SOURCES/aim9-${VERSION}
fi
if [ ! -d $SHELLPACK_SOURCES/aim9-${VERSION}-installed ]; then
	mmtests_activity source-install
	$SHELLPACK_INCLUDE/shellpack-install-aim9 -v ${VERSION}  || die aim9 install script returned error
	mmtests_activity source-installed
fi
cd $SHELLPACK_SOURCES/aim9-${VERSION}-installed || die Failed to cd to aim9 install directory
if [ "$INSTALL_ONLY" = "yes" ]; then
	echo aim9 installed only as requested.
	exit $SHELLPACK_SUCCESS
fi

# Create expect script
EXPECT=`which expect`
EXPECT_SCRIPT=$SHELLPACK_TEMP/aim9-expect
cat > $EXPECT_SCRIPT <<EOF
spawn ./singleuser
expect "s name"             { exp_send $HOSTNAME\\r }
expect "s configuration"    { exp_send $RELEASE\\r  }
expect "Number of seconds"  { exp_send $TESTTIME\\r }
expect "Path to disk files" { exp_send $SHELLPACK_DATA\\r }
while {1} {
  expect disk_rr exit
}
EOF
chmod u+x $EXPECT_SCRIPT

cd $SHELLPACK_SOURCES/aim9-${VERSION}-installed
if [ "$TESTLIST" != "" ]; then
	rm -f s9workfile
	echo "# @(#) s9workfile:1.2 1/22/96 00:00:00
# AIM Independent Resource Benchmark - Suite IX Workfile
FILESIZE: 5M" >> s9workfile
	TIFS=$IFS
	IFS=,
	for TESTNAME in $TESTLIST; do
		echo $TESTNAME >> s9workfile
	done
	IFS=$TIFS
else
	cp $WORKFILE s9workfile
fi

for ITERATION in `seq 1 $ITERATIONS`; do
	mmtests_activity iteration $ITERATION
	echo Starting iteration $ITERATION
	$EXPECT -f $EXPECT_SCRIPT | tee $LOGDIR_RESULTS/aim9-$ITERATION
done

exit $SHELLPACK_SUCCESS
#### Description AIM9 benchmark
#### Details aim9-bench 27
