On 19.03.19 г. 12:58 ч., Nikolay Borisov wrote: > For a long time this test has been failing on all kinds of VM configuration, > which are using virtio_blk devices. This is due to the fact that scsi > devices are deletable and virtio_blk are not. However, this only prevents > device replace case to run and has no negative effect on the other > useful test cases. > > Re-enable btrfs/003 to run by making _require_deletable_scratch_dev_pool > private to the test case and modifying it to return success (0) or > failure (1) if devices are not deletable. Further modify the replace > test case to check the return value of this function and skip it if > devices are not deletable. > > Signed-off-by: Nikolay Borisov <nborisov@xxxxxxxx> Ping > --- > common/rc | 12 ------------ > tests/btrfs/003 | 19 ++++++++++++++++++- > 2 files changed, 18 insertions(+), 13 deletions(-) > > diff --git a/common/rc b/common/rc > index 1c42515ff0ea..5693ba3cad18 100644 > --- a/common/rc > +++ b/common/rc > @@ -2961,18 +2961,6 @@ _require_scratch_dev_pool_equal_size() > done > } > > -# 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` > - if [ ! -f /sys/class/block/${x}/device/delete ]; then > - _notrun "$i is a device which is not deletable" > - fi > - done > -} > > # Check that fio is present, and it is able to execute given jobfile > _require_fio() > diff --git a/tests/btrfs/003 b/tests/btrfs/003 > index 938030ef4c65..2aeb9fe6325a 100755 > --- a/tests/btrfs/003 > +++ b/tests/btrfs/003 > @@ -17,6 +17,21 @@ dev_removed=0 > removed_dev_htl="" > trap "_cleanup; exit \$status" 0 1 2 3 15 > > +# Check if all scratch dev pools are deletable > +_require_deletable_scratch_dev_pool() > +{ > + local i > + local x > + for i in $SCRATCH_DEV_POOL; do > + x=`echo $i | cut -d"/" -f 3` > + if [ ! -f /sys/class/block/${x}/device/delete ]; then > + return 1 > + fi > + done > + > + return 0 > +} > + > _cleanup() > { > cd / > @@ -35,7 +50,6 @@ _supported_fs btrfs > _supported_os Linux > _require_scratch > _require_scratch_dev_pool 4 > -_require_deletable_scratch_dev_pool > _require_command "$WIPEFS_PROG" wipefs > > rm -f $seqres.full > @@ -111,6 +125,9 @@ _test_replace() > local ds > local d > > + # If scratch devs are not deletable skip this test > + if ! _require_deletable_scratch_dev_pool; then return 0; fi > + > # exclude the first and the last disk in the disk pool > n=$(($n-1)) > ds=${devs[@]:1:$(($n-1))} >