QA test updates - fixes for pquota, extsize, fsstress, and ensure mount options passed through to test_dev.

Merge of master-melb:xfs-cmds:24763a by kenmcd.
This commit is contained in:
Nathan Scott
2005-12-09 02:52:22 +00:00
parent 6449a993f2
commit de6d86177f
36 changed files with 297 additions and 231 deletions
+11 -5
View File
@@ -40,17 +40,23 @@ _do_test()
_n="$1"
_holes="$2"
_param="$3"
out=$testdir/randholes.$$.$_n
echo ""
echo "randholes.$_n : $_param" | _filter
echo "------------------------------------------"
if $here/src/randholes $_param $out >$tmp.out
then
# quick check - how many holes did we get?
count=`xfs_bmap $out | egrep -c ': hole'`
# blocks can end up adjacent, therefore number of holes varies
_within_tolerance "holes" $count $_holes 10% -v
# only check if we're not allocating in huge chunks (extsz flag)
if _test_inode_flag extsize $out || _test_inode_flag realtime $out
then
echo "holes is in range"
else
# quick check - how many holes did we get?
count=`xfs_bmap $out | egrep -c ': hole'`
# blocks can end up adjacent, therefore number of holes varies
_within_tolerance "holes" $count $_holes 10% -v
fi
else
echo " randholes returned $? - see $seq.out.full"
echo "--------------------------------------" >>$here/$seq.out.full
+1 -1
View File
@@ -1,7 +1,7 @@
#! /bin/sh
# FS QA Test No. 009
#
# alloc test
# XFS allocator test (preallocation - allocp, resvsp ,etc)
#
#-----------------------------------------------------------------------
# Copyright (c) 2000-2002 Silicon Graphics, Inc. All Rights Reserved.
+6 -7
View File
@@ -25,7 +25,7 @@ _cleanup()
mount -o remount,rw $TEST_DEV >/dev/null 2>&1
# now remove fsstress directory.
# N.B. rm(1) on IRIX can find problems when building up a long pathname
# such that what it has is greater the 1024 chars and will
# such that what it has is greater the 1024 chars and will
# stop and complain - so get rid of complaint
# Ref. pv#935754
rm -rf $testdir/fsstress.$$.* 2>&1 | grep -v 'Path too long'
@@ -46,7 +46,7 @@ _do_test()
_n="$1"
_param="$2"
_count="$3"
out=$testdir/fsstress.$$.$_n
rm -rf $out
if ! mkdir $out
@@ -55,17 +55,16 @@ _do_test()
status=1
exit
fi
echo ""
echo "-----------------------------------------------"
echo "fsstress.$_n : $_param"
echo "-----------------------------------------------"
# -m limits number of users/groups so check doesn't fail (malloc) later
dbgoutfile=$seq.full
if ! $here/ltp/fsstress $_param $FSSTRESS_AVOID -v -m 8 -n $_count -d $out >>$dbgoutfile 2>&1
if ! $FSSTRESS_PROG $_param $FSSTRESS_AVOID -v -m 8 -n $_count -d $out >>$dbgoutfile 2>&1
then
echo " fsstress (count=$_count) returned $? - see $seq.full"
echo "--------------------------------------" >>$here/$seq.full
echo "$_n - output from fsstress:" >>$here/$seq.full
echo "--------------------------------------" >>$here/$seq.full
@@ -110,12 +109,12 @@ rm -f $seq.full
exit
# Test with error injection:
#
#
# (error injection)
# fsstress -n 1000 -d $scratch -p 4 -z -f rmdir=10 -f link=10 -f creat=10 \
# -f mkdir=10 -f rename=30 -f stat=30 -f unlink=30 -f truncate=20 \
# -e 1
#
#
# Error values 1 - 6 test IFLUSH
# 1 - corrupt buffer being flushed to di_core.di_magic
# 2 - corrupt inode being flushed i_d.di_magic
+11 -9
View File
@@ -17,7 +17,7 @@ owner=dxm@sgi.com
# start bit by bit to force wiping of stale blocks near the end of the
# log. Check the block after the log ends to check for corruption
#
# assumptions :
# assumptions :
# - given we're only touching a single inode, the block after the
# log which is in the middle ag should never be touched.
# if it changes, we assume the log is writing over it
@@ -63,9 +63,9 @@ _log_traffic()
{
count=$1
echo "*** generate log traffic"
out=$SCRATCH_MNT/$$.tmp
echo " *** mount"
if ! _scratch_mount
then
@@ -75,18 +75,20 @@ _log_traffic()
# having any quota enabled (acct/enfd) means extra log traffic - evil!
$here/src/feature -U $SCRATCH_DEV && \
_notrun "Quota are enabled, test needs controlled log traffic"
_notrun "UQuota are enabled, test needs controlled log traffic"
$here/src/feature -G $SCRATCH_DEV && \
_notrun "Quota are enabled, test needs controlled log traffic"
_notrun "GQuota are enabled, test needs controlled log traffic"
$here/src/feature -P $SCRATCH_DEV && \
_notrun "PQuota are enabled, test needs controlled log traffic"
echo " *** fiddle"
while [ $count -ge 0 ]
do
touch $out
touch $out
rm $out
let "count = count - 1"
done
echo " *** unmount"
if ! umount $SCRATCH_DEV
then
@@ -119,7 +121,7 @@ _log_sunit()
else
expr $lsunit \* $dbsize
fi
}
}
_after_log()
{
+4 -4
View File
@@ -1,7 +1,7 @@
#! /bin/sh
# FS QA Test No. 017
#
# test remount ro - pv 795642
# test remount ro - pv 795642
#
#-----------------------------------------------------------------------
# Copyright (c) 2000-2002 Silicon Graphics, Inc. All Rights Reserved.
@@ -53,11 +53,11 @@ echo "*** test"
for l in 0 1 2 3 4
do
echo " *** test $l"
ltp/fsstress -d $SCRATCH_MNT -n 1000 $FSSTRESS_AVOID >>$seq.full
$FSSTRESS_PROG -d $SCRATCH_MNT -n 1000 $FSSTRESS_AVOID >>$seq.full
_scratch_mount -o remount,ro \
|| _fail "remount ro failed"
echo "" >>$seq.full
echo "*** xfs_logprint ***" >>$seq.full
echo "" >>$seq.full
+1 -5
View File
@@ -30,8 +30,7 @@ _cleanup()
_filter()
{
sed "s#$testdir[^ :]*#<TESTFILE>#g;
s#$tmp[^ :]*#<TMPFILE>#g;
s#/proc[^ :]*#<PROCFILE>#g" $1
s#$tmp[^ :]*#<TMPFILE>#g" $1
}
_attr()
@@ -81,9 +80,6 @@ testfile=$testdir/attribute_$$
echo "*** list non-existant file"
_attr_list $testfile
echo "*** list non-xfs file (in /proc)"
_attr_list /proc/devices
echo "*** list empty file"
touch $testfile
_attr_list $testfile
-4
View File
@@ -3,10 +3,6 @@ QA output created by 020
*** print attributes
getfattr: <TESTFILE>: No such file or directory
!!! error return
*** list non-xfs file (in /proc)
*** print attributes
getfattr: <PROCFILE>: Operation not supported
!!! error return
*** list empty file
*** print attributes
*** query non-existant attribute
+5 -5
View File
@@ -57,7 +57,7 @@ DSIZE="-dsize=100m"
# first we need to ensure there are no bogus secondary
# superblocks between the primary and first secondary
# superblock (hanging around from earlier tests)...
#
#
_scratch_mkfs_xfs $DSIZE >/dev/null 2>&1
if [ $? -ne 0 ] # probably don't have a big enough scratch
@@ -66,11 +66,11 @@ then
else
_scratch_mount
src/feature -U $SCRATCH_DEV && \
_notrun "Quota are enabled, test needs controlled sb recovery"
_notrun "UQuota are enabled, test needs controlled sb recovery"
src/feature -G $SCRATCH_DEV && \
_notrun "Quota are enabled, test needs controlled sb recovery"
_notrun "GQuota are enabled, test needs controlled sb recovery"
src/feature -P $SCRATCH_DEV && \
_notrun "Quota are enabled, test needs controlled sb recovery"
_notrun "PQuota are enabled, test needs controlled sb recovery"
umount $SCRATCH_DEV
fi
clear=""
@@ -82,7 +82,7 @@ eval `xfs_db -r -c "sb 1" -c stack $SCRATCH_DEV | perl -ne '
src/devzero -v -1 -n "$clear" $SCRATCH_DEV >/dev/null
# now kick off the real repair test...
#
#
_scratch_mkfs_xfs $DSIZE | _filter_mkfs 2>$tmp.mkfs
. $tmp.mkfs
_check_ag 0
+4 -2
View File
@@ -78,9 +78,11 @@ _scratch_mkfs_xfs | _filter_mkfs 2>$tmp.mkfs
# check we won't get any quota inodes setup on mount
_scratch_mount
src/feature -U $SCRATCH_DEV && \
_notrun "Quota are enabled, test needs controlled sb recovery"
_notrun "UQuota are enabled, test needs controlled sb recovery"
src/feature -G $SCRATCH_DEV && \
_notrun "Quota are enabled, test needs controlled sb recovery"
_notrun "GQuota are enabled, test needs controlled sb recovery"
src/feature -P $SCRATCH_DEV && \
_notrun "PQuota are enabled, test needs controlled sb recovery"
umount $SCRATCH_DEV
# rootino, rbmino, and rsumino are now set (lets blow em away!)
+9 -9
View File
@@ -19,7 +19,7 @@ _cleanup()
umount $SCRATCH_MNT/test2 > /dev/null 2>&1
umount $SCRATCH_MNT/test > /dev/null 2>&1
rm -f $tmp.*
if [ -w $seq.full ]
then
echo "--- mounts at end (after cleanup)" >> $seq.full
@@ -81,9 +81,9 @@ mount -t xfs -o loop $SCRATCH_MNT/test.xfs $SCRATCH_MNT/test >> $seq.full 2>&1 \
|| _fail "!!! failed to loop mount xfs"
_log "stress"
ltp/fsstress -d $SCRATCH_MNT/test -n 1000 $FSSTRESS_AVOID >> $seq.full 2>&1 \
$FSSTRESS_PROG -d $SCRATCH_MNT/test -n 1000 $FSSTRESS_AVOID >> $seq.full 2>&1 \
|| _fail "!!! stress failed"
_log "clean"
rm -rf $SCRATCH_MNT/test/* >> $seq.full 2>&1 \
|| _fail "!!! clean failed"
@@ -91,7 +91,7 @@ rm -rf $SCRATCH_MNT/test/* >> $seq.full 2>&1 \
_log "create file for ext2 fs"
dd if=/dev/zero of=$SCRATCH_MNT/test/test.ext2 bs=1024 count=10240 >> $seq.full 2>&1 \
|| _fail "!!! create file failed"
_log "Create ext2 fs in file on looped xfs"
echo y | mkfs -t ext2 $SCRATCH_MNT/test/test.ext2 >> $seq.full 2>&1 \
|| _fail "!!! failed to mkfs ext2 on xfs"
@@ -101,21 +101,21 @@ mount -t ext2 -o loop $SCRATCH_MNT/test/test.ext2 $SCRATCH_MNT/test2 >> $seq.ful
|| _fail "!!! failed to loop mount xfs"
_log "stress ext2 on xfs via loop"
ltp/fsstress -d $SCRATCH_MNT/test2 -n 1000 $FSSTRESS_AVOID >> $seq.full 2>&1 \
|| _fail "!!! stress ext2 failed"
$FSSTRESS_PROG -d $SCRATCH_MNT/test2 -n 1000 $FSSTRESS_AVOID >> $seq.full 2>&1 \
|| _fail "!!! stress ext2 failed"
_log "clean"
rm -rf $SCRATCH_MNT/test/* >> $seq.full 2>&1 \
|| _fail "!!! clean failed"
_log "umount ext2 on xfs"
umount $SCRATCH_MNT/test2 >> $seq.full 2>&1 \
|| _fail "!!! umount ext2 failed"
_log "umount xfs"
umount $SCRATCH_MNT/test >> $seq.full 2>&1 \
|| _fail "!!! umount xfs failed"
echo "--- mounts at end (before cleanup)" >> $seq.full
mount >> $seq.full
+10 -3
View File
@@ -58,14 +58,14 @@ inohard=10
# and iosize. What we want to test is that the limit is enforced
# (ie. blksize less than limit but not unduly less - ~85% is kind)
# nowadays we actually get much closer to the limit before EDQUOT.
#
#
_filter_and_check_blocks()
{
perl -npe '
if (/^'$name'\s+([-|+]){2}\s+(\d+)/ && '$enforce') {
$maximum = '$blkhard';
$minimum = '$blkhard' * 85/100;
if ($2 < $minimum || $2 > $maximum) {
if (($2 < $minimum || $2 > $maximum) && '$noextsz') {
printf(" URK - %d is out of range! [%d,%d] \n",
$2, $minimum, $maximum);
}
@@ -89,6 +89,14 @@ else
QUOTA_FS=$SCRATCH_MNT
fi
# Figure out whether we're doing large allocations
# (bail out if they're so large they stuff the test up)
_test_inode_flag extsz-inherit $SCRATCH_MNT
noextsz=$?
extsize=`_test_inode_extsz $SCRATCH_MNT`
[ $extsize -ge 512000 ] && \
_notrun "Extent size hint is too large ($extsize bytes)"
_qsetup
echo "Using output from '" `ls -l $seq.out` "'" >>$seq.full
@@ -138,7 +146,6 @@ ls -l $SCRATCH_MNT >>$seq.full
_qmount
_repquota -$type $QUOTA_FS | _filter_and_check_blocks
# success, all done
status=0
exit
+21 -19
View File
@@ -2,7 +2,7 @@
# FS QA Test No. 065
#
# Testing incremental dumps and cumulative restores with
# "adding, deleting, renaming, linking, and unlinking files and
# "adding, deleting, renaming, linking, and unlinking files and
# directories".
# Do different operations for each level.
#
@@ -26,7 +26,7 @@ trap "rm -f $tmp.*; exit \$status" 0 1 2 3 15
. ./common.filter
. ./common.dump
# IRIX "ls -s" uses a block size of 512, for consistincy on linux use
# IRIX "ls -s" uses a block size of 512, for consistincy on linux use
# ls --block-size=512 -s <file>
[ $HOSTOS == Linux ] && LS_BLOCKSIZE="--block-size=512"
@@ -42,7 +42,7 @@ _my_ls_filter()
grep -v total | grep -v "^$" | sed "s/^[ \t]*//g" | \
sed -e 's/.*dumpdir/dumpdir/' |\
egrep -v 'housekeeping|dirattr|dirextattr|namreg|state|tree|dumpdir/$|dumpdir:$' |\
egrep -v "$restore_dir:"
egrep -v "$restore_dir:"
}
# real QA test starts here
@@ -56,9 +56,11 @@ _supported_os IRIX Linux
umount $SCRATCH_DEV 2>/dev/null
_scratch_mount
$here/src/feature -U $SCRATCH_DEV && \
_notrun "Quota enabled, test needs controlled xfsdump output"
_notrun "UQuota enabled, test needs controlled xfsdump output"
$here/src/feature -G $SCRATCH_DEV && \
_notrun "Quota enabled, test needs controlled xfsdump output"
_notrun "GQuota enabled, test needs controlled xfsdump output"
$here/src/feature -P $SCRATCH_DEV && \
_notrun "PQuota enabled, test needs controlled xfsdump output"
umount $SCRATCH_DEV
#
@@ -95,11 +97,11 @@ while [ $i -le $num_dumps ]; do
;;
1)
# deleting
rm addedfile2
rmdir addeddir2
rm addedfile2
rmdir addeddir2
rm -rf addeddir3
;;
2)
2)
# renaming
mv addedfile1 addedfile2 # rename to previous existing file
mv addeddir4/addedfile5 addeddir4/addedfile4
@@ -108,7 +110,7 @@ while [ $i -le $num_dumps ]; do
;;
3)
# linking
ln addedfile0 linkfile0
ln addedfile0 linkfile0
ln addedfile0 linkfile0_1 # have a 2nd link to file
ln addedfile2 linkfile2
ln addeddir6/addedfile4 linkfile64
@@ -123,18 +125,18 @@ while [ $i -le $num_dumps ]; do
5) # link first - then onto 6)
rm -rf *
echo 'add6' >addedfile6
ln addedfile6 linkfile6_1
ln addedfile6 linkfile6_2
ln addedfile6 linkfile6_3
ln addedfile6 linkfile6_1
ln addedfile6 linkfile6_2
ln addedfile6 linkfile6_3
;;
6) # then move the inode that the links point to
mv addedfile6 addedfile6_mv
mv addedfile6 addedfile6_mv
rm linkfile6_1
rm linkfile6_2
rm linkfile6_3
ln addedfile6_mv linkfile6_mv_1
ln addedfile6_mv linkfile6_mv_2
ln addedfile6_mv linkfile6_mv_3
ln addedfile6_mv linkfile6_mv_2
ln addedfile6_mv linkfile6_mv_3
;;
esac
cd $here
@@ -146,7 +148,7 @@ while [ $i -le $num_dumps ]; do
dump_file=$tmp.df.level$i
_do_dump_file -l $i
i=`expr $i + 1`
i=`expr $i + 1`
done
echo "Look at what files are contained in the inc. dump"
@@ -156,7 +158,7 @@ while [ $i -le $num_dumps ]; do
echo "restoring from df.level$i"
dump_file=$tmp.df.level$i
_do_restore_toc
i=`expr $i + 1`
i=`expr $i + 1`
done
echo "Do the cumulative restores"
@@ -169,7 +171,7 @@ while [ $i -le $num_dumps ]; do
echo "ls -sRF restore_dir"
ls -sRF $LS_BLOCKSIZE $restore_dir | _my_ls_filter |\
_check_quota_file | tee $tmp.restorals.$i
i=`expr $i + 1`
i=`expr $i + 1`
done
echo ""
@@ -179,7 +181,7 @@ while [ $i -le $num_dumps ]; do
echo "Comparing ls of FS with restored FS at level $i"
diff -s $tmp.ls.$i $tmp.restorals.$i | sed "s#$tmp#TMP#g"
echo ""
i=`expr $i + 1`
i=`expr $i + 1`
done
+1 -1
View File
@@ -66,7 +66,7 @@ touch $tmp.running
while [ -f "$tmp.running" ]
do
# -w ensures that the only ops are ones which cause write I/O
ltp/fsstress -d $STRESS_DIR -w -p $procs -n $nops $FSSTRESS_AVOID \
$FSSTRESS_PROG -d $STRESS_DIR -w -p $procs -n $nops $FSSTRESS_AVOID \
> /dev/null 2>&1
done
+1 -1
View File
@@ -35,7 +35,7 @@ _supported_os IRIX Linux
_setup_testdir
$here/ltp/fsstress \
$FSSTRESS_PROG \
-d $testdir/fsstress \
-f allocsp=0 \
-f freesp=0 \
+4 -2
View File
@@ -65,8 +65,10 @@ _do_test()
cd $out
if ! $here/ltp/fsx $_param -P $here $seq.$_n >/dev/null
then
echo " fsx ($_param) returned $? - see $seq.$_n.full"
mv $seq.$_n.fsxlog $here/$seq.$_n.full
echo " fsx ($_param) failed, $? - compare $seq.$_n.{good,bad,fsxlog}"
mv $out/$seq.$_n $here/$seq.$_n.full
od -xAx $here/$seq.$_n.full > $here/$seq.$_n.bad
od -xAx $here/$seq.$_n.fsxgood > $here/$seq.$_n.good
status=1
exit
fi
+1 -1
View File
@@ -60,7 +60,7 @@ echo "*** test concurrent block/fs access"
cat $SCRATCH_DEV >/dev/null &
pid=$!
ltp/fsstress -d $SCRATCH_MNT -p 2 -n 2000 $FSSTRESS_AVOID >>$seq.full
$FSSTRESS_PROG -d $SCRATCH_MNT -p 2 -n 2000 $FSSTRESS_AVOID >>$seq.full
_lets_get_pidst
_check_scratch_fs
+1 -1
View File
@@ -64,7 +64,7 @@ workout()
|| _fail "mount failed"
# -w ensures that the only ops are ones which cause write I/O
ltp/fsstress -d $SCRATCH_MNT -w -p $procs -n $nops $FSSTRESS_AVOID \
$FSSTRESS_PROG -d $SCRATCH_MNT -w -p $procs -n $nops $FSSTRESS_AVOID \
>>$seq.full
_check_scratch_fs
}
+1 -1
View File
@@ -31,7 +31,7 @@ _supported_os IRIX Linux
rm -f $seq.full $tmp.*
_require_scratch
_require_v2log
_require_v2log
echo "*** init FS"
umount $SCRATCH_DEV >/dev/null 2>&1
+1 -1
View File
@@ -32,7 +32,7 @@ _do_meta()
param="-p 4 -z -f rmdir=10 -f link=10 -f creat=10 -f mkdir=10 \
-f rename=30 -f stat=30 -f unlink=30 -f truncate=20"
_echofull "calling fsstress $param -m8 -n $count"
if ! $here/ltp/fsstress $param $FSSTRESS_AVOID -m 8 -n $count -d $out >>$seq.full 2>&1
if ! $FSSTRESS_PROG $param $FSSTRESS_AVOID -m 8 -n $count -d $out >>$seq.full 2>&1
then
_echofull "fsstress failed"
fi
+3 -3
View File
@@ -30,7 +30,7 @@ _cleanup()
. ./common.filter
. ./common.log
#
#
# filter out counts which will vary
# - blocks, agsize, agcount, device name
# filter out differences between linux and irix:
@@ -48,7 +48,7 @@ _cleanup()
# log =internal log bsize=4096 blocks=N, version=1
# = sunit=0 blks
# realtime =none extsz=65536 blocks=N, rtextents=0
#
#
_mkfs_filter()
{
tee -a $seq.full | \
@@ -58,7 +58,7 @@ _mkfs_filter()
-e 's/agcount=[0-9][0-9]*/agcount=N/' \
-e 's/meta-data=[^ ]*/meta-data=DEV/' \
-e 's/ *isize/ isize/' \
-e '/ *= *sectsz=[0-9][0-9]* *$/d' \
-e '/ *= *sectsz=[0-9][0-9]* *attr=[0-9][0-9]*$/d' \
-e '/ *= *mmr=[0-9][0-9]* *$/d' \
-e 's/ *mixed-case=[YN]//' \
-e 's/sectsz=[0-9][0-9]* *//' \

Some files were not shown because too many files have changed in this diff Show More