file size consistantcy test

Merge of master-melb:xfs-cmds:29085a by kenmcd.
This commit is contained in:
David Disseldorp
2007-07-06 04:05:35 +00:00
parent 72b4e6cb85
commit 0a74286f0a
3 changed files with 116 additions and 1 deletions
Executable
+95
View File
@@ -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
+19
View File
@@ -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
+1
View File
@@ -256,6 +256,7 @@ filestreams dgc@sgi.com
166 rw metadata auto 166 rw metadata auto
167 rw metadata auto 167 rw metadata auto
168 dmapi auto 168 dmapi auto
169 rw metadata auto
170 rw filestreams auto 170 rw filestreams auto
171 rw filestreams auto 171 rw filestreams auto
172 rw filestreams auto 172 rw filestreams auto