Skip to contentSkip to conversation

generic _require_dm_target() helper, use in generic/085

PATCH Superseded Eric Sandeen 4 participants 6 messages Sep 28, 2015 – Sep 29, 2015

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 generic _require_dm_target() helper, use in generic/085

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.

The first 2 files below are functional changes, creating the helper & using it in generic/085; the rest are just perl edit-in-place changes to use the new generic helper.

---

common/rc +6 -17
index 3e97060..5bc0924 100644
@@ -1346,32 +1346,21 @@ _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
-}
-
-_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 | grep -q $_target
 	if [ $? -ne 0 ]; then
-		_notrun "This test requires dm snapshot support"
+		_notrun "This test requires dm $_target support"
 	fi
 }
 
tests/generic/085 +0 -0
index 8398752..f452e99 100755
@@ -50,7 +50,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()

tests/btrfs/049 +1 -1
index 5b17a77..38ed7ad 100755
@@ -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
 
tests/btrfs/056 +1 -1
index 9e9d92b..add8288 100755
@@ -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
tests/btrfs/085 +1 -1
index 44e476b..d82f79a 100755
@@ -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`"
tests/btrfs/095 +1 -1
index 032d1ff..854ba40 100755
@@ -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"
tests/btrfs/098 +1 -1
index c412c73..f12df5f 100755
@@ -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
 
tests/generic/034 +1 -1
index 966b3d2..ee889c2 100755
@@ -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
tests/generic/039 +1 -1
index 4bbfc50..35cb7a4 100755
@@ -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
tests/generic/040 +1 -1
index b44a433..3142bbb 100755
@@ -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
tests/generic/041 +1 -1
index 50fb26f..506d8a9 100755
@@ -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
tests/generic/056 +1 -1
index 8bb1522..2ec155f 100755
@@ -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
tests/generic/057 +1 -1
index 3b9f89e..c11c329 100755
@@ -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
tests/generic/059 +1 -1
index 13dfb09..4b9184a 100755
@@ -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"
 
tests/generic/065 +1 -1
index 739a4d5..ddab687 100755
@@ -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
tests/generic/066 +1 -1
index cb36506..211152d 100755
@@ -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
 
tests/generic/073 +1 -1
index 9cf0d90..759098d 100755
@@ -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
tests/generic/081 +1 -1
index 34da1ac..8334ec9 100755
@@ -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"
tests/generic/085 +1 -1
index 8398752..f452e99 100755
@@ -50,7 +50,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()
tests/generic/090 +1 -1
index a1f2b89..3890fc1 100755
@@ -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
tests/generic/101 +1 -1
index 9c46b42..ea98a89 100755
@@ -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
tests/generic/104 +1 -1
index fef3583..2eee638 100755
@@ -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
tests/generic/106 +1 -1
index 0afee41..e4f9cae 100755
@@ -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
tests/generic/107 +1 -1
index 7d107d7..7503e40 100755
@@ -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
tests/generic/311 +1 -1
index d21b6eb..f552011 100755
@@ -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
tests/generic/321 +1 -1
index c821a23..1a89880 100755
@@ -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
tests/generic/322 +1 -1
index 4c0edf6..324022b 100755
@@ -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
tests/generic/325 +1 -1
index 965a47c..94d30be 100755
@@ -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
tests/shared/002 +1 -1
index cc59cdb..cf02fcf 100755
@@ -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
 
tests/xfs/051 +1 -1
index a84746b..3f33635 100755
@@ -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."
#1 lore raw

PATCH v2 1/1 generic _require_dm_target() helper, use in generic/085

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.

The first 2 files below are functional changes, creating the helper & using it in generic/085; the rest are just perl edit-in-place changes to use the new generic helper.

---

V2: assign _target using actual bash syntax! o_O
combine dmsetup stdout & stderr for target grep modprobe the target we're looking for
define cleanup_dmdev() before we _notrun, trap, and try to run it

common/rc +8 -18
index 3e97060..5110261 100644
@@ -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
-}
-
-_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
+	modprobe dm-$_target >/dev/null 2>&1
+	
+	$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
 }
 
tests/generic/085 +11 -11
index 8398752..8fb313c 100755
@@ -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"
 
tests/btrfs/049 +1 -1
index 5b17a77..38ed7ad 100755
@@ -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
 
tests/btrfs/056 +1 -1
index 9e9d92b..add8288 100755
@@ -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
tests/btrfs/085 +1 -1
index 44e476b..d82f79a 100755
@@ -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`"
tests/btrfs/095 +1 -1
index 032d1ff..854ba40 100755
@@ -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"
tests/btrfs/098 +1 -1
index c412c73..f12df5f 100755
@@ -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
 
tests/generic/034 +1 -1
index 966b3d2..ee889c2 100755
@@ -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
tests/generic/039 +1 -1
index 4bbfc50..35cb7a4 100755
@@ -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
tests/generic/040 +1 -1
index b44a433..3142bbb 100755
@@ -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
tests/generic/041 +1 -1
index 50fb26f..506d8a9 100755
@@ -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
tests/generic/056 +1 -1
index 8bb1522..2ec155f 100755
@@ -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
tests/generic/057 +1 -1
index 3b9f89e..c11c329 100755
@@ -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
tests/generic/059 +1 -1
index 13dfb09..4b9184a 100755
@@ -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"
 
tests/generic/065 +1 -1
index 739a4d5..ddab687 100755
@@ -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
tests/generic/066 +1 -1
index cb36506..211152d 100755
@@ -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
 
tests/generic/073 +1 -1
index 9cf0d90..759098d 100755
@@ -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
tests/generic/081 +1 -1
index 34da1ac..8334ec9 100755
@@ -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"
tests/generic/090 +1 -1
index a1f2b89..3890fc1 100755
@@ -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
tests/generic/101 +1 -1
index 9c46b42..ea98a89 100755
@@ -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
tests/generic/104 +1 -1
index fef3583..2eee638 100755
@@ -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
tests/generic/106 +1 -1
index 0afee41..e4f9cae 100755
@@ -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
tests/generic/107 +1 -1
index 7d107d7..7503e40 100755
@@ -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
tests/generic/311 +1 -1
index d21b6eb..f552011 100755
@@ -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
tests/generic/321 +1 -1
index c821a23..1a89880 100755
@@ -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
tests/generic/322 +1 -1
index 4c0edf6..324022b 100755
@@ -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
tests/generic/325 +1 -1
index 965a47c..94d30be 100755
@@ -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
tests/shared/002 +1 -1
index cc59cdb..cf02fcf 100755
@@ -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
 
tests/xfs/051 +1 -1
index a84746b..3f33635 100755
@@ -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."
#2 lore raw
Quoted 9 lines · Eric Sandeen

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.

Quoted 6 lines

The first 2 files below are functional changes, creating the helper & using it in generic/085; the rest are just perl edit-in-place changes to use the new generic helper.

Looks good to me overall, generic/085 runs without problems and other affected tests are good too (I only tested generic/034).

Perhaps _dmerror_required() can be removed too, and update btrfs/100 and btrfs/101 to use the new helper?

And there's a trailing whitespace issue, see below

Quoted 35 lines

---

V2: assign _target using actual bash syntax! o_O
combine dmsetup stdout & stderr for target grep modprobe the target we're looking for
define cleanup_dmdev() before we _notrun, trap, and try to run it

common/rc +4 -9
index 3e97060..5110261 100644
@@ -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
-}

common/rc _require_sane_bdev_flush() · line 1361

Quoted 10 lines
common/rc +2 -8
-
-_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
+	modprobe dm-$_target >/dev/null 2>&1
+	

here

Thanks,
Eryu

Quoted 411 lines
common/rc +2 -1
+	$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
 }
 
tests/generic/085 +11 -11
index 8398752..8fb313c 100755
@@ -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"
 
tests/btrfs/049 +1 -1
index 5b17a77..38ed7ad 100755
@@ -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
 
tests/btrfs/056 +1 -1
index 9e9d92b..add8288 100755
@@ -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
tests/btrfs/085 +1 -1
index 44e476b..d82f79a 100755
@@ -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`"
tests/btrfs/095 +1 -1
index 032d1ff..854ba40 100755
@@ -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"
tests/btrfs/098 +1 -1
index c412c73..f12df5f 100755
@@ -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
 
tests/generic/034 +1 -1
index 966b3d2..ee889c2 100755
@@ -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
tests/generic/039 +1 -1
index 4bbfc50..35cb7a4 100755
@@ -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
tests/generic/040 +1 -1
index b44a433..3142bbb 100755
@@ -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
tests/generic/041 +1 -1
index 50fb26f..506d8a9 100755
@@ -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
tests/generic/056 +1 -1
index 8bb1522..2ec155f 100755
@@ -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
tests/generic/057 +1 -1
index 3b9f89e..c11c329 100755
@@ -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
tests/generic/059 +1 -1
index 13dfb09..4b9184a 100755
@@ -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"
 
tests/generic/065 +1 -1
index 739a4d5..ddab687 100755
@@ -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
tests/generic/066 +1 -1
index cb36506..211152d 100755
@@ -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
 
tests/generic/073 +1 -1
index 9cf0d90..759098d 100755
@@ -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
tests/generic/081 +1 -1
index 34da1ac..8334ec9 100755
@@ -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"
tests/generic/090 +1 -1
index a1f2b89..3890fc1 100755
@@ -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
tests/generic/101 +1 -1
index 9c46b42..ea98a89 100755
@@ -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
tests/generic/104 +1 -1
index fef3583..2eee638 100755
@@ -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
tests/generic/106 +1 -1
index 0afee41..e4f9cae 100755
@@ -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
tests/generic/107 +1 -1
index 7d107d7..7503e40 100755
@@ -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
tests/generic/311 +1 -1
index d21b6eb..f552011 100755
@@ -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
tests/generic/321 +1 -1
index c821a23..1a89880 100755
@@ -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
tests/generic/322 +1 -1
index 4c0edf6..324022b 100755
@@ -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
tests/generic/325 +1 -1
index 965a47c..94d30be 100755
@@ -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
tests/shared/002 +1 -1
index cc59cdb..cf02fcf 100755
@@ -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
 
tests/xfs/051 +1 -2
index a84746b..3f33635 100755
@@ -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."
 
 
--

To unsubscribe from this list: send the line "unsubscribe fstests" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html

#3 lore raw
In reply to Eric Sandeen

Hi Eric,

many thanks

re-tested

root[434] host (master) /home/angelo/xfstests

# ./start_xfs_test.sh
QA output created by 085
[  101.134541] XFS (mmcblk0p5): Mounting V4 Filesystem
[  101.728799] XFS (mmcblk0p5): Starting recovery (logdev: internal)
[  101.817723] XFS (mmcblk0p5): Ending recovery (logdev: internal)
085 not run: This test requires dm linear support

Worked.

Regards,
Angelo Dureghello

Quoted 467 lines · Eric Sandeen

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.

The first 2 files below are functional changes, creating the helper & using it in generic/085; the rest are just perl edit-in-place changes to use the new generic helper.

---

V2: assign _target using actual bash syntax! o_O
combine dmsetup stdout & stderr for target grep modprobe the target we're looking for
define cleanup_dmdev() before we _notrun, trap, and try to run it

common/rc +8 -18
index 3e97060..5110261 100644
@@ -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
-}
-
-_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
+	modprobe dm-$_target >/dev/null 2>&1
+	
+	$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
  }
 
tests/generic/085 +11 -11
index 8398752..8fb313c 100755
@@ -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"
 
tests/btrfs/049 +1 -1
index 5b17a77..38ed7ad 100755
@@ -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
 
tests/btrfs/056 +1 -1
index 9e9d92b..add8288 100755
@@ -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
tests/btrfs/085 +1 -1
index 44e476b..d82f79a 100755
@@ -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`"
tests/btrfs/095 +1 -1
index 032d1ff..854ba40 100755
@@ -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"
tests/btrfs/098 +1 -1
index c412c73..f12df5f 100755
@@ -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
 
tests/generic/034 +1 -1
index 966b3d2..ee889c2 100755
@@ -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
tests/generic/039 +1 -1
index 4bbfc50..35cb7a4 100755
@@ -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
tests/generic/040 +1 -1
index b44a433..3142bbb 100755
@@ -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
tests/generic/041 +1 -1
index 50fb26f..506d8a9 100755
@@ -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
tests/generic/056 +1 -1
index 8bb1522..2ec155f 100755
@@ -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
tests/generic/057 +1 -1
index 3b9f89e..c11c329 100755
@@ -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
tests/generic/059 +1 -1
index 13dfb09..4b9184a 100755
@@ -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"
 
tests/generic/065 +1 -1
index 739a4d5..ddab687 100755
@@ -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
tests/generic/066 +1 -1
index cb36506..211152d 100755
@@ -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
 
tests/generic/073 +1 -1
index 9cf0d90..759098d 100755
@@ -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
tests/generic/081 +1 -1
index 34da1ac..8334ec9 100755
@@ -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"
tests/generic/090 +1 -1
index a1f2b89..3890fc1 100755
@@ -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
tests/generic/101 +1 -1
index 9c46b42..ea98a89 100755
@@ -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
tests/generic/104 +1 -1
index fef3583..2eee638 100755
@@ -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
tests/generic/106 +1 -1
index 0afee41..e4f9cae 100755
@@ -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
tests/generic/107 +1 -1
index 7d107d7..7503e40 100755
@@ -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
tests/generic/311 +1 -1
index d21b6eb..f552011 100755
@@ -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
tests/generic/321 +1 -1
index c821a23..1a89880 100755
@@ -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
tests/generic/322 +1 -1
index 4c0edf6..324022b 100755
@@ -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
tests/generic/325 +1 -1
index 965a47c..94d30be 100755
@@ -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
tests/shared/002 +1 -1
index cc59cdb..cf02fcf 100755
@@ -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
 
tests/xfs/051 +1 -1
index a84746b..3f33635 100755
@@ -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."
Signature · 2 lines
Best regards,
Angelo Dureghello
#4 lore raw

PATCH v3 1/1 generic _require_dm_target() helper, use in generic/085

In reply to Eric Sandeen

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.

---

V2: assign _target using actual bash syntax! o_O
combine dmsetup stdout & stderr for target grep modprobe the target we're looking for
define cleanup_dmdev() before we _notrun, trap, and try to run it

V3: Fix whitespace
replace _dmerror_required in btrfs tests with _require_dm_target error

common/dmerror +0 -14
index a81856d..3900a4e 100644
@@ -18,20 +18,6 @@
 #
 # 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
common/rc +7 -17
index 3e97060..adf1edf 100644
@@ -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
 }
 
tests/btrfs/049 +1 -1
index 5b17a77..38ed7ad 100755
@@ -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
 
tests/btrfs/056 +1 -1
index 9e9d92b..add8288 100755
@@ -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
tests/btrfs/085 +1 -1
index 44e476b..d82f79a 100755
@@ -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`"
tests/btrfs/095 +1 -1
index 032d1ff..854ba40 100755
@@ -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"
tests/btrfs/098 +1 -1
index c412c73..f12df5f 100755
@@ -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
 
tests/btrfs/100 +1 -1
index 4343fcb..080d0ae 100755
@@ -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
 
tests/btrfs/101 +1 -1
index 5969ab6..0824de1 100755
@@ -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
 
tests/generic/034 +1 -1
index 966b3d2..ee889c2 100755
@@ -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
tests/generic/039 +1 -1
index 4bbfc50..35cb7a4 100755
@@ -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
tests/generic/040 +1 -1
index b44a433..3142bbb 100755
@@ -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
tests/generic/041 +1 -1
index 50fb26f..506d8a9 100755
@@ -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
tests/generic/056 +1 -1
index 8bb1522..2ec155f 100755
@@ -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
tests/generic/057 +1 -1
index 3b9f89e..c11c329 100755
@@ -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
tests/generic/059 +1 -1
index 13dfb09..4b9184a 100755
@@ -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"
 
tests/generic/065 +1 -1
index 739a4d5..ddab687 100755
@@ -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
tests/generic/066 +1 -1
index cb36506..211152d 100755
@@ -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
 
tests/generic/073 +1 -1
index 9cf0d90..759098d 100755
@@ -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
tests/generic/081 +1 -1
index 34da1ac..8334ec9 100755
@@ -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"
tests/generic/085 +11 -11
index 8398752..8fb313c 100755
@@ -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"
 
tests/generic/090 +1 -1
index a1f2b89..3890fc1 100755
@@ -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
tests/generic/101 +1 -1
index 9c46b42..ea98a89 100755
@@ -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
tests/generic/104 +1 -1
index fef3583..2eee638 100755
@@ -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
tests/generic/106 +1 -1
index 0afee41..e4f9cae 100755
@@ -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
tests/generic/107 +1 -1
index 7d107d7..7503e40 100755
@@ -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
tests/generic/311 +1 -1
index d21b6eb..f552011 100755
@@ -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
tests/generic/321 +1 -1
index c821a23..1a89880 100755
@@ -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
tests/generic/322 +1 -1
index 4c0edf6..324022b 100755
@@ -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
tests/generic/325 +1 -1
index 965a47c..94d30be 100755
@@ -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
tests/shared/002 +1 -1
index cc59cdb..cf02fcf 100755
@@ -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
 
tests/xfs/051 +1 -1
index a84746b..3f33635 100755
@@ -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."
Reviewed-by on v3 1/1
#5 lore raw
Quoted 9 lines · Eric Sandeen

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.

Quoted 6 lines

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

Looks good to me, thanks Eric!