QA updates and a couple of new tests.
authorfsgqa <fsgqa>
Mon, 7 Jul 2003 03:34:36 +0000 (03:34 +0000)
committerfsgqa <fsgqa>
Mon, 7 Jul 2003 03:34:36 +0000 (03:34 +0000)
Exercise some of the limits for large file handling on 32-bit-sector_t systems.

071 [new file with mode: 0755]
071.out [new file with mode: 0644]
072 [new file with mode: 0755]
072.out [new file with mode: 0644]
group
new
run.dbench20 [new file with mode: 0755]

diff --git a/071 b/071
new file mode 100755 (executable)
index 0000000..84e0d34
--- /dev/null
+++ b/071
@@ -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
diff --git a/071.out b/071.out
new file mode 100644 (file)
index 0000000..b3309e6
--- /dev/null
+++ b/071.out
@@ -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
+
diff --git a/072 b/072
new file mode 100755 (executable)
index 0000000..6f3f0f5
--- /dev/null
+++ b/072
@@ -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
diff --git a/072.out b/072.out
new file mode 100644 (file)
index 0000000..9a9ef40
--- /dev/null
+++ b/072.out
@@ -0,0 +1,2 @@
+QA output created by 071
+Silence is golden
diff --git a/group b/group
index 1c13b8b04e1de45fe62789723d993b5e8fc716e7..a7eea66003643d54d7979119c18c1665aa7e8436 100644 (file)
--- a/group
+++ b/group
@@ -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
diff --git a/new b/new
index 970a1388a12f1f018060d0166131eeedf1d68f0f..5b7588c88b2da4deab99e9d8eb9502fb87d0458c 100755 (executable)
--- a/new
+++ b/new
@@ -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
diff --git a/run.dbench20 b/run.dbench20
new file mode 100755 (executable)
index 0000000..20a90b0
--- /dev/null
@@ -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 $@