Re: [PATCH 5/8] btrfs: convert some tests to new setup preamble

[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]



On Wed, Jun 27, 2018 at 06:21:00PM +1000, Dave Chinner wrote:
> From: Dave Chinner <dchinner@xxxxxxxxxx>
> 
> Small initial batch to demonstrate conversion.
> 
> Signed-off-by: Dave Chinner <dchinner@xxxxxxxxxx>
> ---
>  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@xxxxxxxxxxxxx
> +. 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@xxxxxxxxxxxxxxx
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
--
To unsubscribe from this list: send the line "unsubscribe fstests" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux Filesystems Development]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux