On Mon, Aug 11, 2025 at 05:44:14PM +0800, Chao Yu wrote:
> This is a regression test:
> 1. create a file
> 2. write file to create a direct node at special offset
> 3. use inject.f2fs to inject nid of direct node w/ ino of the inode
> 4. check whether f2fs kernel module will detect and report such
>    corruption in the fil
> 
> Signed-off-by: Chao Yu <c...@kernel.org>
> ---
>  tests/f2fs/019     | 45 +++++++++++++++++++++++++++++++++++++++++++++
>  tests/f2fs/019.out |  2 ++
>  2 files changed, 47 insertions(+)
>  create mode 100755 tests/f2fs/019
>  create mode 100644 tests/f2fs/019.out
> 
> diff --git a/tests/f2fs/019 b/tests/f2fs/019
> new file mode 100755
> index 00000000..0a02eb2f
> --- /dev/null
> +++ b/tests/f2fs/019
> @@ -0,0 +1,45 @@
> +#! /bin/bash
> +# SPDX-License-Identifier: GPL-2.0
> +# Copyright (c) 2025 Chao Yu.  All Rights Reserved.
> +#
> +# FS QA Test No. f2fs/019
> +#
> +# This is a regression test:
> +# 1. create a file
> +# 2. write file to create a direct node at special offset
> +# 3. use inject.f2fs to inject nid of direct node w/ ino of the inode
> +# 4. check whether f2fs kernel module will detect and report such
> +#    corruption in the file
> +#
> +. ./common/preamble
> +_begin_fstest auto quick rw compress
> +
> +_cleanup()
> +{
> +     _scratch_mkfs >> $seqres.full

Why mkfs SCRATCH_DEV in _cleanup ?

> +}
> +
> +_fixed_by_kernel_commit 77de19b6867f \
> +     "f2fs: fix to avoid out-of-boundary access in dnode page"
> +
> +export MKFS_OPTIONS=""

Can you give it a comment about why we need to clean mkfs option at here?

> +_require_scratch

Oh, if this case tends to have a corrupted SCRATCH_DEV, you can use
_require_scratch_nocheck at here, don't need to mkfs in _cleanup.

> +_require_command "$F2FS_INJECT_PROG" inject.f2fs
> +
> +testfile=$SCRATCH_MNT/testfile
> +
> +_scratch_mkfs >> $seqres.full
> +_scratch_mount
> +
> +xfs_io -f -c "pwrite 3738M 1M" -c "fsync" $testfile >> $seqres.full
   ^^^^^^
$XFS_IO_PROG

> +
> +_scratch_unmount
> +
> +$F2FS_INJECT_PROG --node --mb addr --nid 5 --idx 937 --val 4 $SCRATCH_DEV >> 
> $seqres.full
> +
> +_scratch_mount
> +xfs_io -c "pread 3700M 40M" $testfile
   ^^^^^^
$XFS_IO_PROG

> +_scratch_unmount
> +
> +status=0
> +exit
> diff --git a/tests/f2fs/019.out b/tests/f2fs/019.out
> new file mode 100644
> index 00000000..2f7469e2
> --- /dev/null
> +++ b/tests/f2fs/019.out
> @@ -0,0 +1,2 @@
> +QA output created by 019
> +pread: Structure needs cleaning
> -- 
> 2.49.0
> 



_______________________________________________
Linux-f2fs-devel mailing list
Linux-f2fs-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel

Reply via email to