QA updates and a couple of new tests.

Exercise some of the limits for large file handling on 32-bit-sector_t systems.
This commit is contained in:
fsgqa
2003-07-07 03:34:36 +00:00
parent 6904219985
commit 30f93b8e71
7 changed files with 280 additions and 30 deletions
Executable
+120
View File
@@ -0,0 +1,120 @@
#! /bin/sh
# XFS QA Test No. 071
# $Id: 071,v 1.1 2003/07/07 03:34:36 fsgqa Exp $
#
# Exercise IO at large file offsets (just terabytes for now).
#
#-----------------------------------------------------------------------
# Copyright (c) 2000-2003 Silicon Graphics, Inc. All Rights Reserved.
#
# This program is free software; you can redistribute it and/or modify it
# under the terms of version 2 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.
#
# Further, this software is distributed without any warranty that it is
# free of the rightful claim of any third person regarding infringement
# or the like. Any license provided herein, whether implied or
# otherwise, applies only to this software file. Patent licenses, if
# any, provided herein do not apply to combinations of this program with
# other software, or any other product whatsoever.
#
# You should have received a copy of the GNU General Public License along
# with this program; if not, write the Free Software Foundation, Inc., 59
# Temple Place - Suite 330, Boston MA 02111-1307, USA.
#
# Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy,
# Mountain View, CA 94043, or:
#
# http://www.sgi.com
#
# For further information regarding this notice, see:
#
# http://oss.sgi.com/projects/GenInfo/SGIGPLNoticeExplan/
#-----------------------------------------------------------------------
#
# creator
owner=nathans@sgi.com
seq=`basename $0`
echo "QA output created by $seq"
rm -f $seq.full
here=`pwd`
tmp=/tmp/$$
status=1 # failure is the default!
_cleanup()
{
rm -f $tmp.*
umount $SCRATCH_DEV 2>/dev/null
}
trap "_cleanup; exit \$status" 0 1 2 3 15
# get standard environment, filters and checks
. ./common.rc
. ./common.filter
write_block()
{
location=$1
offset=$2
bytes=$3
direct=$4
[ `$direct` ] && flags=-d
echo "Writing $bytes bytes at $location (direct=$direct)" | tee -a $seq.full
xfs_io -c "pwrite $offset 512" $flags $SCRATCH_MNT/$seq
echo "Saving block map to $seq.full" | tee -a $seq.full
xfs_bmap -v $SCRATCH_MNT/$seq >>$seq.full
echo "Reading $bytes bytes at $location (direct=$direct)" | tee -a $seq.full
xfs_io -c "pread $offset $bytes" $flags $SCRATCH_MNT/$seq
xfs_io -c "pread -v $offset $bytes" $flags $SCRATCH_MNT/$seq >>$seq.full
echo | tee -a $seq.full
}
# real QA test starts here
_require_scratch
_scratch_mkfs_xfs | _filter_mkfs 2>$tmp.mkfs
source $tmp.mkfs
echo
_scratch_mount
oneTB=`echo 1024 \* 1024 \* 1024 \* 1024 | bc`
# Step from 1Tb through 16Tb, doing seek/writes/reads on each
# boundary (using holey files), 1byte back from the boundary,
# and 1FSB back from the boundary (and xfs_bmaps all the way).
xfs_io -c "truncate 0" -f $SCRATCH_MNT/$seq
count=1
while [ $count -le 16 ]
do
# buffered IO
offset=`echo $oneTB \* $count | bc`
write_block "$count Tb" $offset 512 false
offset=`echo $oneTB \* $count \- 1 | bc`
write_block "$count Tb minus 1 byte" $offset 512 false
offset=`echo $oneTB \* $count \- $dbsize | bc`
write_block "$count Tb minus 1 FSB" $offset 512 false
# direct IO
offset=`echo $oneTB \* $count | bc`
write_block "$count Tb" $offset $dbsize true
offset=`echo $oneTB \* $count \- 1 | bc`
write_block "$count Tb minus 1 FSB" $offset $dbsize true
count=`expr $count + 1`
done
# success, all done
status=0
exit
+38
View File
@@ -0,0 +1,38 @@
QA output created by 071
meta-data=DDEV isize=XXX agcount=N, agsize=XXX blks
data = bsize=XXX blocks=XXX, imaxpct=PCT
= sunit=XXX swidth=XXX, unwritten=X
naming =VERN bsize=XXX
log =LDEV bsize=XXX blocks=XXX
realtime =RDEV extsz=XXX blocks=XXX, rtextents=XXX
Writing 512 bytes at 1 Tb (direct=false)
wrote 512/512 bytes at offset 1099511627776
Saving block map to 071.full
Reading 512 bytes at 1 Tb (direct=false)
read 512/512 bytes at offset 1099511627776
Writing 512 bytes at 1 Tb minus 1 byte (direct=false)
wrote 512/512 bytes at offset 1099511627775
Saving block map to 071.full
Reading 512 bytes at 1 Tb minus 1 byte (direct=false)
read 512/512 bytes at offset 1099511627775
Writing 512 bytes at 1 Tb minus 1 FSB (direct=false)
wrote 512/512 bytes at offset 1099511623680
Saving block map to 071.full
Reading 512 bytes at 1 Tb minus 1 FSB (direct=false)
read 512/512 bytes at offset 1099511623680
Writing 4096 bytes at 1 Tb (direct=true)
wrote 512/512 bytes at offset 1099511627776
Saving block map to 071.full
Reading 4096 bytes at 1 Tb (direct=true)
read 512/4096 bytes at offset 1099511627776
Writing 4096 bytes at 1 Tb minus 1 FSB (direct=true)
wrote 512/512 bytes at offset 1099511627775
Saving block map to 071.full
Reading 4096 bytes at 1 Tb minus 1 FSB (direct=true)
read 513/4096 bytes at offset 1099511627775
Executable
+76
View File
@@ -0,0 +1,76 @@
#! /bin/sh
# XFS QA Test No. 072
# $Id: 072,v 1.1 2003/07/07 03:34:36 fsgqa Exp $
#
# Check some unwritten extent boundary conditions
#
#-----------------------------------------------------------------------
# Copyright (c) 2000-2003 Silicon Graphics, Inc. All Rights Reserved.
#
# This program is free software; you can redistribute it and/or modify it
# under the terms of version 2 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.
#
# Further, this software is distributed without any warranty that it is
# free of the rightful claim of any third person regarding infringement
# or the like. Any license provided herein, whether implied or
# otherwise, applies only to this software file. Patent licenses, if
# any, provided herein do not apply to combinations of this program with
# other software, or any other product whatsoever.
#
# You should have received a copy of the GNU General Public License along
# with this program; if not, write the Free Software Foundation, Inc., 59
# Temple Place - Suite 330, Boston MA 02111-1307, USA.
#
# Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy,
# Mountain View, CA 94043, or:
#
# http://www.sgi.com
#
# For further information regarding this notice, see:
#
# http://oss.sgi.com/projects/GenInfo/SGIGPLNoticeExplan/
#-----------------------------------------------------------------------
#
# creator
owner=nathans@sgi.com
seq=`basename $0`
echo "QA output created by $seq"
here=`pwd`
tmp=/tmp/$$
status=1 # failure is the default!
trap "rm -f $tmp.*; exit \$status" 0 1 2 3 15
# get standard environment, filters and checks
. ./common.rc
. ./common.filter
# real QA test starts here
rm -f $TEST_MNT/ouch
echo Silence is golden
# reserve 1MiB, truncate at 100bytes
xfs_io -f -c 'resvsp 0 1m' -c 'truncate 100' $TEST_MNT/ouch
rm -f $TEST_MNT/ouch
# reserve 1MiB, truncate at 2MiB
xfs_io -f -c 'resvsp 0 1m' -c 'truncate 2m' $TEST_MNT/ouch
rm -f $TEST_MNT/ouch
# reserve 1MiB, truncate at 1m
xfs_io -f -c 'resvsp 0 1m' -c 'truncate 1m' $TEST_MNT/ouch
rm -f $TEST_MNT/ouch
# reserve 1MiB, 1MiB hole, reserve 1MiB, truncate at 3m
xfs_io -f -c 'resvsp 0 1m' -c 'resvsp 2m 1m' -c 'truncate 3m' $TEST_MNT/ouch
rm -f $TEST_MNT/ouch
# success, all done
status=0
exit
+2
View File
@@ -0,0 +1,2 @@
QA output created by 071
Silence is golden
+32 -26
View File
@@ -26,8 +26,11 @@ attr nathans@sgi.com dxm@sgi.com
# xfs_logprint
logprint dxm@sgi.com
# xfsdump, xfsrestore, xfsinvutil, xfs_copy
xfsdump tes@sgi.com ivanr@sgi.com
# xfsdump, xfsrestore, xfsinvutil
dump tes@sgi.com ivanr@sgi.com
# xfs_copy
copy harshula@sgi.com
# chacl, libacl
acl tes@sgi.com ajag@sgi.com
@@ -76,32 +79,32 @@ ioctl nathans@sgi.com
019 mkfs auto
020 metadata attr auto
021 db attr auto
022 xfsdump ioctl auto
023 xfsdump ioctl auto
024 xfsdump ioctl auto
025 xfsdump ioctl auto
026 xfsdump ioctl auto
027 xfsdump ioctl auto
028 xfsdump ioctl auto
022 dump ioctl auto
023 dump ioctl auto
024 dump ioctl auto
025 dump ioctl auto
026 dump ioctl auto
027 dump ioctl auto
028 dump ioctl auto
029 mkfs logprint auto
030 repair auto
031 repair mkfs auto
032 mkfs auto
033 repair auto
034 other auto
035 xfsdump ioctl auto
036 xfsdump ioctl auto
037 xfsdump ioctl auto
038 xfsdump ioctl auto
039 xfsdump ioctl auto
035 dump ioctl auto
036 dump ioctl auto
037 dump ioctl auto
038 dump ioctl auto
039 dump ioctl auto
040 other auto
041 growfs ioctl auto
042 fsr ioctl auto
043 xfsdump ioctl auto
043 dump ioctl auto
044 other auto
045 other auto
046 xfsdump ioctl auto
047 xfsdump ioctl auto
046 dump ioctl auto
047 dump ioctl auto
048 other auto
049 rw auto
050 quota auto
@@ -109,19 +112,22 @@ ioctl nathans@sgi.com
052 quota db auto
053 acl repair auto
054 quota auto
055 xfsdump ioctl auto
056 xfsdump ioctl auto
055 dump ioctl auto
056 dump ioctl auto
057 acl auto
058 acl auto
059 xfsdump ioctl
060 xfsdump ioctl
061 xfsdump ioctl auto
059 dump ioctl
060 dump ioctl
061 dump ioctl auto
062 attr auto
063 xfsdump auto
064 xfsdump
065 xfsdump auto
066 xfsdump ioctl auto
063 dump auto
064 dump
065 dump auto
066 dump ioctl auto
067 acl attr auto
068 other auto
069 rw auto
070 attr auto
071 rw
072 rw
073 copy
+2 -4
View File
@@ -1,6 +1,6 @@
#! /bin/sh
#
# Copyright (c) 2000-2001 Silicon Graphics, Inc. All Rights Reserved.
# Copyright (c) 2000-2003 Silicon Graphics, Inc. All Rights Reserved.
#
# This program is free software; you can redistribute it and/or modify it
# under the terms of version 2 of the GNU General Public License as
@@ -33,8 +33,6 @@
#
# Make a new test
#
# $Header: /build2/depot/linux/pcp/dev/qa/RCS/new,v 2.22 1999/10/06 19:16:53 kenmcd Exp $
#
# generic initialization
iam=new
@@ -102,7 +100,7 @@ cat <<End-of-File | sed -e '/rcsId/s//Id: 1.1 /' >$id
# what am I here for?
#
#-----------------------------------------------------------------------
# Copyright (c) 2000-2001 Silicon Graphics, Inc. All Rights Reserved.
# Copyright (c) 2000-2003 Silicon Graphics, Inc. All Rights Reserved.
#
# This program is free software; you can redistribute it and/or modify it
# under the terms of version 2 of the GNU General Public License as
Executable
+10
View File
@@ -0,0 +1,10 @@
#!/bin/sh
#
# Does a dbench run with 20 clients
#
DBENCH_CLIENTS=20
export DBENCH_CLIENTS
[ ! -d "$here" ] && here=`pwd`
exec $here/common.dbench $@