file size consistantcy test
authorDavid Disseldorp <ddiss@sgi.com>
Fri, 6 Jul 2007 04:05:35 +0000 (04:05 +0000)
committerDavid Disseldorp <ddiss@sgi.com>
Fri, 6 Jul 2007 04:05:35 +0000 (04:05 +0000)
Merge of master-melb:xfs-cmds:29085a by kenmcd.

169 [new file with mode: 0755]
169.out [new file with mode: 0644]
group

diff --git a/169 b/169
new file mode 100755 (executable)
index 0000000..138e88f
--- /dev/null
+++ b/169
@@ -0,0 +1,95 @@
+#! /bin/sh
+# FSQA Test No. 169
+#
+# Test for file size consistency with append followed by umount/mount
+#
+#-----------------------------------------------------------------------
+#  Copyright (c) 2007 Silicon Graphics, Inc.  All Rights Reserved.
+#-----------------------------------------------------------------------
+#
+# creator
+owner=ddiss@sgi.com
+
+seq=`basename $0`
+echo "QA output created by $seq"
+
+here=`pwd`
+tmp=/tmp/$$
+rm -f $seq.full
+status=1    # failure is the default!
+trap "_cleanup; exit \$status" 0 1 2 3 15
+
+_cleanup()
+{
+       cd /
+       rm -f $tmp.*
+}
+
+_show_wrote_and_stat_only()
+{
+       # filer out xfs_io bits we are interested in
+       perl -ne '
+               if (/^wrote/) { print } ;
+               if (/^stat\.size/) { print } ;
+       '
+}
+
+# get standard environment, filters and checks
+. ./common.rc
+. ./common.filter
+
+# real QA test starts here
+_supported_fs xfs
+_supported_os Linux
+
+_require_scratch
+
+_scratch_mkfs_xfs >>$seq.full 2>&1 \
+       || _fail "mkfs scratch failed"
+
+_scratch_mount >>$seq.full 2>&1 \
+    || _fail "mount failed: $MOUNT_OPTIONS"
+
+echo "# creating new file for io"
+touch $SCRATCH_MNT/testfile
+
+echo "# appending 15k to new file, sync every 5k"
+xfs_io -a -c "pwrite 0 5k" -c "fsync" \
+       -c "pwrite 5k 5k" -c "fsync" \
+       -c "pwrite 10k 5k" -c "fsync" -c "stat" \
+       $SCRATCH_MNT/testfile \
+       | _show_wrote_and_stat_only
+
+echo "# unmounting scratch"
+umount $SCRATCH_MNT>>$seq.full 2>&1 \
+    || _fail "unmount failed"
+
+echo "# mounting scratch"
+_scratch_mount >>$seq.full 2>&1 \
+    || _fail "mount failed: $MOUNT_OPTIONS"
+
+echo "# stating file to confirm correct size"
+xfs_io -r -c "stat" $SCRATCH_MNT/testfile \
+       | _show_wrote_and_stat_only
+
+echo "# appending 10 bytes to new file, sync at 5 bytes"
+xfs_io -f -c "pwrite 0 5" -c s -c "pwrite 5 5" \
+       -c "stat" $SCRATCH_MNT/nextfile \
+       | _show_wrote_and_stat_only
+
+echo "# unmounting scratch"
+umount $SCRATCH_MNT>>$seq.full 2>&1 \
+    || _fail "unmount failed"
+
+echo "# mounting scratch"
+_scratch_mount >>$seq.full 2>&1 \
+    || _fail "mount failed: $MOUNT_OPTIONS"
+
+echo "# stating file to confirm correct size"
+xfs_io -r -c "stat" $SCRATCH_MNT/nextfile \
+    | _show_wrote_and_stat_only
+
+# success, all done
+status=0
+exit
+
diff --git a/169.out b/169.out
new file mode 100644 (file)
index 0000000..22a5b77
--- /dev/null
+++ b/169.out
@@ -0,0 +1,19 @@
+QA output created by 169
+# creating new file for io
+# appending 15k to new file, sync every 5k
+wrote 5120/5120 bytes at offset 0
+wrote 5120/5120 bytes at offset 5120
+wrote 5120/5120 bytes at offset 10240
+stat.size = 15360
+# unmounting scratch
+# mounting scratch
+# stating file to confirm correct size
+stat.size = 15360
+# appending 10 bytes to new file, sync at 5 bytes
+wrote 5/5 bytes at offset 0
+wrote 5/5 bytes at offset 5
+stat.size = 10
+# unmounting scratch
+# mounting scratch
+# stating file to confirm correct size
+stat.size = 10
diff --git a/group b/group
index ad59e0b3701a7db49b8fba81eaf65f1f68d105b5..9bc047c4e8e49aba08dca787e8ba587d3df2e776 100644 (file)
--- a/group
+++ b/group
@@ -223,7 +223,7 @@ filestreams dgc@sgi.com
 133 rw
 134 quota auto
 135 metadata auto
-136 attr2 
+136 attr2
 137 metadata log auto
 138 metadata log auto
 139 metadata log auto
@@ -256,6 +256,7 @@ filestreams dgc@sgi.com
 166 rw metadata auto
 167 rw metadata auto
 168 dmapi auto
+169 rw metadata auto
 170 rw filestreams auto
 171 rw filestreams auto
 172 rw filestreams auto