From 19d0b5825037e686f1bb5aa120d97a11f15cd0ad Mon Sep 17 00:00:00 2001 From: ptools Date: Tue, 24 Feb 2004 02:58:40 +0000 Subject: [PATCH] Add test 087 which uses fsstress to create meta ops and src/godown to create a dirty log for recovery. It checks that FS looks reasonable after recovery and is a consistent state. There are more v2 log variants yet to try. Uses fsstress to create meta ops and src/godown to create a dirty log for recovery. It checks that FS looks reasonable after recovery and is a consistent state. There are more v2 log variants yet to try. --- 087 | 154 +++++++++++++++++++++++++++++++++++++++++++++++++ 087.out | 174 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ group | 1 + 3 files changed, 329 insertions(+) create mode 100755 087 create mode 100644 087.out diff --git a/087 b/087 new file mode 100755 index 000000000..1458d31b1 --- /dev/null +++ b/087 @@ -0,0 +1,154 @@ +#! /bin/sh +# XFS QA Test No. 087 +# +# * like 086 but want to create more/different kinds of metadata +# and so will use fsstress +# * also can interrupt metadata with godown +# +#----------------------------------------------------------------------- +# Copyright (c) 2000-2004 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=tes@melbourne.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 +. ./common.log + +_do_meta() +{ + out=$SCRATCH_MNT/fsstress + count=10000 + param="-p 4 -z -f rmdir=10 -f link=10 -f creat=10 -f mkdir=10 \ + -f rename=30 -f stat=30 -f unlink=30 -f truncate=20" + _echofull "calling fsstress $param -m8 -n $count" + if ! time $here/ltp/fsstress $param $FSSTRESS_AVOID -m 8 -n $count -d $out >>$seq.full 2>&1 + then + _echofull "fsstress failed" + fi +} + +# real QA test starts here +rm -f $seq.full $tmp.* +_require_scratch + +echo "*** init FS" +umount $SCRATCH_DEV >/dev/null 2>&1 + +cat >$tmp.seq.params <>$seq.full 2>&1; then + _echofull "mount failed: $MOUNT_OPTIONS" + continue + fi + + # create the metadata + _do_meta + + # check before on what FS should look like + _echofull "ls -RF $SCRATCH_MNT" + ls -RF $SCRATCH_MNT >$tmp.ls1 + + _echofull "godown" + src/godown -v -f $SCRATCH_MNT >> $seq.full + + _echofull "unmount" + umount $SCRATCH_DEV >>$seq.full 2>&1 \ + || _fail "umount failed" + + _echofull "logprint after going down..." + _print_logstate + + _full "logprint headers" + _scratch_xfs_logprint -n >>$seq.full 2>&1 + + _echofull "mount with replay" + _scratch_mount >>$seq.full 2>&1 \ + || _fail "mount failed: $MOUNT_OPTIONS" + + # check on what FS looks like after log recovery + _echofull "ls -RF $SCRATCH_MNT" + ls -RF $SCRATCH_MNT >$tmp.ls2 + + _echofull "diff ls before and after" + diff -us $tmp.ls1 $tmp.ls2 | sed "s#$tmp#TMP#g" + + _echofull "unmount" + umount $SCRATCH_MNT + + _echofull "logprint after mount and replay..." + _print_logstate + + if _check_scratch_fs; then + _echofull "filesystem is checked ok" + else + _echofull "filesystem is NOT ok" + fi +done + +status=0 +exit diff --git a/087.out b/087.out new file mode 100644 index 000000000..f2a280180 --- /dev/null +++ b/087.out @@ -0,0 +1,174 @@ +QA output created by 087 +*** init FS +--- mkfs=-lversion=2, mnt=-ologbsize=32k --- + +*** mkfs *** + + +*** mount *** + + +*** calling fsstress -p 4 -z -f rmdir=10 -f link=10 -f creat=10 -f mkdir=10 -f rename=30 -f stat=30 -f unlink=30 -f truncate=20 -m8 -n 10000 *** + + +*** ls -RF /mnt/scratch *** + + +*** godown *** + + +*** unmount *** + + +*** logprint after going down... *** + +dirty log + +*** mount with replay *** + + +*** ls -RF /mnt/scratch *** + + +*** diff ls before and after *** + +Files TMP.ls1 and TMP.ls2 are identical + +*** unmount *** + + +*** logprint after mount and replay... *** + +clean log + +*** filesystem is checked ok *** + +--- mkfs=-lversion=2,su=4096, mnt=-ologbsize=32k --- + +*** mkfs *** + + +*** mount *** + + +*** calling fsstress -p 4 -z -f rmdir=10 -f link=10 -f creat=10 -f mkdir=10 -f rename=30 -f stat=30 -f unlink=30 -f truncate=20 -m8 -n 10000 *** + + +*** ls -RF /mnt/scratch *** + + +*** godown *** + + +*** unmount *** + + +*** logprint after going down... *** + +dirty log + +*** mount with replay *** + + +*** ls -RF /mnt/scratch *** + + +*** diff ls before and after *** + +Files TMP.ls1 and TMP.ls2 are identical + +*** unmount *** + + +*** logprint after mount and replay... *** + +clean log + +*** filesystem is checked ok *** + +--- mkfs=-lversion=2,su=32768, mnt=-ologbsize=32k --- + +*** mkfs *** + + +*** mount *** + + +*** calling fsstress -p 4 -z -f rmdir=10 -f link=10 -f creat=10 -f mkdir=10 -f rename=30 -f stat=30 -f unlink=30 -f truncate=20 -m8 -n 10000 *** + + +*** ls -RF /mnt/scratch *** + + +*** godown *** + + +*** unmount *** + + +*** logprint after going down... *** + +dirty log + +*** mount with replay *** + + +*** ls -RF /mnt/scratch *** + + +*** diff ls before and after *** + +Files TMP.ls1 and TMP.ls2 are identical + +*** unmount *** + + +*** logprint after mount and replay... *** + +clean log + +*** filesystem is checked ok *** + +--- mkfs=-lversion=2, mnt=-ologbsize=64k --- + +*** mkfs *** + + +*** mount *** + + +*** calling fsstress -p 4 -z -f rmdir=10 -f link=10 -f creat=10 -f mkdir=10 -f rename=30 -f stat=30 -f unlink=30 -f truncate=20 -m8 -n 10000 *** + + +*** ls -RF /mnt/scratch *** + + +*** godown *** + + +*** unmount *** + + +*** logprint after going down... *** + +dirty log + +*** mount with replay *** + + +*** ls -RF /mnt/scratch *** + + +*** diff ls before and after *** + +Files TMP.ls1 and TMP.ls2 are identical + +*** unmount *** + + +*** logprint after mount and replay... *** + +clean log + +*** filesystem is checked ok *** + diff --git a/group b/group index 5580daba8..8fa6386a1 100644 --- a/group +++ b/group @@ -150,3 +150,4 @@ ioctl nathans@sgi.com 084 ioctl rw auto 085 log auto 086 log auto +087 log -- 2.51.0