generic: _require_dm_target() helper
authorEric Sandeen <sandeen@redhat.com>
Wed, 14 Oct 2015 03:08:42 +0000 (14:08 +1100)
committerDave Chinner <david@fromorbit.com>
Wed, 14 Oct 2015 03:08:42 +0000 (14:08 +1100)
generic/085 was failing on a machine w/o devicemapper kernel
support because it requires the linear target, but didn't
explicitly test for it.

I could have cut & pasted _require_dm_linear(), but chose
to go the route of a generic helper, _require_dm_target $FOO,
because some day someone will need the zero target, the error
target, or who knows.

Add the helper, use it in test generic/085, and convert
_require_dm_flakey, _require_dm_snapshot, and
_dmerror_required with this new helper.

Reported-by: Angelo Dureghello <angelo.dureghello@nomovok.com>
Signed-off-by: Eric Sandeen <sandeen@redhat.com>
Reviewed-by: Eryu Guan <eguan@redhat.com>
Signed-off-by: Dave Chinner <david@fromorbit.com>
32 files changed:
common/dmerror
common/rc
tests/btrfs/049
tests/btrfs/056
tests/btrfs/085
tests/btrfs/095
tests/btrfs/098
tests/btrfs/100
tests/btrfs/101
tests/generic/034
tests/generic/039
tests/generic/040
tests/generic/041
tests/generic/056
tests/generic/057
tests/generic/059
tests/generic/065
tests/generic/066
tests/generic/073
tests/generic/081
tests/generic/085
tests/generic/090
tests/generic/101
tests/generic/104
tests/generic/106
tests/generic/107
tests/generic/311
tests/generic/321
tests/generic/322
tests/generic/325
tests/shared/002
tests/xfs/051

index a81856d005a6845ca6b61e8773ab5f60b56c8c9e..3900a4e78f1ca3aac61a7f7fb3384a16fa0b8040 100644 (file)
 #
 # common functions for setting up and tearing down a dmerror device
 
-# this test requires the device mapper error target
-#
-_dmerror_required()
-{
-       _require_command "$DMSETUP_PROG" dmsetup
-
-       _require_block_device $SCRATCH_DEV
-       _require_sane_bdev_flush $SCRATCH_DEV
-
-       modprobe dm-mod >/dev/null 2>&1
-       $DMSETUP_PROG targets | grep error >/dev/null 2>&1
-       [ $? -ne 0 ] && _notrun "This test requires dm error support"
-}
-
 _dmerror_init()
 {
        local dm_backing_dev=$SCRATCH_DEV
index 3e97060721e6b68eb5677a9fa2e256302deee2a7..adf1edf64d8d396f4e9a3b97be25e226178944ca 100644 (file)
--- a/common/rc
+++ b/common/rc
@@ -1346,32 +1346,22 @@ _require_sane_bdev_flush()
        fi
 }
 
-# this test requires the device mapper flakey target
-#
-_require_dm_flakey()
+# this test requires a specific device mapper target
+_require_dm_target()
 {
+       _target=$1
+
        # require SCRATCH_DEV to be a valid block device with sane BLKFLSBUF
        # behaviour
        _require_block_device $SCRATCH_DEV
        _require_sane_bdev_flush $SCRATCH_DEV
        _require_command "$DMSETUP_PROG" dmsetup
 
-       modprobe dm-flakey >/dev/null 2>&1
-       $DMSETUP_PROG targets | grep flakey >/dev/null 2>&1
-       if [ $? -ne 0 ]; then
-               _notrun "This test requires dm flakey support"
-       fi
-}
+       modprobe dm-$_target >/dev/null 2>&1
 
-_require_dm_snapshot()
-{
-       _require_block_device $SCRATCH_DEV
-       _require_sane_bdev_flush $SCRATCH_DEV
-       _require_command "$DMSETUP_PROG" dmsetup
-       modprobe dm-snapshot >/dev/null 2>&1
-       $DMSETUP_PROG targets | grep -q snapshot
+       $DMSETUP_PROG targets 2>&1 | grep -q ^$_target
        if [ $? -ne 0 ]; then
-               _notrun "This test requires dm snapshot support"
+               _notrun "This test requires dm $_target support"
        fi
 }
 
index 5b17a7739213c613c10e159f555d0109dd4aefc1..38ed7ad51a577896661b5ecc9e264011ae725b20 100755 (executable)
@@ -50,7 +50,7 @@ _supported_fs btrfs
 _supported_os Linux
 _need_to_be_root
 _require_scratch
-_require_dm_flakey
+_require_dm_target flakey
 
 rm -f $seqres.full
 
index 9e9d92b6c991e772c08ce8c516bbae2371619f3e..add82885894efa0c7a6f20a19b0a3f146570719b 100755 (executable)
@@ -55,7 +55,7 @@ _require_scratch
 _require_cloner
 _require_btrfs_fs_feature "no_holes"
 _require_btrfs_mkfs_feature "no-holes"
-_require_dm_flakey
+_require_dm_target flakey
 _need_to_be_root
 
 rm -f $seqres.full
index 44e476bdf2122f32d4f4ecad4e17b0728eb98e2e..d82f79ac3152415c154bb5ab3f669f6ead324a61 100755 (executable)
@@ -54,7 +54,7 @@ trap "_cleanup ; exit \$status" 0 1 2 3 15
 _supported_fs btrfs
 _supported_os Linux
 _require_scratch
-_require_dm_flakey
+_require_dm_target flakey
 _need_to_be_root
 
 BTRFS_DEBUG_TREE_PROG="`set_prog_path btrfs-debug-tree`"
index 032d1ffe5819c601827c0a4a4cb7c9e1cdaa965e..854ba40f8adef075d0554b1b44023652e971ccf1 100755 (executable)
@@ -52,7 +52,7 @@ _need_to_be_root
 _supported_fs btrfs
 _supported_os Linux
 _require_scratch
-_require_dm_flakey
+_require_dm_target flakey
 _require_cloner
 _require_metadata_journaling $SCRATCH_DEV
 _require_xfs_io_command "falloc"
index c412c73bc9bdcf1311eb3a77fc317b454c964768..f12df5f5510cb526e5142223c97453ed4313b2fb 100755 (executable)
@@ -48,7 +48,7 @@ _need_to_be_root
 _supported_fs btrfs
 _supported_os Linux
 _require_scratch
-_require_dm_flakey
+_require_dm_target flakey
 _require_cloner
 _require_metadata_journaling $SCRATCH_DEV
 
index 4343fcb772f5f73daa28d651e0aadf5a73c1a2e5..080d0ae9f6eda7ec0ca2f4d79693c3442994d05d 100755 (executable)
@@ -46,7 +46,7 @@ _supported_fs btrfs
 _supported_os Linux
 _need_to_be_root
 _require_scratch_dev_pool 3
-_dmerror_required
+_require_dm_target error
 
 rm -f $seqres.full
 
index 5969ab601e05f1d218acad834e828177b11421db..0824de1d1428c3ee3b424babdede15cf77cce689 100755 (executable)
@@ -47,7 +47,7 @@ _supported_os Linux
 _need_to_be_root
 _require_scratch_dev_pool 3
 _require_btrfs_dev_del_by_devid
-_dmerror_required
+_require_dm_target error
 
 rm -f $seqres.full
 
index 966b3d2f6fe05dcef1246785ff695d53cf958694..ee889c227778394c9be620b87b4a50452dacbf54 100755 (executable)
@@ -52,7 +52,7 @@ _supported_fs generic
 _supported_os Linux
 _need_to_be_root
 _require_scratch
-_require_dm_flakey
+_require_dm_target flakey
 _require_metadata_journaling $SCRATCH_DEV
 
 rm -f $seqres.full
index 4bbfc50d8aa0b4340fa8779f2f45445f222c7943..35cb7a443c51bf2606ae4177dd18b52ceced4ac2 100755 (executable)
@@ -56,7 +56,7 @@ _supported_fs generic
 _supported_os Linux
 _need_to_be_root
 _require_scratch
-_require_dm_flakey
+_require_dm_target flakey
 _require_metadata_journaling $SCRATCH_DEV
 
 rm -f $seqres.full
index b44a4339500c11e838d26db818e1d7691d62a762..3142bbb35b29bc638bc1d7cecf59b20ac216cd29 100755 (executable)
@@ -61,7 +61,7 @@ _supported_fs generic
 _supported_os Linux
 _need_to_be_root
 _require_scratch
-_require_dm_flakey
+_require_dm_target flakey
 _require_metadata_journaling $SCRATCH_DEV
 
 rm -f $seqres.full
index 50fb26f9bf9dad94a3dc2450818385d2e69aa04b..506d8a9168b93cc0415ac798ed4715081012523e 100755 (executable)
@@ -65,7 +65,7 @@ _supported_fs generic
 _supported_os Linux
 _need_to_be_root
 _require_scratch
-_require_dm_flakey
+_require_dm_target flakey
 _require_metadata_journaling $SCRATCH_DEV
 
 rm -f $seqres.full
index 8bb1522b67fc062e63b5c50869c5758e726a4ae6..2ec155f517911d35eb21e8c99825a616243348ca 100755 (executable)
@@ -54,7 +54,7 @@ _supported_fs generic
 _supported_os Linux
 _need_to_be_root
 _require_scratch
-_require_dm_flakey
+_require_dm_target flakey
 _require_metadata_journaling $SCRATCH_DEV
 
 rm -f $seqres.full
index 3b9f89e29085cacf417ec73c1b14122e91ab5001..c11c329f1a3836bae52d1ac1e981dcb683f23405 100755 (executable)
@@ -54,7 +54,7 @@ _supported_fs generic
 _supported_os Linux
 _need_to_be_root
 _require_scratch
-_require_dm_flakey
+_require_dm_target flakey
 _require_metadata_journaling $SCRATCH_DEV
 
 rm -f $seqres.full
index 13dfb096609772288e213f2a74d5ceb3ebf5ae25..4b9184a2a3eeef45140343ec845f68f2c2bc4087 100755 (executable)
@@ -59,7 +59,7 @@ _supported_fs generic
 _supported_os Linux
 _need_to_be_root
 _require_scratch
-_require_dm_flakey
+_require_dm_target flakey
 _require_metadata_journaling $SCRATCH_DEV
 _require_xfs_io_command "fpunch"
 
index 739a4d5bd93dbc48b84712445f5f2fea357e4329..ddab6870717518a54b4961b322cb94c92a7260b8 100755 (executable)
@@ -55,7 +55,7 @@ _supported_fs generic
 _supported_os Linux
 _need_to_be_root
 _require_scratch
-_require_dm_flakey
+_require_dm_target flakey
 _require_metadata_journaling $SCRATCH_DEV
 
 rm -f $seqres.full
index cb365065db2d7e2ff610bf79a5b73a4331ea4d96..211152d043451af12785c6dc8ac67870f6697298 100755 (executable)
@@ -59,7 +59,7 @@ _supported_fs generic
 _supported_os Linux
 _need_to_be_root
 _require_scratch
-_require_dm_flakey
+_require_dm_target flakey
 _require_attrs
 _require_metadata_journaling $SCRATCH_DEV
 
index 9cf0d90315c317be3b0727201993b3ea30a2a633..759098d63d85cb70c3cbffa92caf720a19487aaa 100755 (executable)
@@ -55,7 +55,7 @@ _supported_fs generic
 _supported_os Linux
 _need_to_be_root
 _require_scratch
-_require_dm_flakey
+_require_dm_target flakey
 _require_metadata_journaling $SCRATCH_DEV
 
 rm -f $seqres.full
index 34da1ac2156255f1d47cddd0a9867ef3a40c9ecc..8334ec930364cc4a1bf45b1cd97b30e559152bb9 100755 (executable)
@@ -49,7 +49,7 @@ _supported_fs generic
 _supported_os Linux
 _require_test
 _require_scratch_nocheck
-_require_dm_snapshot
+_require_dm_target snapshot
 _require_command $LVM_PROG lvm
 
 echo "Silence is golden"
index 839875293909fb26cbe26e5932db40fe08613ff5..8fb313c91407112eea58bce423dd7cc7b5cf56cb 100755 (executable)
@@ -41,6 +41,16 @@ _cleanup()
        cleanup_dmdev
 }
 
+cleanup_dmdev()
+{
+       # in case it's still suspended and/or mounted
+       $DMSETUP_PROG resume $lvdev >/dev/null 2>&1
+       $UMOUNT_PROG $lvdev >/dev/null 2>&1
+
+       $DMSETUP_PROG remove $node >>$seqres.full 2>&1
+       $DMSETUP_PROG mknodes >/dev/null 2>&1
+}
+
 # get standard environment, filters and checks
 . ./common/rc
 . ./common/filter
@@ -50,7 +60,7 @@ _supported_fs generic
 _supported_os Linux
 _require_scratch
 _require_block_device $SCRATCH_DEV
-_require_command $DMSETUP_PROG
+_require_dm_target linear
 _require_freeze
 
 setup_dmdev()
@@ -61,16 +71,6 @@ setup_dmdev()
        return $?
 }
 
-cleanup_dmdev()
-{
-       # in case it's still suspended and/or mounted
-       $DMSETUP_PROG resume $lvdev >/dev/null 2>&1
-       $UMOUNT_PROG $lvdev >/dev/null 2>&1
-
-       $DMSETUP_PROG remove $node >>$seqres.full 2>&1
-       $DMSETUP_PROG mknodes >/dev/null 2>&1
-}
-
 rm -f $seqres.full
 echo "Silence is golden"
 
index a1f2b8950c5c3c16f98ccb90062f2197b5184f0d..3890fc1a61ac612a61bbcb8c63d4d5db5bd50a0c 100755 (executable)
@@ -53,7 +53,7 @@ _supported_fs generic
 _supported_os Linux
 _need_to_be_root
 _require_scratch
-_require_dm_flakey
+_require_dm_target flakey
 _require_metadata_journaling $SCRATCH_DEV
 
 rm -f $seqres.full
index 9c46b42fd7f48cca1b59b073f20ce527eb1775dc..ea98a893931336a42d2af6b787f6d76182e77a5c 100755 (executable)
@@ -51,7 +51,7 @@ _need_to_be_root
 _supported_fs generic
 _supported_os Linux
 _require_scratch
-_require_dm_flakey
+_require_dm_target flakey
 _require_metadata_journaling $SCRATCH_DEV
 
 # This test was motivated by an issue found in btrfs when the btrfs no-holes
index fef3583e14df216921f71090ba9cac84d04abac7..2eee63853901bd624974b836eb5671ccd759f6a1 100755 (executable)
@@ -49,7 +49,7 @@ _need_to_be_root
 _supported_fs generic
 _supported_os Linux
 _require_scratch
-_require_dm_flakey
+_require_dm_target flakey
 _require_metadata_journaling $SCRATCH_DEV
 
 rm -f $seqres.full
index 0afee4168b39a838db8c409979038e40cd46514b..e4f9cae9117fbc9a168a7ba95f3cd34d1d6ea742 100755 (executable)
@@ -48,7 +48,7 @@ _need_to_be_root
 _supported_fs generic
 _supported_os Linux
 _require_scratch
-_require_dm_flakey
+_require_dm_target flakey
 _require_metadata_journaling $SCRATCH_DEV
 
 rm -f $seqres.full
index 7d107d7cb44b3f3315bb5f9d63f0f8189bc16d1d..7503e40e3b0a08e134e9156bd24fb3b63e161ba5 100755 (executable)
@@ -51,7 +51,7 @@ _need_to_be_root
 _supported_fs generic
 _supported_os Linux
 _require_scratch
-_require_dm_flakey
+_require_dm_target flakey
 _require_metadata_journaling $SCRATCH_DEV
 
 rm -f $seqres.full
index d21b6eb35dd097f686674cb31ede3db38c4307fc..f55201197eda66540677de7777f5e7dc36bdb251 100755 (executable)
@@ -55,7 +55,7 @@ _supported_fs generic
 _supported_os Linux
 _need_to_be_root
 _require_scratch_nocheck
-_require_dm_flakey
+_require_dm_target flakey
 _require_metadata_journaling $SCRATCH_DEV
 
 # xfs_io is not required for this test, but it's the best way to verify
index c821a23a3f6ca9d64b59a1620e1abc62823e092e..1a89880469554abcb4be01fbe0dd0a60f9b04dbb 100755 (executable)
@@ -44,7 +44,7 @@ _supported_fs generic
 _supported_os Linux
 _need_to_be_root
 _require_scratch_nocheck
-_require_dm_flakey
+_require_dm_target flakey
 _require_metadata_journaling $SCRATCH_DEV
 
 rm -f $seqres.full
index 4c0edf6a9563b19a58f385e0abc6cb678332b779..324022b3df958dbf325fb9ba382b9cc63ef2f623 100755 (executable)
@@ -44,7 +44,7 @@ _supported_fs generic
 _supported_os Linux
 _need_to_be_root
 _require_scratch_nocheck
-_require_dm_flakey
+_require_dm_target flakey
 _require_metadata_journaling $SCRATCH_DEV
 
 rm -f $seqres.full
index 965a47ce93d4df682234876a34d35ed66b243ea0..94d30be51a51204c44c549d9295ffef72de21e14 100755 (executable)
@@ -54,7 +54,7 @@ _supported_fs generic
 _supported_os Linux
 _need_to_be_root
 _require_scratch
-_require_dm_flakey
+_require_dm_target flakey
 _require_metadata_journaling $SCRATCH_DEV
 
 rm -f $seqres.full
index cc59cdb1d0f69ed6367423f25704692047430b67..cf02fcfeeeefbae16adb340257eff59fa45f4942 100755 (executable)
@@ -59,7 +59,7 @@ _supported_fs btrfs xfs
 _supported_os Linux
 _need_to_be_root
 _require_scratch
-_require_dm_flakey
+_require_dm_target flakey
 _require_attrs
 _require_metadata_journaling $SCRATCH_DEV
 
index a84746b0492ce3b6c9a6fdcf1f9639b453e81419..3f3363509fe3be0c7a4341577dd4703441ab8d4b 100755 (executable)
@@ -49,7 +49,7 @@ _supported_fs xfs
 _supported_os Linux
 
 _require_scratch
-_require_dm_flakey
+_require_dm_target flakey
 _require_xfs_sysfs debug/log_recovery_delay
 
 echo "Silence is golden."