File: [Development] / xfs-cmds / xfstests / 074 (download)
Revision 1.8, Wed Jun 4 04:25:32 2008 UTC (9 years, 4 months ago) by xaiki.longdrop.melbourne.sgi.com
Branch: MAIN
CVS Tags: HEAD Changes since 1.7: +11 -4
lines
074 takes ages to complete on my kvm test VM, but scaling it back to the
level used on IRIX makes it complete in slightly under 10 minutes.
I'm not sure if checking for UP vs SMP is the right way to go into slow
mode, but I couldn't think of anything better.
Signed-off-by: Christoph Hellwig <hch@lst.de>
Merge of master-melb:xfs-cmds:31272a by kenmcd.
|
#! /bin/sh
# FS QA Test No. 074
#
# fstest
#
#-----------------------------------------------------------------------
# Copyright (c) 2000-2003 Silicon Graphics, Inc. All Rights Reserved.
#-----------------------------------------------------------------------
#
# creator
owner=nathans@sgi.com
seq=`basename $0`
echo "QA output created by $seq"
here=`pwd`
tmp=/tmp/$$
status=0 # success is the default!
trap "_cleanup; exit \$status" 0 1 2 3 15
_cleanup()
{
cd /
rm -rf $testdir/fstest.$$.* $tmp.*
_cleanup_testdir
}
# get standard environment, filters and checks
. ./common.rc
. ./common.filter
_do_test()
{
_n="$1"
_param="$2"
out=$testdir/fstest.$$.$_n
rm -rf $out
if ! mkdir $out
then
echo " failed to mkdir $out"
status=1
exit
fi
_filter_param=`echo "$_param" | sed\
-e 's/-n [0-9][0-9]*/-n children/' \
-e 's/-l [0-9][0-9]*/-l loops/' \
-e 's/-f [0-9][0-9]*/-f files/'`
echo ""
echo "-----------------------------------------------"
echo "fstest.$_n : $_filter_param"
echo "-----------------------------------------------"
if ! $here/src/fstest $_param -p $out >>$seq.full
then
echo " fstest ($_param) returned $? - see $seq.full"
status=1
exit
fi
_check_test_fs
}
_usage()
{
echo "$0: [-f files] [-l loops] [-n children]"
}
_process_args()
{
while getopts "f:l:n:?" c $@
do
case $c
in
f)
numfiles=$OPTARG
param_type="$param_type, overidde -f"
;;
l)
numloops=$OPTARG
param_type="$param_type, overidde -l"
;;
n)
numchildren=$OPTARG
param_type="$param_type, overidde -n"
;;
?)
_usage
exit
;;
esac
done
}
# real QA test starts here
rm -f $here/$seq.full
_supported_fs xfs udf nfs
_supported_os IRIX Linux
#
# set params
# These params can take a while on different CPUs/OSs
# so we set them differently for different machines
#
if [ $HOSTOS == "IRIX" ]; then
if uname -R | grep -iq debug; then
# e.g. getting around 37secs for 1,1,1 on IP30 debug
numchildren=2
numloops=1
numfiles=2
param_type="IRIX debug"
else
# getting around 1 sec 1,1,1 - 10secs 1,10,1 on IP30 nondebug
numloops=2
numfiles=3
numchildren=3
param_type="IRIX nondebug"
fi
elif [ $HOSTOS == "Linux" ]; then
if uname -a | grep -q SMP; then
numloops=10
numfiles=5
numchildren=3
param_type="Linux SMP"
else
numloops=2
numfiles=3
numchildren=3
param_type="Linux UP"
fi
else
numloops=1
numfiles=1
numchildren=1
param_type="Default"
fi
# can override the params here
_process_args "$@"
echo "Params are for $param_type" >>$seq.full
echo "Params: n = $numchildren l = $numloops f = $numfiles" >>$seq.full
_setup_testdir
_check_test_fs
# Options:
# -F generate files with holes (default=no)
# -n num_children set number of child processes (default=1)
# -f num_files set number of files (default=1)
# -s file_size set file sizes (default=1MiB)
# -b block_size set block (IO) size (default=1024)
# -l loops set loop count (default=100)
# -m use mmap (default=no)
# -S use synchronous IO (default=no)
# -P preallocate space (default=no)
size10=`expr 10 \* 1024 \* 1024` # 10 megabytes
size30=`expr 30 \* 1024 \* 1024` # 30 megabytes
_do_test 0 "-l $numloops"
_do_test 1 "-l $numloops -s $size10 -b 8192 -m"
_do_test 2 "-n $numchildren -F -l $numloops -f $numfiles -s $size30 -b 512"
_do_test 3 "-n $numchildren -F -l $numloops -f $numfiles -s $size30 -b 512 -m"
_do_test 4 "-n $numchildren -F -l $numloops -f $numfiles -s $size10 -b 512 -mS"