From: Chao Yu <chao@kernel.org>
To: Zorro Lang <zlang@kernel.org>, fstests@vger.kernel.org
Cc: jaegeuk@kernel.org, linux-f2fs-devel@lists.sourceforge.net,
Chao Yu <chao@kernel.org>
Subject: [PATCH v2] common/f2fs: introduce _require_f2fs_io_command
Date: Mon, 22 Jun 2026 02:05:16 +0000 [thread overview]
Message-ID: <20260622020516.2372277-1-chao@kernel.org> (raw)
Update existing f2fs testcases to utilize the new
_require_f2fs_io_command() helper for verifying required f2fs_io
subcommands instead of basic executable checks or open coding.
Suggested-by: Zorro Lang <zlang@kernel.org>
Signed-off-by: Chao Yu <chao@kernel.org>
---
v2: add Suggested-by tag of Zorro
common/f2fs | 16 ++++++++++++++++
tests/f2fs/003 | 1 +
tests/f2fs/004 | 1 +
tests/f2fs/007 | 1 +
tests/f2fs/009 | 1 +
tests/f2fs/010 | 2 +-
tests/f2fs/011 | 2 +-
tests/f2fs/012 | 2 +-
tests/f2fs/013 | 2 +-
tests/f2fs/025 | 2 +-
10 files changed, 25 insertions(+), 5 deletions(-)
diff --git a/common/f2fs b/common/f2fs
index 82d3102ea..025d29a76 100644
--- a/common/f2fs
+++ b/common/f2fs
@@ -96,3 +96,19 @@ _require_inject_f2fs_command()
$F2FS_INJECT_PROG "--$metaarea" "$val" "-h" | grep "$member:" > /dev/null || \
_notrun "--$metaarea --mb $member support is missing"
}
+
+# Check that f2fs_io supports specific subcommand(s)
+_require_f2fs_io_command()
+{
+ _require_command "$F2FS_IO_PROG" f2fs_io
+
+ if [ -z "$1" ]; then
+ echo "Usage: _require_f2fs_io_command command..." 1>&2
+ _exit 1
+ fi
+
+ for command in "$@"; do
+ $F2FS_IO_PROG help | awk '{print $1}' | grep -qw "$command" || \
+ _notrun "f2fs_io $command support is missing"
+ done
+}
diff --git a/tests/f2fs/003 b/tests/f2fs/003
index fbb08a3e9..94885904c 100755
--- a/tests/f2fs/003
+++ b/tests/f2fs/003
@@ -30,6 +30,7 @@ _fixed_by_kernel_commit b40a2b003709 \
_require_scratch
_require_xfs_io_command "fpunch"
+_require_f2fs_io_command "write" "gc"
_scratch_mkfs >> $seqres.full
_scratch_mount >> $seqres.full
diff --git a/tests/f2fs/004 b/tests/f2fs/004
index ac824c437..0592e23c4 100755
--- a/tests/f2fs/004
+++ b/tests/f2fs/004
@@ -30,6 +30,7 @@ _fixed_by_kernel_commit b2c160f4f3cf \
_require_scratch
_require_odirect
+_require_f2fs_io_command "write"
_scratch_mkfs >> $seqres.full
_scratch_mount >> $seqres.full
diff --git a/tests/f2fs/007 b/tests/f2fs/007
index 37388433e..e45b6cea9 100755
--- a/tests/f2fs/007
+++ b/tests/f2fs/007
@@ -15,6 +15,7 @@ _fixed_by_kernel_commit 26413ce18e85 \
"f2fs: compress: fix inconsistent update of i_blocks in release_compress_blocks and reserve_compress_blocks"
_require_scratch
+_require_f2fs_io_command "compress" "get_cblocks" "release_cblocks" "reserve_cblocks" "decompress"
testfile_prefix=$SCRATCH_MNT/testfile
fio_config=$tmp.fio
diff --git a/tests/f2fs/009 b/tests/f2fs/009
index 39a4bad3d..afb3bc98f 100755
--- a/tests/f2fs/009
+++ b/tests/f2fs/009
@@ -15,6 +15,7 @@ _require_scratch
_require_scratch_shutdown
_require_inject_f2fs_command node i_links
_require_command "$(type -P socket)" socket
+_require_f2fs_io_command "write"
_fixed_by_git_commit f2fs-tools 958cd6e \
"fsck.f2fs: support to repair corrupted i_links"
diff --git a/tests/f2fs/010 b/tests/f2fs/010
index 50e378177..b8899dedc 100755
--- a/tests/f2fs/010
+++ b/tests/f2fs/010
@@ -30,7 +30,7 @@ _fixed_by_kernel_commit 03511e936916 \
"f2fs: fix inconsistent dirty state of atomic file"
_require_scratch
-_require_command "$F2FS_IO_PROG" f2fs_io
+_require_f2fs_io_command "write"
_scratch_mkfs >> $seqres.full
_scratch_mount >> $seqres.full
diff --git a/tests/f2fs/011 b/tests/f2fs/011
index 07c94d8c9..aa939c9e7 100755
--- a/tests/f2fs/011
+++ b/tests/f2fs/011
@@ -27,7 +27,7 @@ _fixed_by_kernel_commit f7f8932ca6bb \
"f2fs: fix to avoid running out of free segments"
_require_scratch
-_require_command "$F2FS_IO_PROG" f2fs_io
+_require_f2fs_io_command "pinfile"
_scratch_mkfs_sized $((1*1024*1024*1024)) >> $seqres.full
_scratch_mount -o checkpoint=disable:10%
diff --git a/tests/f2fs/012 b/tests/f2fs/012
index 53d54bf6b..15b0e5055 100755
--- a/tests/f2fs/012
+++ b/tests/f2fs/012
@@ -19,7 +19,7 @@ _fixed_by_kernel_commit 91b587ba79e1 \
export LC_ALL=C.UTF-8
_require_scratch_nocheck
-_require_command "$F2FS_IO_PROG" f2fs_io
+_require_f2fs_io_command "setflags"
_require_inject_f2fs_command dent d_hash
#check whether f2fs supports "lookup_mode=x" mount option
diff --git a/tests/f2fs/013 b/tests/f2fs/013
index 80ed2702b..086a5b4bb 100755
--- a/tests/f2fs/013
+++ b/tests/f2fs/013
@@ -19,7 +19,7 @@
. ./common/preamble
_begin_fstest auto quick
_require_kernel_config CONFIG_F2FS_FAULT_INJECTION
-_require_command "$F2FS_IO_PROG" f2fs_io
+_require_f2fs_io_command "write" "fsync"
_cleanup()
{
diff --git a/tests/f2fs/025 b/tests/f2fs/025
index 807f18f23..6fc18d989 100755
--- a/tests/f2fs/025
+++ b/tests/f2fs/025
@@ -20,7 +20,7 @@ _require_scratch
_require_scratch_shutdown
_require_xfs_io_command "pwrite"
_require_xfs_io_command "truncate"
-_require_command "$F2FS_IO_PROG" f2fs_io
+_require_f2fs_io_command gc_urgent
_require_fs_sysfs_attr $TEST_DEV gc_urgent
_require_check_dmesg
--
2.49.0
WARNING: multiple messages have this Message-ID (diff)
From: Chao Yu via Linux-f2fs-devel <linux-f2fs-devel@lists.sourceforge.net>
To: Zorro Lang <zlang@kernel.org>, fstests@vger.kernel.org
Cc: jaegeuk@kernel.org, linux-f2fs-devel@lists.sourceforge.net
Subject: [f2fs-dev] [PATCH v2] common/f2fs: introduce _require_f2fs_io_command
Date: Mon, 22 Jun 2026 02:05:16 +0000 [thread overview]
Message-ID: <20260622020516.2372277-1-chao@kernel.org> (raw)
Update existing f2fs testcases to utilize the new
_require_f2fs_io_command() helper for verifying required f2fs_io
subcommands instead of basic executable checks or open coding.
Suggested-by: Zorro Lang <zlang@kernel.org>
Signed-off-by: Chao Yu <chao@kernel.org>
---
v2: add Suggested-by tag of Zorro
common/f2fs | 16 ++++++++++++++++
tests/f2fs/003 | 1 +
tests/f2fs/004 | 1 +
tests/f2fs/007 | 1 +
tests/f2fs/009 | 1 +
tests/f2fs/010 | 2 +-
tests/f2fs/011 | 2 +-
tests/f2fs/012 | 2 +-
tests/f2fs/013 | 2 +-
tests/f2fs/025 | 2 +-
10 files changed, 25 insertions(+), 5 deletions(-)
diff --git a/common/f2fs b/common/f2fs
index 82d3102ea..025d29a76 100644
--- a/common/f2fs
+++ b/common/f2fs
@@ -96,3 +96,19 @@ _require_inject_f2fs_command()
$F2FS_INJECT_PROG "--$metaarea" "$val" "-h" | grep "$member:" > /dev/null || \
_notrun "--$metaarea --mb $member support is missing"
}
+
+# Check that f2fs_io supports specific subcommand(s)
+_require_f2fs_io_command()
+{
+ _require_command "$F2FS_IO_PROG" f2fs_io
+
+ if [ -z "$1" ]; then
+ echo "Usage: _require_f2fs_io_command command..." 1>&2
+ _exit 1
+ fi
+
+ for command in "$@"; do
+ $F2FS_IO_PROG help | awk '{print $1}' | grep -qw "$command" || \
+ _notrun "f2fs_io $command support is missing"
+ done
+}
diff --git a/tests/f2fs/003 b/tests/f2fs/003
index fbb08a3e9..94885904c 100755
--- a/tests/f2fs/003
+++ b/tests/f2fs/003
@@ -30,6 +30,7 @@ _fixed_by_kernel_commit b40a2b003709 \
_require_scratch
_require_xfs_io_command "fpunch"
+_require_f2fs_io_command "write" "gc"
_scratch_mkfs >> $seqres.full
_scratch_mount >> $seqres.full
diff --git a/tests/f2fs/004 b/tests/f2fs/004
index ac824c437..0592e23c4 100755
--- a/tests/f2fs/004
+++ b/tests/f2fs/004
@@ -30,6 +30,7 @@ _fixed_by_kernel_commit b2c160f4f3cf \
_require_scratch
_require_odirect
+_require_f2fs_io_command "write"
_scratch_mkfs >> $seqres.full
_scratch_mount >> $seqres.full
diff --git a/tests/f2fs/007 b/tests/f2fs/007
index 37388433e..e45b6cea9 100755
--- a/tests/f2fs/007
+++ b/tests/f2fs/007
@@ -15,6 +15,7 @@ _fixed_by_kernel_commit 26413ce18e85 \
"f2fs: compress: fix inconsistent update of i_blocks in release_compress_blocks and reserve_compress_blocks"
_require_scratch
+_require_f2fs_io_command "compress" "get_cblocks" "release_cblocks" "reserve_cblocks" "decompress"
testfile_prefix=$SCRATCH_MNT/testfile
fio_config=$tmp.fio
diff --git a/tests/f2fs/009 b/tests/f2fs/009
index 39a4bad3d..afb3bc98f 100755
--- a/tests/f2fs/009
+++ b/tests/f2fs/009
@@ -15,6 +15,7 @@ _require_scratch
_require_scratch_shutdown
_require_inject_f2fs_command node i_links
_require_command "$(type -P socket)" socket
+_require_f2fs_io_command "write"
_fixed_by_git_commit f2fs-tools 958cd6e \
"fsck.f2fs: support to repair corrupted i_links"
diff --git a/tests/f2fs/010 b/tests/f2fs/010
index 50e378177..b8899dedc 100755
--- a/tests/f2fs/010
+++ b/tests/f2fs/010
@@ -30,7 +30,7 @@ _fixed_by_kernel_commit 03511e936916 \
"f2fs: fix inconsistent dirty state of atomic file"
_require_scratch
-_require_command "$F2FS_IO_PROG" f2fs_io
+_require_f2fs_io_command "write"
_scratch_mkfs >> $seqres.full
_scratch_mount >> $seqres.full
diff --git a/tests/f2fs/011 b/tests/f2fs/011
index 07c94d8c9..aa939c9e7 100755
--- a/tests/f2fs/011
+++ b/tests/f2fs/011
@@ -27,7 +27,7 @@ _fixed_by_kernel_commit f7f8932ca6bb \
"f2fs: fix to avoid running out of free segments"
_require_scratch
-_require_command "$F2FS_IO_PROG" f2fs_io
+_require_f2fs_io_command "pinfile"
_scratch_mkfs_sized $((1*1024*1024*1024)) >> $seqres.full
_scratch_mount -o checkpoint=disable:10%
diff --git a/tests/f2fs/012 b/tests/f2fs/012
index 53d54bf6b..15b0e5055 100755
--- a/tests/f2fs/012
+++ b/tests/f2fs/012
@@ -19,7 +19,7 @@ _fixed_by_kernel_commit 91b587ba79e1 \
export LC_ALL=C.UTF-8
_require_scratch_nocheck
-_require_command "$F2FS_IO_PROG" f2fs_io
+_require_f2fs_io_command "setflags"
_require_inject_f2fs_command dent d_hash
#check whether f2fs supports "lookup_mode=x" mount option
diff --git a/tests/f2fs/013 b/tests/f2fs/013
index 80ed2702b..086a5b4bb 100755
--- a/tests/f2fs/013
+++ b/tests/f2fs/013
@@ -19,7 +19,7 @@
. ./common/preamble
_begin_fstest auto quick
_require_kernel_config CONFIG_F2FS_FAULT_INJECTION
-_require_command "$F2FS_IO_PROG" f2fs_io
+_require_f2fs_io_command "write" "fsync"
_cleanup()
{
diff --git a/tests/f2fs/025 b/tests/f2fs/025
index 807f18f23..6fc18d989 100755
--- a/tests/f2fs/025
+++ b/tests/f2fs/025
@@ -20,7 +20,7 @@ _require_scratch
_require_scratch_shutdown
_require_xfs_io_command "pwrite"
_require_xfs_io_command "truncate"
-_require_command "$F2FS_IO_PROG" f2fs_io
+_require_f2fs_io_command gc_urgent
_require_fs_sysfs_attr $TEST_DEV gc_urgent
_require_check_dmesg
--
2.49.0
_______________________________________________
Linux-f2fs-devel mailing list
Linux-f2fs-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel
next reply other threads:[~2026-06-22 2:05 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-06-22 2:05 Chao Yu [this message]
2026-06-22 2:05 ` [f2fs-dev] [PATCH v2] common/f2fs: introduce _require_f2fs_io_command Chao Yu via Linux-f2fs-devel
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=20260622020516.2372277-1-chao@kernel.org \
--to=chao@kernel.org \
--cc=fstests@vger.kernel.org \
--cc=jaegeuk@kernel.org \
--cc=linux-f2fs-devel@lists.sourceforge.net \
--cc=zlang@kernel.org \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.