From: Eryu Guan <guaneryu@gmail.com>
To: Dave Chinner <david@fromorbit.com>
Cc: fstests@vger.kernel.org
Subject: Re: [PATCH 5/8] btrfs: convert some tests to new setup preamble
Date: Sat, 7 Jul 2018 19:22:13 +0800 [thread overview]
Message-ID: <20180707112213.GF2780@desktop> (raw)
In-Reply-To: <20180627082103.9662-6-david@fromorbit.com>
On Wed, Jun 27, 2018 at 06:21:00PM +1000, Dave Chinner wrote:
> From: Dave Chinner <dchinner@redhat.com>
>
> Small initial batch to demonstrate conversion.
>
> Signed-off-by: Dave Chinner <dchinner@redhat.com>
> ---
> tests/btrfs/001 | 25 ++++++----------------
> tests/btrfs/002 | 28 ++++++++----------------
> tests/btrfs/003 | 41 ++++++++++++++---------------------
> tests/btrfs/004 | 24 ++++++---------------
> tests/btrfs/005 | 51 +++++++++++++++++--------------------------
> tests/btrfs/006 | 30 ++++++--------------------
> tests/btrfs/007 | 57 +++++++++++++++++++------------------------------
> tests/btrfs/008 | 30 +++++++++-----------------
> tests/btrfs/009 | 29 +++++++------------------
> 9 files changed, 105 insertions(+), 210 deletions(-)
>
> diff --git a/tests/btrfs/001 b/tests/btrfs/001
> index b13a2470a0ed..771971135937 100755
> --- a/tests/btrfs/001
> +++ b/tests/btrfs/001
> @@ -6,27 +6,16 @@
> #
> # Test btrfs's subvolume and snapshot support
> #
> -seq=`basename $0`
> -seqres=$RESULT_DIR/$seq
> -echo "QA output created by $seq"
> +. common/setup_test
>
> -here=`pwd`
> -tmp=/tmp/$$
> -status=1 # failure is the default!
> +# test exit cleanup goes here
> +cleanup() { :; }
>
> -_cleanup()
> -{
> - rm -f $tmp.*
> -}
> +# remove previous $seqres.full before test
> +rm -f $seqres.full
>
> -trap "_cleanup ; exit \$status" 0 1 2 3 15
> -
> -# get standard environment, filters and checks
> -. ./common/rc
> -. ./common/filter
> +# include test specific environments here
> . ./common/filter.btrfs
> -
> -# real QA test starts here
> _supported_fs btrfs
> _supported_os Linux
> _require_scratch
> @@ -90,4 +79,4 @@ _scratch_cycle_mount
> echo "List root dir"
> ls $SCRATCH_MNT
>
> -status=0 ; exit
> +_success
> diff --git a/tests/btrfs/002 b/tests/btrfs/002
> index 87e21c02f68c..5d6b106bc090 100755
> --- a/tests/btrfs/002
> +++ b/tests/btrfs/002
> @@ -6,29 +6,21 @@
> #
> # Extented btrfs snapshot test cases
> #
> -seq=`basename $0`
> -seqres=$RESULT_DIR/$seq
> -echo "QA output created by $seq"
> +. common/setup_test
>
> -here=`pwd`
> -tmp=/tmp/$$
> -status=1 # failure is the default!
> +# test exit cleanup goes here
> +cleanup() { :; }
>
> -_cleanup()
> -{
> - rm -f $tmp.*
> -}
> -
> -trap "_cleanup ; exit \$status" 0 1 2 3 15
> -
> -# get standard environment, filters and checks
> -. ./common/rc
> -. ./common/filter
> +# remove previous $seqres.full before test
> +rm -f $seqres.full
>
> +# include test specific environments here
> _supported_fs btrfs
> _supported_os Linux
> _require_scratch
>
> +echo "Silence is golden"
> +
> _scratch_mkfs > /dev/null 2>&1 || _fail "mkfs failed"
> _scratch_mount
>
> @@ -169,6 +161,4 @@ _save_checksum $SNAPNAME $tmp.$tname.sum
> _verify_checksum $SNAPNAME $tmp.$tname.sum
>
> _scratch_unmount || _fail "unmount failed"
> -
> -echo "Silence is golden"
> -status=0; exit
> +_success
> diff --git a/tests/btrfs/003 b/tests/btrfs/003
> index 22aa57aad0b9..dac7ed919711 100755
> --- a/tests/btrfs/003
> +++ b/tests/btrfs/003
> @@ -6,31 +6,20 @@
> #
> # btrfs vol tests
> #
> -seq=`basename $0`
> -seqres=$RESULT_DIR/$seq
> -echo "QA output created by $seq"
> -
> -here=`pwd`
> -tmp=/tmp/$$
> -status=1 # failure is the default!
> -dev_removed=0
> -removed_dev_htl=""
> -trap "_cleanup; exit \$status" 0 1 2 3 15
> -
> -_cleanup()
> -{
> - cd /
> - rm -f $tmp.*
> - if [ $dev_removed == 1 ]; then
> - _scratch_unmount
> - _devmgt_add "${removed_dev_htl}"
> - fi
> +. common/setup_test
> +
> +# test exit cleanup goes here
> +cleanup() {
> + if [ $dev_removed == 1 ]; then
> + _scratch_unmount
> + _devmgt_add "${removed_dev_htl}"
> + fi
> }
>
> -# get standard environment, filters and checks
> -. ./common/rc
> -. ./common/filter
> +# remove previous $seqres.full before test
> +rm -f $seqres.full
>
> +# include test specific environments here
> _supported_fs btrfs
> _supported_os Linux
> _require_scratch
> @@ -38,7 +27,10 @@ _require_scratch_dev_pool 4
> _require_deletable_scratch_dev_pool
> _require_command "$WIPEFS_PROG" wipefs
>
> -rm -f $seqres.full
> +echo "Silence is golden"
> +
> +dev_removed=0
> +removed_dev_htl=""
>
> # Test cases related to raid in btrfs
> _test_raid0()
> @@ -172,5 +164,4 @@ _test_add
> _test_replace
> _test_remove
>
> -echo "Silence is golden"
> -status=0; exit
> +_success
> diff --git a/tests/btrfs/004 b/tests/btrfs/004
> index 3f61a8f46140..99dd1f768d81 100755
> --- a/tests/btrfs/004
> +++ b/tests/btrfs/004
> @@ -9,28 +9,18 @@
> # run filefrag to get the extent mapping and follow the backrefs.
> # We check to end up back at the original file with the correct offset.
> #
> -seq=`basename $0`
> -seqres=$RESULT_DIR/$seq
> -echo "QA output created by $seq"
> +. common/setup_test
>
> -here=`pwd`
> -tmp=/tmp/$$
> -status=1
> -noise_pid=0
> -
> -_cleanup()
> -{
> +# test exit cleanup goes here
> +cleanup() {
> rm $tmp.running
> wait
> - rm -f $tmp.*
> }
> -trap "_cleanup; exit \$status" 0 1 2 3 15
>
> -# get standard environment, filters and checks
> -. ./common/rc
> -. ./common/filter
> +# remove previous $seqres.full before test
> +rm -f $seqres.full
>
> -# real QA test starts here
> +# include test specific environments here
> _supported_fs btrfs
> _supported_os Linux
> _require_scratch
> @@ -39,7 +29,7 @@ _require_btrfs_command inspect-internal logical-resolve
> _require_btrfs_command inspect-internal inode-resolve
> _require_command "$FILEFRAG_PROG" filefrag
>
> -rm -f $seqres.full
> +noise_pid=0
>
> FILEFRAG_FILTER='
> if (/blocks? of (\d+) bytes/) {
> diff --git a/tests/btrfs/005 b/tests/btrfs/005
> index 15af46783298..4cebb57fbaba 100755
> --- a/tests/btrfs/005
> +++ b/tests/btrfs/005
> @@ -6,22 +6,26 @@
> #
> # Btrfs Online defragmentation tests
> #
> -seq=`basename $0`
> -seqres=$RESULT_DIR/$seq
> -echo "QA output created by $seq"
> -here="`pwd`"
> -tmp=/tmp/$$
> -cnt=119
> -filesize=48000
> +. common/setup_test
>
> -status=1 # failure is the default!
> -trap "_cleanup; exit \$status" 0 1 2 3 15
> +# test exit cleanup goes here
> +cleanup() { :; }
>
> -_cleanup()
> -{
> - cd /
> - rm -f $tmp.*
> -}
> +# remove previous $seqres.full before test
> +rm -f $seqres.full
> +
> +# include test specific environments here
> +. ./common/defrag
> +_supported_fs btrfs
> +_supported_os Linux
> +_require_scratch
> +
> +_scratch_mkfs >/dev/null 2>&1
> +_scratch_mount
> +_require_defrag
> +
> +cnt=119
> +filesize=48000
>
> _create_file()
> {
> @@ -111,22 +115,6 @@ _rundefrag()
> _check_scratch_fs
> }
>
> -# get standard environment, filters and checks
> -. ./common/rc
> -. ./common/filter
> -. ./common/defrag
> -
> -# real QA test starts here
> -_supported_fs btrfs
> -_supported_os Linux
> -_require_scratch
> -
> -rm -f $seqres.full
> -
> -_scratch_mkfs >/dev/null 2>&1
> -_scratch_mount
> -_require_defrag
> -
> echo "defrag object | defragment range | defragment compress"
> echo "a single file | default | off"
> _rundefrag 1 1 1
> @@ -155,5 +143,4 @@ _rundefrag 2 1 1
> echo "a filesystem | default | off"
> _rundefrag 3 1 1
>
> -status=0
> -exit
> +_success
> diff --git a/tests/btrfs/006 b/tests/btrfs/006
> index 3edbb25a72a8..8eed1a2a1221 100755
> --- a/tests/btrfs/006
> +++ b/tests/btrfs/006
> @@ -7,35 +7,21 @@
> # run basic btrfs information commands in various ways
> # sanity tests: filesystem show, label, sync, and device stats
> #
> -seq=`basename $0`
> -seqres=$RESULT_DIR/$seq
> -echo "== QA output created by $seq"
This test uses a customized .out file header (the leading "== "), the
.out file should be updated too when converting to the new setup
preamble.
> +. common/setup_test
>
> -here=`pwd`
> -tmp=/tmp/$$
> -status=1 # failure is the default!
> -trap "_cleanup; exit \$status" 0 1 2 3 15
> +# test exit cleanup goes here
> +cleanup() { :; }
>
> -_cleanup()
> -{
> - cd /
> - rm -f $tmp.*
> -}
> +# remove previous $seqres.full before test
> +rm -f $seqres.full
>
> -# get standard environment, filters and checks
> -. ./common/rc
> +# include test specific environments here
> . ./common/filter.btrfs
> -
> -# real QA test starts here
> -
> -# Modify as appropriate.
> _supported_fs btrfs
> _supported_os Linux
> _require_scratch
> _require_scratch_dev_pool
>
> -rm -f $seqres.full
> -
> FIRST_POOL_DEV=`echo $SCRATCH_DEV_POOL | awk '{print $1}'`
> LAST_POOL_DEV=`echo $SCRATCH_DEV_POOL | awk '{print $NF}'`
> TOTAL_DEVS=`echo $SCRATCH_DEV_POOL | wc -w`
> @@ -83,6 +69,4 @@ $BTRFS_UTIL_PROG device stats $LAST_POOL_DEV | \
> sed -e "s,$LAST_POOL_DEV,LAST_POOL_DEV,g" | \
> _filter_spaces
>
> -# success, all done
> -status=0
> -exit
> +_success
> diff --git a/tests/btrfs/007 b/tests/btrfs/007
> index 09f2f011bc77..50ead03acf31 100755
> --- a/tests/btrfs/007
> +++ b/tests/btrfs/007
> @@ -9,37 +9,23 @@
> # (incr) and send both snapshots to a temp file. Remake the file
> # system and receive from the files. Check both states with fssum.
> #
> -# creator
> -owner=list.btrfs@jan-o-sch.net
> +. common/setup_test
>
> -seq=`basename $0`
> -seqres=$RESULT_DIR/$seq
> -echo "QA output created by $seq"
> +# test exit cleanup goes here
> +cleanup() { :; }
>
> -tmp=`mktemp -d`
> -status=1
> -
> -_cleanup()
> -{
> - echo "*** unmount"
Originally _cleanup was called on exit, so this "umount" message was the
last message printed, but...
> - _scratch_unmount 2>/dev/null
> - rm -f $tmp.*
> -}
> -trap "_cleanup; exit \$status" 0 1 2 3 15
> -
> -# get standard environment, filters and checks
> -. ./common/rc
> -. ./common/filter
> +# remove previous $seqres.full before test
> +rm -f $seqres.full
>
> -# real QA test starts here
> +# include test specific environments here
> +_supported_fs generic
> +_supported_os Linux
> _supported_fs btrfs
> _supported_os Linux
> _require_scratch
> _require_fssum
> _require_seek_data_hole
>
> -rm -f $seqres.full
> -
> workout()
> {
> fsz=$1
> @@ -57,18 +43,18 @@ workout()
>
> _run_btrfs_util_prog subvolume snapshot -r $SCRATCH_MNT $SCRATCH_MNT/incr
>
> - echo "# $BTRFS_UTIL_PROG send $SCRATCH_MNT/base > $tmp/base.snap" \
> + echo "# $BTRFS_UTIL_PROG send $SCRATCH_MNT/base > $tmp.base.snap" \
> >> $seqres.full
> - $BTRFS_UTIL_PROG send $SCRATCH_MNT/base > $tmp/base.snap 2>> $seqres.full \
> + $BTRFS_UTIL_PROG send $SCRATCH_MNT/base > $tmp.base.snap 2>> $seqres.full \
> || _fail "failed: '$@'"
> echo "# $BTRFS_UTIL_PROG send -p $SCRATCH_MNT/base\
> - $SCRATCH_MNT/incr > $tmp/incr.snap" >> $seqres.full
> + $SCRATCH_MNT/incr > $tmp.incr.snap" >> $seqres.full
> $BTRFS_UTIL_PROG send -p $SCRATCH_MNT/base \
> - $SCRATCH_MNT/incr > $tmp/incr.snap 2>> $seqres.full \
> + $SCRATCH_MNT/incr > $tmp.incr.snap 2>> $seqres.full \
> || _fail "failed: '$@'"
>
> - run_check $FSSUM_PROG -A -f -w $tmp/base.fssum $SCRATCH_MNT/base
> - run_check $FSSUM_PROG -A -f -w $tmp/incr.fssum -x $SCRATCH_MNT/incr/base \
> + run_check $FSSUM_PROG -A -f -w $tmp.base.fssum $SCRATCH_MNT/base
> + run_check $FSSUM_PROG -A -f -w $tmp.incr.fssum -x $SCRATCH_MNT/incr/base \
> $SCRATCH_MNT/incr
>
> _scratch_unmount >/dev/null 2>&1
> @@ -78,11 +64,11 @@ workout()
> || _fail "size=$fsz mkfs failed"
> _scratch_mount "-o noatime"
>
> - _run_btrfs_util_prog receive $SCRATCH_MNT < $tmp/base.snap
> - run_check $FSSUM_PROG -r $tmp/base.fssum $SCRATCH_MNT/base
> + _run_btrfs_util_prog receive $SCRATCH_MNT < $tmp.base.snap
> + run_check $FSSUM_PROG -r $tmp.base.fssum $SCRATCH_MNT/base
>
> - _run_btrfs_util_prog receive $SCRATCH_MNT < $tmp/incr.snap
> - run_check $FSSUM_PROG -r $tmp/incr.fssum $SCRATCH_MNT/incr
> + _run_btrfs_util_prog receive $SCRATCH_MNT < $tmp.incr.snap
> + run_check $FSSUM_PROG -r $tmp.incr.fssum $SCRATCH_MNT/incr
> }
>
> echo "*** test send / receive"
> @@ -91,7 +77,8 @@ fssize=`expr 2000 \* 1024 \* 1024`
> ops=200
>
> workout $fssize $ops
> -
> +echo "*** unmount"
> +_scratch_unmount 2>/dev/null
> echo "*** done"
.. now "umount" is printed before "done". The order in btrfs/007.out
should be updated too.
Thanks,
Eryu
> -status=0
> -exit
> +
> +_success
> diff --git a/tests/btrfs/008 b/tests/btrfs/008
> index e7609de47580..288f6b97fdc0 100755
> --- a/tests/btrfs/008
> +++ b/tests/btrfs/008
> @@ -6,37 +6,27 @@
> #
> # btrfs send ENOENT regression test, from a user report on linux-btrfs
> #
> -seq=`basename $0`
> -seqres=$RESULT_DIR/$seq
> -echo "QA output created by $seq"
> +. common/setup_test
>
> -here=`pwd`
> -tmp=/tmp/$$
> -tmp_dir=send_temp_$seq
> -
> -status=1 # failure is the default!
> -
> -_cleanup()
> -{
> +# test exit cleanup goes here
> +cleanup() {
> $BTRFS_UTIL_PROG subvolume delete $TEST_DIR/$tmp_dir/send/snapshots/backup2 > /dev/null 2>&1
> $BTRFS_UTIL_PROG subvolume delete $TEST_DIR/$tmp_dir/send/snapshots/backup3 > /dev/null 2>&1
> $BTRFS_UTIL_PROG subvolume delete $TEST_DIR/$tmp_dir/send > /dev/null 2>&1
> rm -rf $TEST_DIR/$tmp_dir
> - rm -f $tmp.*
> }
>
> -trap "_cleanup ; exit \$status" 0 1 2 3 15
> -
> -# get standard environment, filters and checks
> -. ./common/rc
> -. ./common/filter
> +# remove previous $seqres.full before test
> +rm -f $seqres.full
>
> -# real QA test starts here
> +# include test specific environments here
> _supported_fs btrfs
> _supported_os Linux
> _require_test
> _require_scratch
>
> +echo "Silence is golden"
> +
> _scratch_mkfs > /dev/null 2>&1
>
> #receive needs to be able to setxattrs, including the selinux context, if we use
> @@ -46,6 +36,7 @@ export SELINUX_MOUNT_OPTIONS=""
>
> _scratch_mount
>
> +tmp_dir=send_temp_$seq
> mkdir $TEST_DIR/$tmp_dir
> $BTRFS_UTIL_PROG subvolume create $TEST_DIR/$tmp_dir/send \
> > $seqres.full 2>&1 || _fail "failed subvol create"
> @@ -66,5 +57,4 @@ $BTRFS_UTIL_PROG send -f $TEST_DIR/$tmp_dir/blah $work_dir/snapshots/backup3 \
> $BTRFS_UTIL_PROG receive -vvvv -f $TEST_DIR/$tmp_dir/blah $SCRATCH_MNT \
> >> $seqres.full 2>&1 || _fail "receive failed"
>
> -echo "Silence is golden"
> -status=0 ; exit
> +_success
> diff --git a/tests/btrfs/009 b/tests/btrfs/009
> index 8b6e864f3ea8..3c11ba94921f 100755
> --- a/tests/btrfs/009
> +++ b/tests/btrfs/009
> @@ -6,32 +6,20 @@
> #
> # Regression test to make sure we can't delete the default subvol
> #
> -seq=`basename $0`
> -seqres=$RESULT_DIR/$seq
> -echo "QA output created by $seq"
> +. common/setup_test
>
> -here=`pwd`
> -tmp=/tmp/$$
> +# test exit cleanup goes here
> +cleanup() { :; }
>
> -status=1 # failure is the default!
> -
> -_cleanup()
> -{
> - rm -f $tmp.*
> -}
> -
> -trap "_cleanup ; exit \$status" 0 1 2 3 15
> -
> -# get standard environment, filters and checks
> -. ./common/rc
> -. ./common/filter
> +# remove previous $seqres.full before test
> +rm -f $seqres.full
>
> -# real QA test starts here
> +# include test specific environments here
> _supported_fs btrfs
> _supported_os Linux
> _require_scratch
>
> -rm -f $seqres.full
> +echo "Silence is golden"
>
> _scratch_mkfs > /dev/null 2>&1
> _scratch_mount
> @@ -45,5 +33,4 @@ $BTRFS_UTIL_PROG subvolume delete $SCRATCH_MNT/newvol >> $seqres.full 2>&1
> _scratch_unmount
> _try_scratch_mount || _fail "mount should have succeeded"
>
> -echo "Silence is golden"
> -status=0 ; exit
> +_success
> --
> 2.17.0
>
> --
> To unsubscribe from this list: send the line "unsubscribe fstests" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
next prev parent reply other threads:[~2018-07-07 11:22 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-06-27 8:20 [PATCH 0/6] fstests: start factoring test setup boilerplate Dave Chinner
2018-06-27 8:20 ` [PATCH 1/8] fstests: generic test setup preamble Dave Chinner
2018-06-27 11:07 ` Amir Goldstein
2018-06-27 8:20 ` [PATCH 2/8] tests: convert various test dirs to " Dave Chinner
2018-06-27 10:34 ` Amir Goldstein
2018-06-27 14:03 ` Dave Chinner
2018-06-27 8:20 ` [PATCH 3/8] shared: use new test " Dave Chinner
2018-06-27 10:56 ` Amir Goldstein
2018-06-27 14:27 ` Dave Chinner
2018-06-27 14:43 ` Amir Goldstein
2018-06-27 22:07 ` Dave Chinner
2018-06-28 4:12 ` Amir Goldstein
2018-06-27 8:20 ` [PATCH 4/8] generic: convert some tests to new " Dave Chinner
2018-06-27 11:08 ` Amir Goldstein
2018-07-07 11:28 ` Eryu Guan
2018-06-27 8:21 ` [PATCH 5/8] btrfs: " Dave Chinner
2018-06-27 11:30 ` Amir Goldstein
2018-06-27 14:34 ` Dave Chinner
2018-06-27 14:48 ` Amir Goldstein
2018-07-07 11:22 ` Eryu Guan [this message]
2018-06-27 8:21 ` [PATCH 6/8] ext4: " Dave Chinner
2018-06-27 11:34 ` Amir Goldstein
2018-07-07 11:25 ` Eryu Guan
2018-06-27 8:21 ` [PATCH 7/8] overlay: " Dave Chinner
2018-06-27 11:37 ` Amir Goldstein
2018-06-27 8:21 ` [PATCH 8/8] xfs: " Dave Chinner
2018-06-27 11:42 ` Amir Goldstein
2018-06-28 5:59 ` [PATCH 0/6] fstests: start factoring test setup boilerplate Eryu Guan
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20180707112213.GF2780@desktop \
--to=guaneryu@gmail.com \
--cc=david@fromorbit.com \
--cc=fstests@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.