Message ID | 1388999598-17058-1-git-send-email-quwenruo@cn.fujitsu.com (mailing list archive) |
---|---|
State | Not Applicable, archived |
Headers | show |
Qu Wenruo ??: > From: Miao Xie <miaox@cn.fujitsu.com> Sorry for the double from line. I'll resend the patch. Qu > > From: Miao Xie <miaox@cn.fujitsu.com> > > _require_scratch_dev_pool() checks the devices number in > SCRATCH_DEV_POOL, but it's not enough since some btrfs RAID10 tests > needs 4 devices, but when 3 or less devices are provided, the check is > useless and related test case will fail(btrfs/003 btrfs/011 btrfs/023). > > Also _require_deletable_scratch_dev_pool only checks whether it is > virtul, like virtio(not including virtio-scsi) disk will pass the check > but is unable to delete. > > This patch enhance _require_scratch_dev_pool by add optional $1 as > needed device number to do extra check. > And enhance _require_deletable_scratch_dev_pool by directly check > /sys/class/block/$DEV/device/delete file. > > Signed-off-by: Miao Xie <miaox@cn.fujitsu.com> > Signed-off-by: Qu Wenruo <quwenruo@cn.fujitsu.com> > --- > common/rc | 22 ++++++++++++++-------- > tests/btrfs/003 | 2 +- > tests/btrfs/011 | 2 +- > 3 files changed, 16 insertions(+), 10 deletions(-) > > diff --git a/common/rc b/common/rc > index a2005c9..09644af 100644 > --- a/common/rc > +++ b/common/rc > @@ -1927,16 +1927,24 @@ _test_inode_extsz() > _require_scratch_dev_pool() > { > local i > + local ndevs > + > if [ -z "$SCRATCH_DEV_POOL" ]; then > _notrun "this test requires a valid \$SCRATCH_DEV_POOL" > fi > > - # btrfs test case needs 2 or more scratch_dev_pool; other FS not sure > + if [ -z "$1" ]; then > + ndevs=2 > + else > + ndevs=$1 > + fi > + > + # btrfs test case needs ndevs or more scratch_dev_pool; other FS not sure > # so fail it > case $FSTYP in > btrfs) > - if [ "`echo $SCRATCH_DEV_POOL|wc -w`" -lt 2 ]; then > - _notrun "btrfs and this test needs 2 or more disks in SCRATCH_DEV_POOL" > + if [ "`echo $SCRATCH_DEV_POOL|wc -w`" -lt $ndevs ]; then > + _notrun "btrfs and this test needs $ndevs or more disks in SCRATCH_DEV_POOL" > fi > ;; > *) > @@ -1963,17 +1971,15 @@ _require_scratch_dev_pool() > done > } > > -# We will check if the device is virtual (eg: loop device) since it does not > -# have the delete entry-point. Otherwise SCSI and USB devices are fine. > +# We will check if the device is deletable > _require_deletable_scratch_dev_pool() > { > local i > local x > for i in $SCRATCH_DEV_POOL; do > x=`echo $i | cut -d"/" -f 3` > - ls -l /sys/class/block/${x} | grep -q "virtual" > - if [ $? == "0" ]; then > - _notrun "$i is a virtual device which is not deletable" > + if [ ! -f /sys/class/block/${x}/device/delete ]; then > + _notrun "$i is a device which is not deletable" > fi > done > } > diff --git a/tests/btrfs/003 b/tests/btrfs/003 > index 9105d06..29f947b 100755 > --- a/tests/btrfs/003 > +++ b/tests/btrfs/003 > @@ -49,7 +49,7 @@ _need_to_be_root > _supported_fs btrfs > _supported_os Linux > _require_scratch > -_require_scratch_dev_pool > +_require_scratch_dev_pool 4 > _require_deletable_scratch_dev_pool > _require_command $WIPEFS_PROG > > diff --git a/tests/btrfs/011 b/tests/btrfs/011 > index 71ff3de..faa0402 100755 > --- a/tests/btrfs/011 > +++ b/tests/btrfs/011 > @@ -62,7 +62,7 @@ trap "_cleanup; exit \$status" 0 1 2 3 15 > _need_to_be_root > _supported_fs btrfs > _require_scratch > -_require_scratch_dev_pool > +_require_scratch_dev_pool 4 > _require_command $BTRFS_SHOW_SUPER_PROG btrfs-show-super > > rm -f $seqres.full -- 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
diff --git a/common/rc b/common/rc index a2005c9..09644af 100644 --- a/common/rc +++ b/common/rc @@ -1927,16 +1927,24 @@ _test_inode_extsz() _require_scratch_dev_pool() { local i + local ndevs + if [ -z "$SCRATCH_DEV_POOL" ]; then _notrun "this test requires a valid \$SCRATCH_DEV_POOL" fi - # btrfs test case needs 2 or more scratch_dev_pool; other FS not sure + if [ -z "$1" ]; then + ndevs=2 + else + ndevs=$1 + fi + + # btrfs test case needs ndevs or more scratch_dev_pool; other FS not sure # so fail it case $FSTYP in btrfs) - if [ "`echo $SCRATCH_DEV_POOL|wc -w`" -lt 2 ]; then - _notrun "btrfs and this test needs 2 or more disks in SCRATCH_DEV_POOL" + if [ "`echo $SCRATCH_DEV_POOL|wc -w`" -lt $ndevs ]; then + _notrun "btrfs and this test needs $ndevs or more disks in SCRATCH_DEV_POOL" fi ;; *) @@ -1963,17 +1971,15 @@ _require_scratch_dev_pool() done } -# We will check if the device is virtual (eg: loop device) since it does not -# have the delete entry-point. Otherwise SCSI and USB devices are fine. +# We will check if the device is deletable _require_deletable_scratch_dev_pool() { local i local x for i in $SCRATCH_DEV_POOL; do x=`echo $i | cut -d"/" -f 3` - ls -l /sys/class/block/${x} | grep -q "virtual" - if [ $? == "0" ]; then - _notrun "$i is a virtual device which is not deletable" + if [ ! -f /sys/class/block/${x}/device/delete ]; then + _notrun "$i is a device which is not deletable" fi done } diff --git a/tests/btrfs/003 b/tests/btrfs/003 index 9105d06..29f947b 100755 --- a/tests/btrfs/003 +++ b/tests/btrfs/003 @@ -49,7 +49,7 @@ _need_to_be_root _supported_fs btrfs _supported_os Linux _require_scratch -_require_scratch_dev_pool +_require_scratch_dev_pool 4 _require_deletable_scratch_dev_pool _require_command $WIPEFS_PROG diff --git a/tests/btrfs/011 b/tests/btrfs/011 index 71ff3de..faa0402 100755 --- a/tests/btrfs/011 +++ b/tests/btrfs/011 @@ -62,7 +62,7 @@ trap "_cleanup; exit \$status" 0 1 2 3 15 _need_to_be_root _supported_fs btrfs _require_scratch -_require_scratch_dev_pool +_require_scratch_dev_pool 4 _require_command $BTRFS_SHOW_SUPER_PROG btrfs-show-super rm -f $seqres.full