From: Amir Goldstein <amir73il@gmail.com>
To: Zorro Lang <zlang@redhat.com>, Eryu Guan <guaneryu@gmail.com>
Cc: fstests@vger.kernel.org
Subject: [PATCH v2 1/2] common: support black listing fs in _supported_fs()
Date: Tue, 19 Apr 2022 15:56:36 +0300 [thread overview]
Message-ID: <20220419125637.2502181-2-amir73il@gmail.com> (raw)
In-Reply-To: <20220419125637.2502181-1-amir73il@gmail.com>
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>
---
common/rc | 30 ++++++++++++++++++++----------
tests/generic/500 | 3 +--
tests/generic/631 | 3 +--
tests/generic/679 | 3 +--
4 files changed, 23 insertions(+), 16 deletions(-)
diff --git a/common/rc b/common/rc
index 553ae350..ae201f87 100644
--- a/common/rc
+++ b/common/rc
@@ -1580,19 +1580,29 @@ _fail()
# tests whether $FSTYP is one of the supported filesystems for a test
#
-_supported_fs()
+_check_supported_fs()
{
- local f
+ local res=1
+ local f
- 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 a FS on a device is mounted
diff --git a/tests/generic/500 b/tests/generic/500
index 0be59934..bc84d219 100755
--- a/tests/generic/500
+++ b/tests/generic/500
@@ -35,7 +35,6 @@ _cleanup()
. ./common/dmthin
# real QA test starts here
-_supported_fs generic
_require_scratch_nocheck
_require_dm_target thin-pool
@@ -43,7 +42,7 @@ _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.
-test $FSTYP == "btrfs" && _notrun "btrfs doesn't work that way lol"
+_supported_fs ^btrfs
# Require underlying device support discard
_scratch_mkfs >>$seqres.full 2>&1
diff --git a/tests/generic/631 b/tests/generic/631
index 4996bce7..219f7a05 100755
--- a/tests/generic/631
+++ b/tests/generic/631
@@ -36,10 +36,9 @@ _cleanup()
. ./common/attr
# real QA test starts here
-_supported_fs generic
_require_scratch
_require_attrs trusted
-test "$FSTYP" = "overlay" && _notrun "Test does not apply to overlayfs."
+_supported_fs ^overlay
_require_extra_fs overlay
_scratch_mkfs >> $seqres.full
diff --git a/tests/generic/679 b/tests/generic/679
index 440f0c08..c32d42b9 100755
--- a/tests/generic/679
+++ b/tests/generic/679
@@ -17,7 +17,6 @@ _begin_fstest auto quick prealloc
# real QA test starts here
-_supported_fs generic
_require_scratch
_require_xfs_io_command "falloc"
_require_xfs_io_command "fiemap"
@@ -26,7 +25,7 @@ _require_xfs_io_command "fiemap"
#
# https://lore.kernel.org/linux-btrfs/20220315164011.GF8241@magnolia/
#
-[ $FSTYP == "xfs" ] && _notrun "test not valid for xfs"
+_supported_fs ^xfs
rm -f $seqres.full
--
2.25.1
next prev parent reply other threads:[~2022-04-19 12:56 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-04-19 12:56 [PATCH v2 0/2] Annonate fstests with possible reasons for failure Amir Goldstein
2022-04-19 12:56 ` Amir Goldstein [this message]
2022-04-19 12:56 ` [PATCH v2 2/2] common: print hints for reasons of test failures Amir Goldstein
2022-05-02 4:04 ` [PATCH v2 0/2] Annonate fstests with possible reasons for failure Zorro Lang
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20220419125637.2502181-2-amir73il@gmail.com \
--to=amir73il@gmail.com \
--cc=fstests@vger.kernel.org \
--cc=guaneryu@gmail.com \
--cc=zlang@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox