xfs/087: test f2fs selectively
PATCH v3 1/2 xfs/087: test f2fs selectively
This patch add the f2fs support for xfs/087 with goingdown.
--- common/rc | 10 + tests/xfs/087 | 53 +++-- tests/xfs/087.out | 389 --------------------------------- tests/xfs/087.out.f2fs | 583 +++++++++++++++++++++++++++++++++++++++++++++++++ tests/xfs/087.out.xfs | 389 +++++++++++++++++++++++++++++++++ 5 files changed, 1019 insertions(+), 405 deletions(-) delete mode 100644 tests/xfs/087.out create mode 100644 tests/xfs/087.out.f2fs create mode 100644 tests/xfs/087.out.xfs
common/rc +10 -0
@@ -2091,6 +2091,16 @@ _link_out_file() fi } +_link_out_file_fs() +{ + if [ -z "$1" -o -z "$2" ]; then + echo Error must pass src and dst. + exit + fi + rm -f $2 + ln -s $1.$FSTYP $2 +} + _die() { echo $@
tests/xfs/087 +37 -16
95 lines not on this page · raw message
tests/xfs/087.out deleted +0 -389
389 lines not on this page · raw message
tests/xfs/087.out.f2fs new file +583 -0
583 lines not on this page · raw message
tests/xfs/087.out.xfs new file +389 -0
389 lines not on this page · raw message
Signature · 1 line
2.1.1
PATCH v3 2/2 xfs/087: move to shared/087
This patch moves xfs/087 to shared/.
--- tests/shared/087 | 174 ++++++++++++++ tests/shared/087.out.f2fs | 583 ++++++++++++++++++++++++++++++++++++++++++++++ tests/shared/087.out.xfs | 389 +++++++++++++++++++++++++++++++ tests/shared/group | 1 + tests/xfs/087 | 174 -------------- tests/xfs/087.out.f2fs | 583 ---------------------------------------------- tests/xfs/087.out.xfs | 389 ------------------------------- tests/xfs/group | 1 - 8 files changed, 1147 insertions(+), 1147 deletions(-) create mode 100755 tests/shared/087 create mode 100644 tests/shared/087.out.f2fs create mode 100644 tests/shared/087.out.xfs delete mode 100755 tests/xfs/087 delete mode 100644 tests/xfs/087.out.f2fs delete mode 100644 tests/xfs/087.out.xfs
tests/shared/087 new file +174 -0
@@ -0,0 +1,174 @@ +#! /bin/bash +# FS 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 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. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write the Free Software Foundation, +# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +# +#----------------------------------------------------------------------- +# + +seqfull=$0 +seq=`basename $0` +seqres=$RESULT_DIR/$seq +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 +. ./common/quota + +_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" + FSSTRESS_ARGS=`_scale_fsstress_args $param $FSSTRESS_AVOID -m 8 -n $count -d $out` + if ! $FSSTRESS_PROG $FSSTRESS_ARGS >>$seqres.full 2>&1 + then + _echofull "fsstress failed" + fi +} + +# real QA test starts here +_supported_fs xfs f2fs +_supported_os IRIX Linux + +rm -f $seqres.full $tmp.* +_require_scratch + +if [ "$FSTYP" == "xfs" ]; then + _require_v2log + _require_xfs_quota +fi + +echo "*** init FS" +umount $SCRATCH_DEV >/dev/null 2>&1 + +cat >$tmp.seq.params.xfs <<EOF +# mkfs-opt mount-opt +# ------------------------------ + version=2 uquota,logbsize=32k + version=2,su=4096 uquota,logbsize=32k + version=2,su=32768 uquota,logbsize=32k + version=2 uquota,logbsize=64k + version=2,su=64k uquota,logbsize=64k + version=2 uquota,logbsize=128k + version=2,su=128k uquota,logbsize=128k + version=2 uquota,logbsize=256k + version=2,su=256k uquota,logbsize=256k +EOF + +cat >$tmp.seq.params.f2fs <<EOF +# mkfs-opt mount-opt +# --------------------------- + test1 active_logs=6,background_gc=off + test2 active_logs=6,background_gc=off,inline_data + test3 active_logs=6,background_gc=off,inline_dentry + test4 active_logs=6,background_gc=off,inline_dentry,inline_data + test5 active_logs=6,background_gc=off,disable_roll_forward + test6 active_logs=4,background_gc=off + test7 active_logs=2,background_gc=off +EOF + +cat $tmp.seq.params.$FSTYP > $tmp.seq.params + +# link correct .out file +_link_out_file_fs $seq.out $seqfull.out + +cat $tmp.seq.params \ +| while read mkfs mnt restofline +do + if [ "$mkfs" = "#" ]; then + continue + fi + + echo "--- mkfs=$mkfs, mnt=$mnt ---" + export MKFS_OPTIONS="-l $mkfs" + export MOUNT_OPTIONS="-o $mnt" + + # mkfs the FS + _echofull "mkfs" + _scratch_mkfs >>$seqres.full 2>&1 + if [ $? -ne 0 ] ; then + _echofull "mkfs failed: $MKFS_OPTIONS" + continue + fi + + # mount the FS + _echofull "mount" + if ! _scratch_mount >>$seqres.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 >> $seqres.full + + _echofull "unmount" + umount $SCRATCH_DEV >>$seqres.full 2>&1 \ + || _fail "umount failed" + + _echofull "logprint after going down..." + _print_logstate + + _full "logprint headers" + _scratch_xfs_logprint -n >>$seqres.full 2>&1 + + _echofull "mount with replay" + _scratch_mount >>$seqres.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
tests/shared/087.out.f2fs new file +583 -0
583 lines not on this page · raw message
tests/shared/087.out.xfs new file +389 -0
389 lines not on this page · raw message
tests/shared/group +1 -0
@@ -6,6 +6,7 @@ 006 auto enospc 032 mkfs auto quick 051 acl udf auto quick +087 log v2log auto quota stress 272 auto enospc rw 289 auto quick 298 auto trim
tests/xfs/087 deleted +0 -174
174 lines not on this page · raw message
tests/xfs/087.out.f2fs deleted +0 -583
583 lines not on this page · raw message
tests/xfs/087.out.xfs deleted +0 -389
389 lines not on this page · raw message
tests/xfs/group +0 -1
@@ -76,7 +76,6 @@ 084 ioctl rw auto 085 log auto quick 086 log v2log auto -087 log v2log auto quota stress 090 rw auto 092 other auto quick 094 metadata dir ioctl auto
Signature · 1 line
2.1.1
Quoted 2 lines · Jaegeuk Kim
This patch add the f2fs support for xfs/087 with goingdown.
xfs/087 is not really a test that should be made generic/shared; it's testing a bunch of different XFS specific mount options and log recovery behaviour which has no relevance to any other filesystem.
If you want to take xfs specific tests that are only XFS specific because of the shutdowns they use, look at these ones:
xfs/053 (data exposure)
xfs/137 (data vs filesize)
xfs/138 (data vs filesize vs truncate)
xfs/139 (data vs filesize vs partial truncate)
xfs/140 (data vs filesize vs extending truncate)
xfs/179 (data vs filesize w/ fsync)
xfs/180 (data vs filesize w/ sync)
xfs/182 (data vs filesize w/ recovery)
xfs/200 (recovery vs ro-block device)
xfs/306 (fsstress vs recovery)
These can all be made generic with very little effort - "_require_shutdown" is probably all that is necessary for most of them....
Also, we really are trying not to add more "shared" tests - with the correct "_requires_foo" rules we can just place those tests in generic/ and filesystems that don't support "foo" will avoid it.
Cheers,
Dave.
Signature · 2 lines
Dave Chinner [email protected]
Quoted 7 lines · Dave Chinner
Quoted 2 lines · Jaegeuk Kim
This patch add the f2fs support for xfs/087 with goingdown.
xfs/087 is not really a test that should be made generic/shared; it's testing a bunch of different XFS specific mount options and log recovery behaviour which has no relevance to any other filesystem.
When I took a closer look at clean and dirty logs in xfs, I thought that they are very similar to the f2fs's logs.
If it is correct that the dirty log in xfs means that there are something to replay metadata operations, I think f2fs can also detect them in a same manner.
So, actually I've already been testing xfs/086 and xfs/087 on f2fs having clean and dirty log statement (which is retrieved by f2fs-tools).
Additionally, I've found that f2fs can be added into:
xfs/051
xfs/085
Anyway, if you think these are still not proper testcases, let me know.
Quoted 15 lines
If you want to take xfs specific tests that are only XFS specific because of the shutdowns they use, look at these ones:
xfs/053 (data exposure)
xfs/137 (data vs filesize)
xfs/138 (data vs filesize vs truncate)
xfs/139 (data vs filesize vs partial truncate)
xfs/140 (data vs filesize vs extending truncate)
xfs/179 (data vs filesize w/ fsync)
xfs/180 (data vs filesize w/ sync)
xfs/182 (data vs filesize w/ recovery)
xfs/200 (recovery vs ro-block device)
xfs/306 (fsstress vs recovery)
Quoted 7 lines
These can all be made generic with very little effort - "
_require_shutdown" is probably all that is necessary for most of them....Also, we really are trying not to add more "shared" tests - with the correct "
_requires_foo" rules we can just place those tests in generic/ and filesystems that don't support "foo" will avoid it.
Thank you for the list. :)
I'll check and try to follow the rule for _requires_foo.
Thanks,
Quoted 7 lines
Cheers,
Dave.
Signature · 2 lines
Dave Chinner [email protected]