##/bin/bash
#
# Copyright (c) 2002-2005 Silicon Graphics, Inc.  All Rights Reserved.
#
# 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.
#
# This program is distributed in the hope that it would 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, write the Free Software Foundation,
# Inc.,  51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
#

#check dbench is installed
if [ "`whereis dbench`" == "dbench:" ]; then
        echo $0 error dbench not installed.
        exit
fi

_run_dbench()
{
	mkdir ./dbench || exit 1
	cd dbench
	dbench -x $1
	status=$?
	cd ..
	rm -fr ./dbench
	[ $status -ne 0 ] && exit 1
}

#
# Sample dbench output:
# "Throughput 40.6701 MB/sec (NB=50.8376 MB/sec  406.701 MBit/sec)"
# 

# Output for a single-shot dbench run.
_format_header()
{
	printf "%8s, %s\n" clients MB/sec
}
_filter_dbench()
{
	clients=$1
	perl -ne 'm/Throughput (\S+) MB\/sec/ &&
			{ printf "%8u, %s\n", '$clients', $1 }'
}

# Output for a "multipass" dbench run.
_format_header_multipass()
{
	while [ $# -gt 1 ]; do
		printf "%4s::MB/sec," $1
		shift
	done
	printf "%4s::MB/sec\n" $1
}
_filter_dbench_multipass()
{
	perl -ne '
	if (m/Throughput (\S+) MB\/sec/) {
		$results[$count++] = $1;
	}
	END {	for ($i = 0; $i < $count - 1; $i++) {
			printf "%12.3f,", $results[$i];
		}
		printf "%12.3f\n", $results[$count-1];
	}'
}
