From: Jianhong Yin <jiyin@redhat.com>
To: Eryu Guan <guaneryu@gmail.com>
Cc: "Jianhong.Yin" <yin-jianhong@163.com>, fstests@vger.kernel.org
Subject: Re: [PATCH v2] generic/430: add copy in same file test
Date: Mon, 16 Sep 2019 01:12:38 -0400 (EDT) [thread overview]
Message-ID: <1163861204.87989.1568610758519.JavaMail.zimbra@redhat.com> (raw)
In-Reply-To: <20190915055754.GL2622@desktop>
----- 原始邮件 -----
> 发件人: "Eryu Guan" <guaneryu@gmail.com>
> 收件人: "Jianhong.Yin" <yin-jianhong@163.com>
> 抄送: fstests@vger.kernel.org, jiyin@redhat.com
> 发送时间: 星期日, 2019年 9 月 15日 下午 1:58:01
> 主题: Re: [PATCH v2] generic/430: add copy in same file test
>
> On Wed, Sep 04, 2019 at 08:58:21PM +0800, Jianhong.Yin wrote:
> > now xfstests has not cover the senario that copy in same file
> > related bug:
> > copy_file_range return "Invalid argument" when copy in the same file
> > https://bugzilla.kernel.org/show_bug.cgi?id=202935
> >
> > step1:
> > copy whole file to itself, and compare with original file.
>
> This is explicitly forbidden by commit 96e6e8f4a68d ("vfs: add missing
> checks to copy_file_range").
Good to know.
so this test should be in generic/434 (error checking)
+ /* Don't allow overlapped copying within the same file. */
+ if (inode_in == inode_out &&
+ pos_out + count > pos_in &&
+ pos_out < pos_in + count)
+ return -EINVAL;
>
> > step2:
> > copy whole file to end of itself, and compare the two halves with the
> > original file
> > step3:
> > recover from original file.
> >
> > Signed-off-by: Jianhong Yin <yin-jianhong@163.com>
> > ---
> >
> > this is a base function test, I don't think we should add a new
> > test for it like 553 554, so add it in generic/430
> > what do you think?
> >
> > tests/generic/430 | 12 ++++++++++++
> > tests/generic/430.out | 4 ++++
> > 2 files changed, 16 insertions(+)
> >
> > diff --git a/tests/generic/430 b/tests/generic/430
> > index 1b11f60d..4ce0ee26 100755
> > --- a/tests/generic/430
> > +++ b/tests/generic/430
> > @@ -6,6 +6,7 @@
> > #
> > # Tests vfs_copy_file_range():
> > # - Copy a file
> > +# - Copy in same file
> > # - Copy beginning of original to new file
> > # - Copy middle of original to a new file
> > # - Copy end of original to new file
> > @@ -52,6 +53,17 @@ cmp $testdir/file $testdir/copy
> > echo "Original md5sums:"
> > md5sum $testdir/{file,copy} | _filter_test_dir
> >
> > +fsize=$(stat -c %s $testdir/copy)
> > +echo "Copy in same file"
> > +$XFS_IO_PROG -c "copy_range -l $fsize $testdir/copy" "$testdir/copy"
> > +cmp $testdir/file $testdir/copy
> > +$XFS_IO_PROG -c "copy_range -l $fsize -d $fsize $testdir/copy"
> > "$testdir/copy"
> > +cmp -n $fsize $testdir/file $testdir/copy
> > +cmp -i $fsize:0 $testdir/file $testdir/copy
>
> We should skip '0' from original file and $fsize from the copy, i.e.
>
> cmp -i 0:$fsize $testdir/file $testdir/copy
yes, had fixed in PATVH v3; will send PATCH v4(remove step 1)
Thanks
Jianhong
>
> Thanks,
> Eryu
>
> > +$XFS_IO_PROG -f -c "copy_range $testdir/file" "$testdir/copy"
> > +echo "md5sums after copying in same file and recover:"
> > +md5sum $testdir/{file,copy} | _filter_test_dir
> > +
> > echo "Copy beginning of original file"
> > $XFS_IO_PROG -f -c "copy_range -l 1000 $testdir/file" "$testdir/beginning"
> > cmp -n 1000 $testdir/file $testdir/beginning
> > diff --git a/tests/generic/430.out b/tests/generic/430.out
> > index 4b4ca75d..57584957 100644
> > --- a/tests/generic/430.out
> > +++ b/tests/generic/430.out
> > @@ -3,6 +3,10 @@ Create the original file and then copy
> > Original md5sums:
> > e11fbace556cba26bf0076e74cab90a3 TEST_DIR/test-430/file
> > e11fbace556cba26bf0076e74cab90a3 TEST_DIR/test-430/copy
> > +Copy in same file
> > +md5sums after copying in same file and recover:
> > +e11fbace556cba26bf0076e74cab90a3 TEST_DIR/test-430/file
> > +e11fbace556cba26bf0076e74cab90a3 TEST_DIR/test-430/copy
> > Copy beginning of original file
> > md5sums after copying beginning:
> > e11fbace556cba26bf0076e74cab90a3 TEST_DIR/test-430/file
> > --
> > 2.21.0
> >
>
next prev parent reply other threads:[~2019-09-16 5:12 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-09-04 12:58 [PATCH v2] generic/430: add copy in same file test Jianhong.Yin
2019-09-15 5:58 ` Eryu Guan
2019-09-16 5:12 ` Jianhong Yin [this message]
2019-09-16 6:27 ` //Re: " Jianhong Yin
2019-09-16 6:14 ` 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=1163861204.87989.1568610758519.JavaMail.zimbra@redhat.com \
--to=jiyin@redhat.com \
--cc=fstests@vger.kernel.org \
--cc=guaneryu@gmail.com \
--cc=yin-jianhong@163.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 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.