#!/bin/bash
# This script installs tiobench and whatever
###SHELLPACK preamble tiobench-bench 0.3.3

###SHELLPACK parseargBegin
###SHELLPACK parseargInstall
###SHELLPACK parseargEnd

install-depends hdparm
###SHELLPACK check_install_required tiobench-${VERSION}
###SHELLPACK monitor_hooks

set_mmtests_numactl 0 0

echo Recording max expected speed for reads
PARTITION=`df -T $SHELLPACK_DATA | tail -1 | awk '{print $1}'`
SPEED=`hdparm -t $PARTITION | grep Timing | awk '{print $(NF-1)}'`
echo $SPEED > $LOGDIR_RESULTS/disk-read.speed
echo Expected speed $SPEED

if [ "$TIOBENCH_RANDOM" = "" -o "$TIOBENCH_RANDOM" != "0" ]; then
	TIOBENCH_COMMAND_RANDOM="--random $TIOBENCH_RANDOM"
fi

###SHELLPACK threads_powertwo_begin $TIOBENCH_MIN_CLIENTS $TIOBENCH_MAX_CLIENTS
	monitor_pre_hook $LOGDIR_RESULTS $NR_THREADS
	for ITERATION in `seq 1 $TIOBENCH_ITERATIONS`; do
		eval $MMTESTS_NUMACTL ./tiobench.pl $TIOBENCH_COMMAND_RANDOM \
			--dir     $SHELLPACK_DATA \
			--numruns 1 \
			--size    $((TIOBENCH_SIZE/1048576)) \
			--block   $TIOBENCH_BLOCKSIZE \
			--threads $NR_THREADS \
			2>&1 | tee $LOGDIR_RESULTS/tiobench-$NR_THREADS-$ITERATION.log \
				|| die Failed to run tiobench
	done
	monitor_post_hook $LOGDIR_RESULTS $NR_THREADS
###SHELLPACK threads_powertwo_end

exit $SHELLPACK_SUCCESS
