diff mbox series

[05/13] fstests: move test group info to test files

Message ID 162317278957.653489.1221763643277904130.stgit@locust (mailing list archive)
State New, archived
Headers show
Series fstests: move test group lists into test files | expand

Commit Message

Darrick J. Wong June 8, 2021, 5:19 p.m. UTC
From: Darrick J. Wong <djwong@kernel.org>

Refactor every test in the entire test suite to use the new boilerplate
functions.  This also migrates all the test group information into the
test files.  This patch has been autogenerated via the command:

./tools/convert-group btrfs ceph cifs ext4 f2fs generic nfs ocfs2 overlay perf shared udf xfs

NOTE: This patch submission only contains diffs of the first seven btrfs
tests because vger rejects 1.5MB patches.  The full conversion is in the
git branch linked from the cover letter.

Signed-off-by: Darrick J. Wong <djwong@kernel.org>
---
 tests/btrfs/001 |   15 ++++-----------
 tests/btrfs/002 |   15 ++++-----------
 tests/btrfs/003 |   15 ++++-----------
 tests/btrfs/004 |   15 ++++-----------
 tests/btrfs/005 |   16 ++++------------
 tests/btrfs/006 |   16 ++++------------
 6 files changed, 24 insertions(+), 68 deletions(-)

Comments

Alli June 11, 2021, 9:55 p.m. UTC | #1
On 6/8/21 10:19 AM, Darrick J. Wong wrote:
> From: Darrick J. Wong <djwong@kernel.org>
> 
> Refactor every test in the entire test suite to use the new boilerplate
> functions.  This also migrates all the test group information into the
> test files.  This patch has been autogenerated via the command:
> 
> ./tools/convert-group btrfs ceph cifs ext4 f2fs generic nfs ocfs2 overlay perf shared udf xfs
> 
> NOTE: This patch submission only contains diffs of the first seven btrfs
> tests because vger rejects 1.5MB patches.  The full conversion is in the
> git branch linked from the cover letter.
> 
> Signed-off-by: Darrick J. Wong <djwong@kernel.org>

Ok... I guess I rvb the command?  Since this patch by itself cant really 
be applied.  The tool output look pretty consistent to me though.
Reviewed-by: Allison Henderson <allison.henderson@oracle.com>

> ---
>   tests/btrfs/001 |   15 ++++-----------
>   tests/btrfs/002 |   15 ++++-----------
>   tests/btrfs/003 |   15 ++++-----------
>   tests/btrfs/004 |   15 ++++-----------
>   tests/btrfs/005 |   16 ++++------------
>   tests/btrfs/006 |   16 ++++------------
>   6 files changed, 24 insertions(+), 68 deletions(-)
> 
> 
> diff --git a/tests/btrfs/001 b/tests/btrfs/001
> index fb051e8a..5d5849f0 100755
> --- a/tests/btrfs/001
> +++ b/tests/btrfs/001
> @@ -6,23 +6,16 @@
>   #
>   # Test btrfs's subvolume and snapshot support
>   #
> -seq=`basename $0`
> -seqres=$RESULT_DIR/$seq
> -echo "QA output created by $seq"
> -
> -here=`pwd`
> -tmp=/tmp/$$
> -status=1	# failure is the default!
> +. ./common/preamble
> +_begin_fstest auto quick subvol snapshot
>   
> +# Override the default cleanup function.
>   _cleanup()
>   {
>       rm -f $tmp.*
>   }
>   
> -trap "_cleanup ; exit \$status" 0 1 2 3 15
> -
> -# get standard environment, filters and checks
> -. ./common/rc
> +# Import common functions.
>   . ./common/filter
>   . ./common/filter.btrfs
>   
> diff --git a/tests/btrfs/002 b/tests/btrfs/002
> index 66775562..96332271 100755
> --- a/tests/btrfs/002
> +++ b/tests/btrfs/002
> @@ -6,23 +6,16 @@
>   #
>   # Extented btrfs snapshot test cases
>   #
> -seq=`basename $0`
> -seqres=$RESULT_DIR/$seq
> -echo "QA output created by $seq"
> -
> -here=`pwd`
> -tmp=/tmp/$$
> -status=1	# failure is the default!
> +. ./common/preamble
> +_begin_fstest auto snapshot
>   
> +# Override the default cleanup function.
>   _cleanup()
>   {
>       rm -f $tmp.*
>   }
>   
> -trap "_cleanup ; exit \$status" 0 1 2 3 15
> -
> -# get standard environment, filters and checks
> -. ./common/rc
> +# Import common functions.
>   . ./common/filter
>   
>   _supported_fs btrfs
> diff --git a/tests/btrfs/003 b/tests/btrfs/003
> index fbb313fb..d241ec6e 100755
> --- a/tests/btrfs/003
> +++ b/tests/btrfs/003
> @@ -6,16 +6,11 @@
>   #
>   # btrfs vol tests
>   #
> -seq=`basename $0`
> -seqres=$RESULT_DIR/$seq
> -echo "QA output created by $seq"
> +. ./common/preamble
> +_begin_fstest auto replace volume balance
>   
> -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
>   
>   # Check if all scratch dev pools are deletable
>   deletable_scratch_dev_pool()
> @@ -32,6 +27,7 @@ deletable_scratch_dev_pool()
>   	return 0
>   }
>   
> +# Override the default cleanup function.
>   _cleanup()
>   {
>       cd /
> @@ -42,8 +38,7 @@ _cleanup()
>       fi
>   }
>   
> -# get standard environment, filters and checks
> -. ./common/rc
> +# Import common functions.
>   . ./common/filter
>   
>   _supported_fs btrfs
> @@ -51,8 +46,6 @@ _require_scratch
>   _require_scratch_dev_pool 4
>   _require_command "$WIPEFS_PROG" wipefs
>   
> -rm -f $seqres.full
> -
>   # Test cases related to raid in btrfs
>   _test_raid0()
>   {
> diff --git a/tests/btrfs/004 b/tests/btrfs/004
> index 0458d2b6..4e767a2f 100755
> --- a/tests/btrfs/004
> +++ b/tests/btrfs/004
> @@ -9,25 +9,20 @@
>   # 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/preamble
> +_begin_fstest auto rw metadata
>   
> -here=`pwd`
> -tmp=/tmp/$$
> -status=1
>   noise_pid=0
>   
> +# Override the default cleanup function.
>   _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
> +# Import common functions.
>   . ./common/filter
>   
>   # real QA test starts here
> @@ -38,8 +33,6 @@ _require_btrfs_command inspect-internal logical-resolve
>   _require_btrfs_command inspect-internal inode-resolve
>   _require_command "$FILEFRAG_PROG" filefrag
>   
> -rm -f $seqres.full
> -
>   FILEFRAG_FILTER='
>   	if (/blocks? of (\d+) bytes/) {
>   		$blocksize = $1;
> diff --git a/tests/btrfs/005 b/tests/btrfs/005
> index ff20a638..ac9e8bfa 100755
> --- a/tests/btrfs/005
> +++ b/tests/btrfs/005
> @@ -6,17 +6,12 @@
>   #
>   # Btrfs Online defragmentation tests
>   #
> -seq=`basename $0`
> -seqres=$RESULT_DIR/$seq
> -echo "QA output created by $seq"
> -here="`pwd`"
> -tmp=/tmp/$$
> +. ./common/preamble
> +_begin_fstest auto defrag
>   cnt=119
>   filesize=48000
>   
> -status=1	# failure is the default!
> -trap "_cleanup; exit \$status" 0 1 2 3 15
> -
> +# Override the default cleanup function.
>   _cleanup()
>   {
>       cd /
> @@ -111,8 +106,7 @@ _rundefrag()
>   	_check_scratch_fs
>   }
>   
> -# get standard environment, filters and checks
> -. ./common/rc
> +# Import common functions.
>   . ./common/filter
>   . ./common/defrag
>   
> @@ -120,8 +114,6 @@ _rundefrag()
>   _supported_fs btrfs
>   _require_scratch
>   
> -rm -f $seqres.full
> -
>   _scratch_mkfs >/dev/null 2>&1
>   _scratch_mount
>   _require_defrag
> diff --git a/tests/btrfs/006 b/tests/btrfs/006
> index 67f1fcd8..c0f9541a 100755
> --- a/tests/btrfs/006
> +++ b/tests/btrfs/006
> @@ -7,23 +7,17 @@
>   # 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"
> -
> -here=`pwd`
> -tmp=/tmp/$$
> -status=1	# failure is the default!
> -trap "_cleanup; exit \$status" 0 1 2 3 15
> +. ./common/preamble
> +_begin_fstest auto quick volume
>   
> +# Override the default cleanup function.
>   _cleanup()
>   {
>       cd /
>       rm -f $tmp.*
>   }
>   
> -# get standard environment, filters and checks
> -. ./common/rc
> +# Import common functions.
>   . ./common/filter.btrfs
>   
>   # real QA test starts here
> @@ -33,8 +27,6 @@ _supported_fs btrfs
>   _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`
>
Eric Biggers June 11, 2021, 11:29 p.m. UTC | #2
On Tue, Jun 08, 2021 at 10:19:49AM -0700, Darrick J. Wong wrote:
> From: Darrick J. Wong <djwong@kernel.org>
> 
> Refactor every test in the entire test suite to use the new boilerplate
> functions.  This also migrates all the test group information into the
> test files.  This patch has been autogenerated via the command:
> 
> ./tools/convert-group btrfs ceph cifs ext4 f2fs generic nfs ocfs2 overlay perf shared udf xfs
> 
> NOTE: This patch submission only contains diffs of the first seven btrfs
> tests because vger rejects 1.5MB patches.  The full conversion is in the
> git branch linked from the cover letter.
> 
> Signed-off-by: Darrick J. Wong <djwong@kernel.org>
[...]
> diff --git a/tests/btrfs/006 b/tests/btrfs/006
> index 67f1fcd8..c0f9541a 100755
> --- a/tests/btrfs/006
> +++ b/tests/btrfs/006
> @@ -7,23 +7,17 @@
>  # 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"
> -
> -here=`pwd`
> -tmp=/tmp/$$
> -status=1	# failure is the default!
> -trap "_cleanup; exit \$status" 0 1 2 3 15
> +. ./common/preamble
> +_begin_fstest auto quick volume
>  
> +# Override the default cleanup function.
>  _cleanup()
>  {
>      cd /
>      rm -f $tmp.*
>  }

A lot of the _cleanup() functions (such as the one above) are identical to the
one in common/preamble.  It might make sense to make tools/convert-group
recognize these and remove them.

- Eric
Eric Biggers June 12, 2021, 12:17 a.m. UTC | #3
On Fri, Jun 11, 2021 at 04:29:30PM -0700, Eric Biggers wrote:
> On Tue, Jun 08, 2021 at 10:19:49AM -0700, Darrick J. Wong wrote:
> > From: Darrick J. Wong <djwong@kernel.org>
> > 
> > Refactor every test in the entire test suite to use the new boilerplate
> > functions.  This also migrates all the test group information into the
> > test files.  This patch has been autogenerated via the command:
> > 
> > ./tools/convert-group btrfs ceph cifs ext4 f2fs generic nfs ocfs2 overlay perf shared udf xfs
> > 
> > NOTE: This patch submission only contains diffs of the first seven btrfs
> > tests because vger rejects 1.5MB patches.  The full conversion is in the
> > git branch linked from the cover letter.
> > 
> > Signed-off-by: Darrick J. Wong <djwong@kernel.org>
> [...]
> > diff --git a/tests/btrfs/006 b/tests/btrfs/006
> > index 67f1fcd8..c0f9541a 100755
> > --- a/tests/btrfs/006
> > +++ b/tests/btrfs/006
> > @@ -7,23 +7,17 @@
> >  # 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"
> > -
> > -here=`pwd`
> > -tmp=/tmp/$$
> > -status=1	# failure is the default!
> > -trap "_cleanup; exit \$status" 0 1 2 3 15
> > +. ./common/preamble
> > +_begin_fstest auto quick volume
> >  
> > +# Override the default cleanup function.
> >  _cleanup()
> >  {
> >      cd /
> >      rm -f $tmp.*
> >  }
> 
> A lot of the _cleanup() functions (such as the one above) are identical to the
> one in common/preamble.  It might make sense to make tools/convert-group
> recognize these and remove them.

The following command would remove most of them, including ones that omit the
"cd /" or use "rm -rf" instead of "rm -f":

sed -z -E -i 's/(#[^#\n]*\n)*_cleanup\(\)\n\{\n(\s+cd \/\n)?\s+rm -r?f "?\$tmp"?\.\*\n\}\n\n?//' tests/*/*

I'm not sure how far you want to go, though.

- Eric
Darrick J. Wong June 12, 2021, 12:34 a.m. UTC | #4
On Fri, Jun 11, 2021 at 05:17:00PM -0700, Eric Biggers wrote:
> On Fri, Jun 11, 2021 at 04:29:30PM -0700, Eric Biggers wrote:
> > On Tue, Jun 08, 2021 at 10:19:49AM -0700, Darrick J. Wong wrote:
> > > From: Darrick J. Wong <djwong@kernel.org>
> > > 
> > > Refactor every test in the entire test suite to use the new boilerplate
> > > functions.  This also migrates all the test group information into the
> > > test files.  This patch has been autogenerated via the command:
> > > 
> > > ./tools/convert-group btrfs ceph cifs ext4 f2fs generic nfs ocfs2 overlay perf shared udf xfs
> > > 
> > > NOTE: This patch submission only contains diffs of the first seven btrfs
> > > tests because vger rejects 1.5MB patches.  The full conversion is in the
> > > git branch linked from the cover letter.
> > > 
> > > Signed-off-by: Darrick J. Wong <djwong@kernel.org>
> > [...]
> > > diff --git a/tests/btrfs/006 b/tests/btrfs/006
> > > index 67f1fcd8..c0f9541a 100755
> > > --- a/tests/btrfs/006
> > > +++ b/tests/btrfs/006
> > > @@ -7,23 +7,17 @@
> > >  # 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"
> > > -
> > > -here=`pwd`
> > > -tmp=/tmp/$$
> > > -status=1	# failure is the default!
> > > -trap "_cleanup; exit \$status" 0 1 2 3 15
> > > +. ./common/preamble
> > > +_begin_fstest auto quick volume
> > >  
> > > +# Override the default cleanup function.
> > >  _cleanup()
> > >  {
> > >      cd /
> > >      rm -f $tmp.*
> > >  }
> > 
> > A lot of the _cleanup() functions (such as the one above) are identical to the
> > one in common/preamble.  It might make sense to make tools/convert-group
> > recognize these and remove them.
> 
> The following command would remove most of them, including ones that omit the
> "cd /" or use "rm -rf" instead of "rm -f":
> 
> sed -z -E -i 's/(#[^#\n]*\n)*_cleanup\(\)\n\{\n(\s+cd \/\n)?\s+rm -r?f "?\$tmp"?\.\*\n\}\n\n?//' tests/*/*
> 
> I'm not sure how far you want to go, though.

Ooh nice, I'll incorporate this, thanks!

--D

> 
> - Eric
diff mbox series

Patch

diff --git a/tests/btrfs/001 b/tests/btrfs/001
index fb051e8a..5d5849f0 100755
--- a/tests/btrfs/001
+++ b/tests/btrfs/001
@@ -6,23 +6,16 @@ 
 #
 # Test btrfs's subvolume and snapshot support
 #
-seq=`basename $0`
-seqres=$RESULT_DIR/$seq
-echo "QA output created by $seq"
-
-here=`pwd`
-tmp=/tmp/$$
-status=1	# failure is the default!
+. ./common/preamble
+_begin_fstest auto quick subvol snapshot
 
+# Override the default cleanup function.
 _cleanup()
 {
     rm -f $tmp.*
 }
 
-trap "_cleanup ; exit \$status" 0 1 2 3 15
-
-# get standard environment, filters and checks
-. ./common/rc
+# Import common functions.
 . ./common/filter
 . ./common/filter.btrfs
 
diff --git a/tests/btrfs/002 b/tests/btrfs/002
index 66775562..96332271 100755
--- a/tests/btrfs/002
+++ b/tests/btrfs/002
@@ -6,23 +6,16 @@ 
 #
 # Extented btrfs snapshot test cases
 #
-seq=`basename $0`
-seqres=$RESULT_DIR/$seq
-echo "QA output created by $seq"
-
-here=`pwd`
-tmp=/tmp/$$
-status=1	# failure is the default!
+. ./common/preamble
+_begin_fstest auto snapshot
 
+# Override the default cleanup function.
 _cleanup()
 {
     rm -f $tmp.*
 }
 
-trap "_cleanup ; exit \$status" 0 1 2 3 15
-
-# get standard environment, filters and checks
-. ./common/rc
+# Import common functions.
 . ./common/filter
 
 _supported_fs btrfs
diff --git a/tests/btrfs/003 b/tests/btrfs/003
index fbb313fb..d241ec6e 100755
--- a/tests/btrfs/003
+++ b/tests/btrfs/003
@@ -6,16 +6,11 @@ 
 #
 # btrfs vol tests
 #
-seq=`basename $0`
-seqres=$RESULT_DIR/$seq
-echo "QA output created by $seq"
+. ./common/preamble
+_begin_fstest auto replace volume balance
 
-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
 
 # Check if all scratch dev pools are deletable
 deletable_scratch_dev_pool()
@@ -32,6 +27,7 @@  deletable_scratch_dev_pool()
 	return 0
 }
 
+# Override the default cleanup function.
 _cleanup()
 {
     cd /
@@ -42,8 +38,7 @@  _cleanup()
     fi
 }
 
-# get standard environment, filters and checks
-. ./common/rc
+# Import common functions.
 . ./common/filter
 
 _supported_fs btrfs
@@ -51,8 +46,6 @@  _require_scratch
 _require_scratch_dev_pool 4
 _require_command "$WIPEFS_PROG" wipefs
 
-rm -f $seqres.full
-
 # Test cases related to raid in btrfs
 _test_raid0()
 {
diff --git a/tests/btrfs/004 b/tests/btrfs/004
index 0458d2b6..4e767a2f 100755
--- a/tests/btrfs/004
+++ b/tests/btrfs/004
@@ -9,25 +9,20 @@ 
 # 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/preamble
+_begin_fstest auto rw metadata
 
-here=`pwd`
-tmp=/tmp/$$
-status=1
 noise_pid=0
 
+# Override the default cleanup function.
 _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
+# Import common functions.
 . ./common/filter
 
 # real QA test starts here
@@ -38,8 +33,6 @@  _require_btrfs_command inspect-internal logical-resolve
 _require_btrfs_command inspect-internal inode-resolve
 _require_command "$FILEFRAG_PROG" filefrag
 
-rm -f $seqres.full
-
 FILEFRAG_FILTER='
 	if (/blocks? of (\d+) bytes/) {
 		$blocksize = $1;
diff --git a/tests/btrfs/005 b/tests/btrfs/005
index ff20a638..ac9e8bfa 100755
--- a/tests/btrfs/005
+++ b/tests/btrfs/005
@@ -6,17 +6,12 @@ 
 #
 # Btrfs Online defragmentation tests
 #
-seq=`basename $0`
-seqres=$RESULT_DIR/$seq
-echo "QA output created by $seq"
-here="`pwd`"
-tmp=/tmp/$$
+. ./common/preamble
+_begin_fstest auto defrag
 cnt=119
 filesize=48000
 
-status=1	# failure is the default!
-trap "_cleanup; exit \$status" 0 1 2 3 15
-
+# Override the default cleanup function.
 _cleanup()
 {
     cd /
@@ -111,8 +106,7 @@  _rundefrag()
 	_check_scratch_fs
 }
 
-# get standard environment, filters and checks
-. ./common/rc
+# Import common functions.
 . ./common/filter
 . ./common/defrag
 
@@ -120,8 +114,6 @@  _rundefrag()
 _supported_fs btrfs
 _require_scratch
 
-rm -f $seqres.full
-
 _scratch_mkfs >/dev/null 2>&1
 _scratch_mount
 _require_defrag
diff --git a/tests/btrfs/006 b/tests/btrfs/006
index 67f1fcd8..c0f9541a 100755
--- a/tests/btrfs/006
+++ b/tests/btrfs/006
@@ -7,23 +7,17 @@ 
 # 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"
-
-here=`pwd`
-tmp=/tmp/$$
-status=1	# failure is the default!
-trap "_cleanup; exit \$status" 0 1 2 3 15
+. ./common/preamble
+_begin_fstest auto quick volume
 
+# Override the default cleanup function.
 _cleanup()
 {
     cd /
     rm -f $tmp.*
 }
 
-# get standard environment, filters and checks
-. ./common/rc
+# Import common functions.
 . ./common/filter.btrfs
 
 # real QA test starts here
@@ -33,8 +27,6 @@  _supported_fs btrfs
 _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`