#!/usr/bin/bash
###SHELLPACK preamble sysbenchcpu-bench 1.0.20

###SHELLPACK parseargBegin
###SHELLPACK parseargInstall
###SHELLPACK parseargParam --max-prime   MAX_PRIME
###SHELLPACK parseargParam --min-threads MIN_THREADS
###SHELLPACK parseargParam --max-threads MAX_THREADS
###SHELLPACK parseargParam --iterations  ITERATIONS
###SHELLPACK parseargEnd
###SHELLPACK monitor_hooks

###SHELLPACK check_external_install_required sysbenchbuild sysbenchbuild-${VERSION} ${VERSION}

###SHELLPACK init_complete

export PATH=$SHELLPACK_SOURCES/sysbenchbuild-${VERSION}-installed/bin:$PATH

###SHELLPACK threads_large_stride_begin $MIN_THREADS $MAX_THREADS
	BENCH_CMD="sysbench cpu --num-threads=$NR_THREADS --cpu-max-prime=$MAX_PRIME run"
	log_cmd $BENCH_CMD

	monitor_pre_hook $LOGDIR_RESULTS $NR_THREADS
	###SHELLPACK iteration_begin $ITERATIONS
		echo Running $NR_THREADS threads Iteration $ITERATION/$ITERATIONS
		eval $TIME_CMD -o $LOGDIR_RESULTS/time-${NR_THREADS}-${ITERATION}	\
			$BENCH_CMD >> $LOGDIR_RESULTS/sysbench-raw-$NR_THREADS-$ITERATION
		SYSRET=$?
		if [ $SYSRET -ne 0 ]; then
			cat $LOGDIR_RESULTS/sysbench-raw-$NR_THREADS-$ITERATION
			die "sysbench exited abnormally"
		fi
	###SHELLPACK iteration_end
	monitor_post_hook $LOGDIR_RESULTS $NR_THREADS
###SHELLPACK threads_stride_end

echo sysbenchcpu successfully completed
exit $SHELLPACK_SUCCESS
