For example:
_supported_fs ^xfs
There is no need to specify "generic" when using a block list
"all other fs are supported" is implied.
Converted some generic tests that open code this condition without
emitting a meaningful reason.
More generic test like generic/186,187 could use a block list, but
were not converted because they emit some meaningful reason:
_notrun "Can't fragment free space on btrfs."
Signed-off-by: Amir Goldstein <amir73il@gmail.com>
Signed-off-by: Zorro Lang <zlang@kernel.org>
# tests whether $FSTYP is one of the supported filesystems for a test
#
# tests whether $FSTYP is one of the supported filesystems for a test
#
- for f
- do
- if [ "$f" = "$FSTYP" -o "$f" = "generic" ]
- then
- return
- fi
- done
+ for f; do
+ # ^FS means black listed fs
+ if [ "$f" = "^$FSTYP" ]; then
+ return 1
+ elif [ "$f" = "generic" ] || [[ "$f" == "^"* ]]; then
+ # ^FS implies "generic ^FS"
+ res=0
+ elif [ "$f" = "$FSTYP" ]; then
+ return 0
+ fi
+ done
+ return $res
+}
- _notrun "not suitable for this filesystem type: $FSTYP"
+_supported_fs()
+{
+ _check_supported_fs $* || \
+ _notrun "not suitable for this filesystem type: $FSTYP"
}
_check_if_dev_already_mounted()
}
_check_if_dev_already_mounted()
. ./common/dmthin
# real QA test starts here
. ./common/dmthin
# real QA test starts here
_require_scratch_nocheck
_require_dm_target thin-pool
_require_scratch_nocheck
_require_dm_target thin-pool
# and since we've filled the thinp device it'll return EIO, which will make
# btrfs flip read only, making it fail this test when it just won't work right
# for us in the first place.
# and since we've filled the thinp device it'll return EIO, which will make
# btrfs flip read only, making it fail this test when it just won't work right
# for us in the first place.
-test $FSTYP == "btrfs" && _notrun "btrfs doesn't work that way lol"
# Require underlying device support discard
_scratch_mkfs >>$seqres.full 2>&1
# Require underlying device support discard
_scratch_mkfs >>$seqres.full 2>&1
. ./common/attr
# real QA test starts here
. ./common/attr
# real QA test starts here
_require_scratch
_require_attrs trusted
_require_scratch
_require_attrs trusted
-test "$FSTYP" = "overlay" && _notrun "Test does not apply to overlayfs."
_require_extra_fs overlay
_scratch_mkfs >> $seqres.full
_require_extra_fs overlay
_scratch_mkfs >> $seqres.full
# real QA test starts here
# real QA test starts here
_require_scratch
_require_xfs_io_command "falloc"
_require_xfs_io_command "fiemap"
_require_scratch
_require_xfs_io_command "falloc"
_require_xfs_io_command "fiemap"
#
# https://lore.kernel.org/linux-btrfs/20220315164011.GF8241@magnolia/
#
#
# https://lore.kernel.org/linux-btrfs/20220315164011.GF8241@magnolia/
#
-[ $FSTYP == "xfs" ] && _notrun "test not valid for xfs"