[v3,1/2] xfstests: make more tests generic
diff mbox

Message ID 20110810155214.GE20461@twin.jikos.cz
State Not Applicable
Headers show

Commit Message

David Sterba Aug. 10, 2011, 3:52 p.m. UTC
Hi,

On Mon, Aug 01, 2011 at 12:31:19PM +0200, Stefan Behrens wrote:
> Use _scratch_mkfs / _scratch_mkfs_sized instead of _scratch_mkfs_xfs
> where possible.
> Execute 015, 062, 083, 117, 120 and 192 for all filesystems, these
> tests used to be XFS specific.
 
this patch is now in xfstests-dev and somehow breaks btrfs testing.

$ check 015
015      [failed, exit status 1] - output mismatch (see 015.out.bad)
 *** test out-of-space handling for random write operations
-*** done
+size=100m mkfs failed
+(see 083.full for details)
 *** unmount


checks 117,120,192 passed


there's a hardcoded path for mkfs.btrfs in common.rc:_scratch_mkfs_sized()

335     btrfs)
336         /sbin/mkfs.$FSTYP $MKFS_OPTIONS $SCRATCH_DEV -b $fssize
337         ;;

I have a /usr/local/ installation of btrfsprogs from git,
_scratch_mkfs_sized() was not called for btrfs before.

Possible ways to fix this:
1) use /sbin/mkfs -t $FSTYP like _scratch_mkfs, or
2) set $MKFS_BTRFS_PROG like for some other filesystems


What is preferred?



david


> Signed-off-by: Stefan Behrens <sbehrens@giantdisaster.de>
> ---
>  015     |    5 +++--
>  062     |    4 ++--
>  062.out |    6 ------
>  083     |   12 +++++++++---
>  117     |    4 ++--
>  120     |    4 ++--
>  192     |    2 +-
>  7 files changed, 19 insertions(+), 18 deletions(-)
> 
> diff --git a/015 b/015
> index 8f2be7c..4206b93 100755
> --- a/015
> +++ b/015
> @@ -48,13 +48,14 @@ _free()
>  }
>  
>  # real QA test starts here
> -_supported_fs xfs
> +_supported_fs generic
>  _supported_os IRIX Linux
>  
>  _require_scratch
>  _require_nobigloopfs
>  
> -_scratch_mkfs_xfs -d size=50m >/dev/null || _fail "mkfs failed"
> +_scratch_mkfs_sized `expr 50 \* 1024 \* 1024` >/dev/null 2>&1 \
> +    || _fail "mkfs failed"
>  _scratch_mount || _fail "mount failed"
>  out=$SCRATCH_MNT/fillup.$$
>  rm -f $seq.full
> diff --git a/062 b/062
> index 5cb6f92..a6e4bc8 100755
> --- a/062
> +++ b/062
> @@ -71,7 +71,7 @@ _create_test_bed()
>  }
>  
>  # real QA test starts here
> -_supported_fs xfs udf nfs
> +_supported_fs generic
>  _supported_os Linux
>  
>  _require_scratch
> @@ -80,7 +80,7 @@ _require_attrs
>  rm -f $tmp.backup1 $tmp.backup2 $seq.full
>  
>  # real QA test starts here
> -_scratch_mkfs_xfs | _filter_mkfs 2>$tmp.mkfs
> +_scratch_mkfs > /dev/null 2>&1 || _fail "mkfs failed"
>  _scratch_mount || _fail "mount failed"
>  _create_test_bed
>  
> diff --git a/062.out b/062.out
> index 73fd628..1d5a094 100644
> --- a/062.out
> +++ b/062.out
> @@ -1,10 +1,4 @@
>  QA output created by 062
> -meta-data=DDEV isize=XXX agcount=N, agsize=XXX blks
> -data     = bsize=XXX blocks=XXX, imaxpct=PCT
> -         = sunit=XXX swidth=XXX, unwritten=X
> -naming   =VERN bsize=XXX
> -log      =LDEV bsize=XXX blocks=XXX
> -realtime =RDEV extsz=XXX blocks=XXX, rtextents=XXX
>  *** create test bed
>  SCRATCH_MNT
>  SCRATCH_MNT/dev
> diff --git a/083 b/083
> index 7342baa..441284e 100755
> --- a/083
> +++ b/083
> @@ -54,7 +54,7 @@ trap "_cleanup; exit \$status" 0 1 2 3 15
>  . ./common.filter
>  
>  # real QA test starts here
> -_supported_fs xfs
> +_supported_fs generic
>  _supported_os IRIX Linux
>  
>  _require_scratch
> @@ -72,8 +72,14 @@ workout()
>  	umount $SCRATCH_DEV >/dev/null 2>&1
>  	echo "*** mkfs -dsize=$fsz,agcount=$ags"    >>$seq.full
>  	echo ""                                     >>$seq.full
> -	_scratch_mkfs_xfs -dsize=$fsz,agcount=$ags  >>$seq.full 2>&1 \
> -		|| _fail "size=$fsz,agcount=$ags mkfs failed"
> +	if [ $FSTYP = xfs ]
> +	then
> +		_scratch_mkfs_xfs -dsize=$fsz,agcount=$ags  >>$seq.full 2>&1 \
> +			|| _fail "size=$fsz,agcount=$ags mkfs failed"
> +	else
> +		_scratch_mkfs_sized $fsz >>$seq.full 2>&1 \
> +			|| _fail "size=$fsz mkfs failed"
> +	fi
>  	_scratch_mount                              >>$seq.full 2>&1 \
>  		|| _fail "mount failed"
>  
> diff --git a/117 b/117
> index dd880cb..fcf0485 100755
> --- a/117
> +++ b/117
> @@ -51,7 +51,7 @@ _cleanup()
>  . ./common.attr
>  
>  # real QA test starts here
> -_supported_fs xfs
> +_supported_fs generic
>  _supported_os IRIX Linux
>  
>  _setup_testdir
> @@ -62,7 +62,7 @@ rm -f $seq.full
>  umount $SCRATCH_DEV >/dev/null 2>&1
>  echo "*** MKFS ***"                         >>$seq.full
>  echo ""                                     >>$seq.full
> -_scratch_mkfs_xfs                           >>$seq.full 2>&1 \
> +_scratch_mkfs                               >>$seq.full 2>&1 \
>      || _fail "mkfs failed"
>  _scratch_mount                              >>$seq.full 2>&1 \
>      || _fail "mount failed"
> diff --git a/120 b/120
> index bf1e617..010a8f3 100755
> --- a/120
> +++ b/120
> @@ -37,11 +37,11 @@ trap "rm -f $tmp.*; exit \$status" 0 1 2 3 15
>  . ./common.filter
>  
>  # real QA test starts here
> -_supported_fs xfs
> +_supported_fs generic
>  _supported_os Linux IRIX
>  
>  _require_scratch
> -_scratch_mkfs_xfs >/dev/null 2>&1
> +_scratch_mkfs >/dev/null 2>&1 || _fail "mkfs failed"
>  
>  _compare_access_times()
>  {
> diff --git a/192 b/192
> index d8301d5..4b69147 100755
> --- a/192
> +++ b/192
> @@ -45,7 +45,7 @@ _access_time()
>  
>  # real QA test starts here
>  
> -_supported_fs xfs udf nfs
> +_supported_fs generic
>  _supported_os Linux
>  #delay=150
>  #delay=75
> -- 
> 1.7.3.4
> 
> _______________________________________________
> xfs mailing list
> xfs@oss.sgi.com
> http://oss.sgi.com/mailman/listinfo/xfs
--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Comments

Christoph Hellwig Aug. 10, 2011, 4:33 p.m. UTC | #1
On Wed, Aug 10, 2011 at 05:52:14PM +0200, David Sterba wrote:
> there's a hardcoded path for mkfs.btrfs in common.rc:_scratch_mkfs_sized()
> 
> 335     btrfs)
> 336         /sbin/mkfs.$FSTYP $MKFS_OPTIONS $SCRATCH_DEV -b $fssize
> 337         ;;
> 
> I have a /usr/local/ installation of btrfsprogs from git,
> _scratch_mkfs_sized() was not called for btrfs before.
> 
> Possible ways to fix this:
> 1) use /sbin/mkfs -t $FSTYP like _scratch_mkfs, or
> 2) set $MKFS_BTRFS_PROG like for some other filesystems
> 
> 
> What is preferred?

Please send a patch for variant 2.  As soon as we have option using
the generic mkfs wrapper sounds like a good idea.  In addition to that
treating btrfs the same way as other filesystems is always good.

--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Alex Elder Aug. 10, 2011, 4:36 p.m. UTC | #2
On Wed, 2011-08-10 at 17:52 +0200, David Sterba wrote:
> Hi,
> 
> On Mon, Aug 01, 2011 at 12:31:19PM +0200, Stefan Behrens wrote:
> > Use _scratch_mkfs / _scratch_mkfs_sized instead of _scratch_mkfs_xfs
> > where possible.
> > Execute 015, 062, 083, 117, 120 and 192 for all filesystems, these
> > tests used to be XFS specific.
>  
> this patch is now in xfstests-dev and somehow breaks btrfs testing.

. . .

> there's a hardcoded path for mkfs.btrfs in common.rc:_scratch_mkfs_sized()
> 
> 335     btrfs)
> 336         /sbin/mkfs.$FSTYP $MKFS_OPTIONS $SCRATCH_DEV -b $fssize
> 337         ;;
> 
> I have a /usr/local/ installation of btrfsprogs from git,
> _scratch_mkfs_sized() was not called for btrfs before.
> 
> Possible ways to fix this:
> 1) use /sbin/mkfs -t $FSTYP like _scratch_mkfs, or
> 2) set $MKFS_BTRFS_PROG like for some other filesystems
> 
> 
> What is preferred?

Whatever works.  My personal preference would be option (1)
if it works, since it's does the generic thing directly
rather than suggesting something special is needed for
btrfs.  But if that doesn't work, consistency rules so
MKFS_BTRFS_PROG "like for some other filesystems" is good.

					-Alex

--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Alex Elder Aug. 10, 2011, 4:38 p.m. UTC | #3
On Wed, 2011-08-10 at 12:33 -0400, Christoph Hellwig wrote:
> On Wed, Aug 10, 2011 at 05:52:14PM +0200, David Sterba wrote:
> > there's a hardcoded path for mkfs.btrfs in common.rc:_scratch_mkfs_sized()
> > 
> > 335     btrfs)
> > 336         /sbin/mkfs.$FSTYP $MKFS_OPTIONS $SCRATCH_DEV -b $fssize
> > 337         ;;
> > 
> > I have a /usr/local/ installation of btrfsprogs from git,
> > _scratch_mkfs_sized() was not called for btrfs before.
> > 
> > Possible ways to fix this:
> > 1) use /sbin/mkfs -t $FSTYP like _scratch_mkfs, or
> > 2) set $MKFS_BTRFS_PROG like for some other filesystems
> > 
> > 
> > What is preferred?
> 
> Please send a patch for variant 2.  As soon as we have option using
> the generic mkfs wrapper sounds like a good idea.  In addition to that
> treating btrfs the same way as other filesystems is always good.

Whoops, we gave different answers.  Do what Christoph says...	-Alex

--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Christoph Hellwig Aug. 10, 2011, 4:43 p.m. UTC | #4
On Wed, Aug 10, 2011 at 11:36:09AM -0500, Alex Elder wrote:
> > Possible ways to fix this:
> > 1) use /sbin/mkfs -t $FSTYP like _scratch_mkfs, or
> > 2) set $MKFS_BTRFS_PROG like for some other filesystems
> > 
> > 
> > What is preferred?
> 
> Whatever works.  My personal preference would be option (1)
> if it works, since it's does the generic thing directly
> rather than suggesting something special is needed for
> btrfs.  But if that doesn't work, consistency rules so
> MKFS_BTRFS_PROG "like for some other filesystems" is good.

Normally I'd agree with you, but I've run into problems with the
generic mkfs binary, as it parses some options that might otherwise
be left to the filesystem.  E.g. it parses -l by itself, which causes
problems when creating an xfs filesystem with an external log.

Note that any filesystem supported by _scratch_mkfs_sized is special;
there is no generic way to specify the size of a filesystem.

--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Patch
diff mbox

--- 015.out     2011-02-11 11:42:29.000000000 +0100
+++ 015.out.bad 2011-08-10 17:19:48.000000000 +0200
@@ -1,7 +1,4 @@ 
 QA output created by 015
-fill disk:
-   !!! disk full (expected)
-check free space:
-delete fill:
-check free space:
-   !!! free space is in range
+mkfs failed
+(see 015.full for details)
+umount: /mnt/sda10: not mounted

$ check 062
--- 062.out     2011-08-10 17:17:23.000000000 +0200
+++ 062.out.bad 2011-08-10 17:20:57.000000000 +0200
@@ -49,10 +49,13 @@ 
 user.name2=0xcafe

 *** remove attribute
-SCRATCH_MNT/reg: user.name2: No such attribute
+# file: SCRATCH_MNT/reg
+user.name2
+
<...long error output...>

$ check 083
083      [failed, exit status 1] - output mismatch (see 083.out.bad)
--- 083.out     2011-02-11 11:42:30.000000000 +0100
+++ 083.out.bad 2011-08-10 17:21:37.000000000 +0200
@@ -1,4 +1,5 @@ 
 QA output created by 083