xfstests: MKFS_OPTIONS is not being reinitialized
Boris Ranto
branto at redhat.com
Thu Nov 18 11:40:36 CST 2010
----- "Dave Chinner" <david at fromorbit.com> wrote:
> On Wed, Nov 17, 2010 at 04:49:58PM +0100, Boris Ranto wrote:
> > Test case 223 constantly fails because the variable carrying mkfs
> > options is not being reinitialized.
> >
> > Test calls function _scratch_mkfs_geom repeatedly in for loop
> without
> > cleaning the MKFS_OPTIONS variable. Since _scratch_mkfs_geom only
> > appends options to the variable, MKFS_OPTIONS looks like this in
> 5th
> > iteration:
> > MKFS_OPTIONS="-bsize=4096-b size=4096 -d su=8192,sw=4-b size=4096
> -d
> > su=16384,sw=4-b size=4096 -d su=32768,sw=4-b size=4096 -d
> > su=65536,sw=4-b size=4096 -d su=131072,sw=4"
> >
> > It is also easy to see that _scratch_mkfs_geom does not append
> leading
> > space when it appends the variable.
> >
> > Following patch fixes the issue for me and based on my testing does
> not
> > break any other test case:
> >
> > diff -uprN xfstests-dev/223 xfstests-dev-new/223
> > --- xfstests-dev/223 2010-11-09 08:53:39.000000000 -0500
> > +++ xfstests-dev-new/223 2010-11-17 08:05:56.745068628 -0500
> > @@ -58,6 +58,7 @@ for SUNIT_K in 8 16 32 64 128; do
> > let SUNIT_BLOCKS=$SUNIT_BYTES/$BLOCKSIZE
> >
> > echo "=== mkfs with su $SUNIT_BLOCKS blocks x 4 ==="
> > + export MKFS_OPTIONS=""
> > _scratch_mkfs_geom $SUNIT_BYTES 4 $BLOCKSIZE >> $seq.full 2>&1
> > _scratch_mount
>
> That'll drop any custom mkfs options on the floor for that test.
>
> >
> > diff -uprN xfstests-dev/common.rc xfstests-dev-new/common.rc
> > --- xfstests-dev/common.rc 2010-11-09 08:53:39.000000000 -0500
> > +++ xfstests-dev-new/common.rc 2010-11-17 08:07:06.972132647 -0500
> > @@ -349,10 +349,10 @@ _scratch_mkfs_geom()
> >
> > case $FSTYP in
> > xfs)
> > - MKFS_OPTIONS+="-b size=$blocksize, -d
> su=$sunit_bytes,sw=$swidth_mult"
> > + MKFS_OPTIONS+=" -b size=$blocksize, -d su=$sunit_bytes,sw=
> > $swidth_mult"
> > ;;
> > ext4)
> > - MKFS_OPTIONS+="-b $blocksize -E
> stride=$sunit_blocks,stripe_width=
> > $swidth_blocks"
> > + MKFS_OPTIONS+=" -b $blocksize -E
> stride=$sunit_blocks,stripe_width=
> > $swidth_blocks"
> > ;;
> > *)
> > _notrun "can't mkfs $FSTYP with geometry"
>
> Perhaps rather than using MKFS_OPTIONS, this should call
> scratch_mkfs directly with these as extra options, similar to the
> way _scratch_mkfs_sized() does. That would leave custom options set,
> and only pass the test specific options once to mkfs....
>
> Cheers,
>
> Dave.
> --
> Dave Chinner
> david at fromorbit.com
If I remember it right this would not work because MKFS_OPTIONS already contained -bsize=4096 at the beginning of the test and if another -b size=$blocksize would be added to the options mkfs would fail again.
Cheers,
Boris Ranto
<branto at redhat.com>
More information about the xfs
mailing list