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.
Signed-off-by: Chao Yu <[email protected]> --- 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 [email protected] https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel
