Exercise some of the limits for large file handling on 32-bit-sector_t systems.
--- /dev/null
+#! /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
--- /dev/null
+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
+
--- /dev/null
+#! /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
--- /dev/null
+QA output created by 071
+Silence is golden
# 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
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
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
#! /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
#
# 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
# 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
--- /dev/null
+#!/bin/sh
+#
+# Does a dbench run with 20 clients
+#
+DBENCH_CLIENTS=20
+export DBENCH_CLIENTS
+
+[ ! -d "$here" ] && here=`pwd`
+
+exec $here/common.dbench $@