238 lines
6.5 KiB
Bash
Executable file
238 lines
6.5 KiB
Bash
Executable file
#!/bin/bash
|
|
|
|
|
|
#
|
|
# 07/10/02 - Jeff Martin - martinjn@us.ibm.com: Added instance and
|
|
# time command line options
|
|
#
|
|
# 12/15/02 - Manoj Iyer - manjo@mail.utexas.edu: Added options to run
|
|
# LTP under CPU, IO and MM load.
|
|
#
|
|
# 01/26/03 - Manoj Iyer - manjo@mail.utexas.edu: Added -f option; Execute
|
|
# user defined set of testcases.
|
|
#
|
|
# 01/27/03 - Manoj Iyer - manjo@mail.utexas.edu: Enabled formatted printing
|
|
# of logfiles.
|
|
#
|
|
# 01/28/03 - Manoj Iyer - manjo@mail.utexas.edu: added option to enable
|
|
# formatted printing of logfiles.
|
|
#
|
|
# 01/29/03 - Manoj Iyer - manjo@mail.utexas.edu: merged networktests.sh with
|
|
# this script, added the -n option to run these
|
|
# tests. Also, added -h option to print help messages.
|
|
#
|
|
# 01/29/03 - Manoj Iyer - manjo@mail.utexas.edu:
|
|
# added code to cause pan to print less verbose
|
|
# output.
|
|
# 02/01/03 - Manoj Iyer - manjo@mail.utexas.edu: Removed variables
|
|
# initialization of RHOST and PASSWD.
|
|
#
|
|
# 02/05/03 - Robbie Williamson - Added configurability to the optional load
|
|
# generator sections. Also added network traffic
|
|
# option.
|
|
#
|
|
|
|
cd `dirname $0`
|
|
export LTPROOT=${PWD}
|
|
export TMPBASE="/tmp"
|
|
export TMP="${TMPBASE}/runalltests-$$"
|
|
export PATH="${PATH}:${LTPROOT}/../testcases/bin"
|
|
cmdfile=""
|
|
pretty_prt=" "
|
|
alt_dir=0
|
|
run_netest=0
|
|
quiet_mode=" "
|
|
NetPipe=0
|
|
GenLoad=0
|
|
|
|
usage()
|
|
{
|
|
cat <<-END >&2
|
|
usage: ./${0##*/} -c [-d tmpdir] [-f cmdfile ] [-i # (in Mb)] [ -l logfile ]
|
|
[ -m # (in Mb)] -N -n -q [ -r ltproot ] [ -t duration ] [ -x instances ]
|
|
|
|
-c Run LTP under additional background CPU load.
|
|
-d tmpdir Directory where temporary files will be created.
|
|
-f cmdfile Execute user defined list of testcases.
|
|
-h Help. Prints all available options.
|
|
-i # (in Mb) Run LTP with a _minimum_ IO load of # megabytes in background.
|
|
-l logfile Log results of test in a logfile.
|
|
-m # (in Mb) Run LTP with a _minimum_ memory load of # megabytes in background.
|
|
-N Run all the networking tests.
|
|
(export RHOST = remote hostname)
|
|
(export PASSWD = passwd of remote host)
|
|
-n Run LTP with network traffic in background.
|
|
-p Human readable format logfiles.
|
|
-q Print less verbose output to screen.
|
|
-r ltproot Fully qualified path where testsuite is installed.
|
|
-t duration Execute the testsuite for given duration in hours.
|
|
-x instances Run multiple instances of this testsuite.
|
|
|
|
example: ./${0##*/} -i 1024 -m 128 -p -q -l /tmp/resultlog.$$ -d ${PWD}
|
|
END
|
|
exit
|
|
}
|
|
|
|
mkdir -p ${TMP}
|
|
|
|
cd ${TMP}
|
|
if [ $? -ne 0 ]; then
|
|
echo "could not cd ${TMP} ... exiting"
|
|
exit
|
|
fi
|
|
|
|
while getopts cd:f:hi:l:m:Nnpqr:t:x arg
|
|
do case $arg in
|
|
c)
|
|
$LTPROOT/../testcases/bin/genload --cpu 1 >/dev/null 2>&1 &
|
|
GenLoad=1 ;;
|
|
|
|
d) # append $$ to TMP, as it is recursively
|
|
# removed at end of script.
|
|
TMPBASE=$OPTARG;;
|
|
f) # Execute user defined set of testcases.
|
|
cmdfile=$OPTARG;;
|
|
|
|
h) usage;;
|
|
|
|
i)
|
|
bytesize=$(($OPTARG * 1024 * 1024))
|
|
$LTPROOT/../testcases/bin/genload --io 1 >/dev/null 2>&1 &
|
|
$LTPROOT/../testcases/bin/genload --hdd 0 --hdd-bytes $bytesize \
|
|
>/dev/null 2>&1 &
|
|
GenLoad=1 ;;
|
|
|
|
l)
|
|
if [ ${OPTARG:0:1} != "/" ]
|
|
then
|
|
if [ -d $LTPROOT/results ]
|
|
then
|
|
logfile="-l $LTPROOT/results/$OPTARG"
|
|
else
|
|
mkdir -p $LTPROOT/results
|
|
if [ $? -ne 0 ]
|
|
then
|
|
echo "ERROR: failed to create $LTPROOT/results"
|
|
exit 1
|
|
fi
|
|
logfile="-l $LTPROOT/results/$OPTARG"
|
|
fi
|
|
alt_dir=1
|
|
else
|
|
logfile="-l $OPTARG"
|
|
fi ;;
|
|
|
|
m)
|
|
memsize=$(($OPTARG * 1024 * 1024))
|
|
$LTPROOT/../testcases/bin/genload --vm 0 --vm-bytes $memsize\
|
|
>/dev/null 2>&1 &
|
|
GenLoad=1;;
|
|
|
|
N) run_netest=1;;
|
|
|
|
n) $LTPROOT/../testcases/bin/netpipe.sh
|
|
NetPipe=1;;
|
|
|
|
p) pretty_prt=" -p ";;
|
|
|
|
q) quiet_mode=" -q ";;
|
|
|
|
r) LTPROOT=$OPTARG;;
|
|
|
|
t) # In case you want to specify the time
|
|
# to run from the command line
|
|
# (2m = two minutes, 2h = two hours, etc)
|
|
duration="-t $OPTARG" ;;
|
|
|
|
x) # number of ltp's to run
|
|
instances="-x $OPTARG";;
|
|
|
|
\?) usage;;
|
|
esac
|
|
done
|
|
|
|
if [ -z $PASSWD ]
|
|
then
|
|
echo " "
|
|
echo "ERROR:"
|
|
echo "Please export enviroment variable PASSWD"
|
|
echo "INFO: export PASSWD = 'root's password'"
|
|
exit 1
|
|
fi
|
|
|
|
#if [ $run_netest -eq 1 ]
|
|
#then
|
|
# if [[ -z $RHOST || -z $PASSWD ]]
|
|
# then
|
|
# echo " "
|
|
# echo " "
|
|
# echo "ERROR: Initializing networking tests."
|
|
# echo "INFO: Please export RHOST = 'name of the remote host machine'"
|
|
# echo "INFO: Please export PASSWD = 'passwd of the remote host machine'"
|
|
# echo "INFO: before running the networking tests."
|
|
# echo " "
|
|
# echo " "
|
|
# echo " "
|
|
# usage
|
|
# fi
|
|
#fi
|
|
|
|
if [ -n "$instances" ]; then
|
|
instances="$instances -O ${TMP}"
|
|
fi
|
|
|
|
|
|
# If user does not provide a command file select a default set of testcases
|
|
# to execute.
|
|
if [ -z $cmdfile ]
|
|
then
|
|
cat ${LTPROOT}/../runtest/admin_tools > ${TMP}/alltests
|
|
else
|
|
cat $cmdfile > ${TMP}/alltests
|
|
fi
|
|
|
|
if [ $run_netest -eq 1 ]
|
|
then
|
|
cat ${LTPROOT}/../runtest/network_commands >> ${TMP}/alltests
|
|
fi
|
|
|
|
# The fsx-linux tests use the SCRATCHDEV environment variable as a location
|
|
# that can be reformatted and run on. Set SCRATCHDEV if you want to run
|
|
# these tests. As a safeguard, this is disabled.
|
|
unset SCRATCHDEV
|
|
if [ -n "$SCRATCHDEV" ]; then
|
|
cat ${LTPROOT}/../runtest/fsx >> ${TMP}/alltests
|
|
fi
|
|
|
|
# display versions of installed software
|
|
${LTPROOT}/../ver_linux
|
|
|
|
${LTPROOT}/../bin/ltp-pan $quiet_mode -e -S $instances $duration -a $$ -n $$ $pretty_prt -f ${TMP}/alltests $logfile
|
|
|
|
if [ $? -eq 0 ]; then
|
|
echo ltp-pan reported PASS
|
|
else
|
|
echo ltp-pan reported FAIL
|
|
fi
|
|
|
|
if [ $GenLoad -eq 1 ]
|
|
then
|
|
killall -9 genload >/dev/null 2>&1
|
|
fi
|
|
|
|
if [ $NetPipe -eq 1 ]
|
|
then
|
|
killall -9 NPtcp
|
|
fi
|
|
|
|
if [ $alt_dir -eq 1 ]
|
|
then
|
|
echo " "
|
|
echo "###############################################################"
|
|
echo " "
|
|
echo " result log is in the $LTPROOT/results directory"
|
|
echo " "
|
|
echo "###############################################################"
|
|
echo " "
|
|
fi
|
|
rm -rf ${TMP}
|