#!/bin/csh
#	%Z%%M% %I% %E%
#
#	Date:	August 7, 1990
#	Author:	Robin Miller
#
#	Script file to gather disk performance data.
#
# Arguments:
#	$1	The data file name.
#	$2	The log file name.
#	$3	The raw disk device.
#	$4	The data file limit.
#	$5	The block size(s).
#	$6	The pass count.
#	$7	Enable debug flag.
#
set DATA_FILE=$1
set LOG_FILE=$2
set RAW_DEVICE=$3
set DATA_LIMIT=$4
set BLOCK_SIZES=$5
set PASS_COUNT=$6
set DEBUG_FLAG=$7
#
if ($DATA_FILE == '') then
    echo "Usage: dts data_file [ log_file raw_device data_file_limit block_sizes pass_count debug ]";
    echo "Example: dts /usr/tmp/dt.data rrz11a.log rrz11a 10m &"
    exit 1
endif
if ($DATA_FILE == '') then
	set DATA_FILE=`pwd`/dt.data
endif
if ($LOG_FILE == '') then
	set LOG_FILE=dts.log
endif
if ($DATA_LIMIT == '') then
	set DATA_LIMIT=50m
endif
if ($BLOCK_SIZES == '') then
	set BLOCK_SIZES="8k 16k 32k 64k 128k"
endif
#
# The default is 2 passes to test buffer cache effect.
#
if ($PASS_COUNT == '') then
	set PASS_COUNT=2
endif
#
# Setup the debug options:
#	Default: dump - dumps buffers on compare errors.
#
if ($DEBUG_FLAG == 'none') then
	set DEBUG_OPTS=""
else if ($DEBUG_FLAG == 'debug') then
	set DEBUG_OPTS="enable=coredump,debug,dump"
else
	set DEBUG_OPTS="enable=dump"
endif
#
# Test through the Unix file system first.
#
rm -f $LOG_FILE ; rm -f $DATA_FILE
date > $LOG_FILE
echo "" >> $LOG_FILE
#df >>& $LOG_FILE
#echo "" >> $LOG_FILE
foreach bs ($BLOCK_SIZES)
    set cmd_line="dt of=$DATA_FILE disable=compare limit=$DATA_LIMIT bs=$bs log=$LOG_FILE passes=$PASS_COUNT $DEBUG_OPTS"
    echo $cmd_line >> $LOG_FILE
    $cmd_line
    set exit_status=$status
    if ($exit_status) then
	file $DEVICE
	echo "" >> $LOG_FILE
	date >> $LOG_FILE
	echo "" >> $LOG_FILE
	exit ($exit_status)
    endif
    echo "" >> $LOG_FILE
    echo "*** End of Test ***" >> $LOG_FILE
    echo "" >> $LOG_FILE
end
#
# Now test the raw device (entire disk usually).
#
if ($RAW_DEVICE != '') then
    if (`dirname $RAW_DEVICE` != '/dev') then
	set RAW_DEVICE=/dev/$RAW_DEVICE
    endif
    set cmd_line="dt if=$RAW_DEVICE disable=compare limit=5g bs=64k log=$LOG_FILE passes=$PASS_COUNT $DEBUG_OPTS"
    echo $cmd_line >> $LOG_FILE
    $cmd_line
    set exit_status=$status
endif
date >> $LOG_FILE


syntax highlighted by Code2HTML, v. 0.9.1