From 0a74286f0a6d07971707e968ff3b0daa12f4d0af Mon Sep 17 00:00:00 2001 From: David Disseldorp Date: Fri, 6 Jul 2007 04:05:35 +0000 Subject: [PATCH] file size consistantcy test Merge of master-melb:xfs-cmds:29085a by kenmcd. --- 169 | 95 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 169.out | 19 ++++++++++++ group | 3 +- 3 files changed, 116 insertions(+), 1 deletion(-) create mode 100755 169 create mode 100644 169.out diff --git a/169 b/169 new file mode 100755 index 00000000..138e88f8 --- /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 index 00000000..22a5b77a --- /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 ad59e0b3..9bc047c4 100644 --- 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 -- 2.30.2