public inbox for fstests@vger.kernel.org
 help / color / mirror / Atom feed
From: "Darrick J. Wong" <darrick.wong@oracle.com>
To: Dave Chinner <david@fromorbit.com>
Cc: fstests@vger.kernel.org
Subject: Re: [PATCH 2/3] generic/43[014]: copy_range beyond source EOF should fail
Date: Mon, 3 Dec 2018 08:47:05 -0800	[thread overview]
Message-ID: <20181203164705.GD8115@magnolia> (raw)
In-Reply-To: <20181203064256.26768-3-david@fromorbit.com>

On Mon, Dec 03, 2018 at 05:42:55PM +1100, Dave Chinner wrote:
> From: Dave Chinner <dchinner@redhat.com>
> 
> As per the copy_file_range() man page:
> 
> EINVAL
> 	Requested range extends beyond the end of the source file;
> .....
> 
> These tests actually attempt to copy beyond the end of the source
> file and so should fail with EINVAL. The kernel does not check this
> and so needs fixing. These operations should fail, so fix the tests.
> 
> Also move the tests to the copy_range group so they are distinct
> from the copy group which refers to xfs_copy tests.
> 
> Signed-off-by: Dave Chinner <dchinner@redhat.com>

Looks ok; sorry I didn't notice this on the original patch.

Reviewed-by: Darrick J. Wong <darrick.wong@oracle.com>

--D

> ---
>  tests/generic/430     |  5 +----
>  tests/generic/430.out |  6 ++----
>  tests/generic/431     |  1 +
>  tests/generic/431.out |  1 +
>  tests/generic/434     |  5 +++--
>  tests/generic/434.out |  4 ++--
>  tests/generic/group   | 10 +++++-----
>  7 files changed, 15 insertions(+), 17 deletions(-)
> 
> diff --git a/tests/generic/430 b/tests/generic/430
> index 1b11f60df059..ab15ce0e37d4 100755
> --- a/tests/generic/430
> +++ b/tests/generic/430
> @@ -70,11 +70,8 @@ cmp -n 1000 $testdir/file $testdir/end 4000
>  echo "md5sums after copying end:"
>  md5sum $testdir/{file,end} | _filter_test_dir
>  
> -echo "Copy beyond end of original file"
> +echo "Copy beyond end of original file - should fail"
>  $XFS_IO_PROG -f -c "copy_range -s 4000 -l 2000 $testdir/file" "$testdir/beyond"
> -cmp -n 1000 $testdir/file $testdir/beyond 4000
> -echo "md5sums after copying beyond:"
> -md5sum $testdir/{file,beyond} | _filter_test_dir
>  
>  echo "Copy creates hole in target file"
>  $XFS_IO_PROG -f -c "copy_range -s 1000 -l 3000 -d 1000 $testdir/file" "$testdir/hole"
> diff --git a/tests/generic/430.out b/tests/generic/430.out
> index 4b4ca75d5980..8dd7870658cb 100644
> --- a/tests/generic/430.out
> +++ b/tests/generic/430.out
> @@ -15,10 +15,8 @@ Copy end of original file
>  md5sums after copying end:
>  e11fbace556cba26bf0076e74cab90a3  TEST_DIR/test-430/file
>  e68d4a150c4e42f4f9ea3ffe4c9cf4ed  TEST_DIR/test-430/end
> -Copy beyond end of original file
> -md5sums after copying beyond:
> -e11fbace556cba26bf0076e74cab90a3  TEST_DIR/test-430/file
> -e68d4a150c4e42f4f9ea3ffe4c9cf4ed  TEST_DIR/test-430/beyond
> +Copy beyond end of original file - should fail
> +copy_range: Invalid argument
>  Copy creates hole in target file
>  md5sums after creating hole:
>  e11fbace556cba26bf0076e74cab90a3  TEST_DIR/test-430/file
> diff --git a/tests/generic/431 b/tests/generic/431
> index f04ae2152bae..273068c78d40 100755
> --- a/tests/generic/431
> +++ b/tests/generic/431
> @@ -52,6 +52,7 @@ $XFS_IO_PROG -f -c "copy_range -s 2 -l 1      $testdir/file" "$testdir/c"
>  $XFS_IO_PROG -f -c "copy_range -s 3 -l 1      $testdir/file" "$testdir/d"
>  $XFS_IO_PROG -f -c "copy_range -s 4 -l 1      $testdir/file" "$testdir/e"
>  $XFS_IO_PROG -f -c "copy_range -s 4 -l 1 -d 1 $testdir/file" "$testdir/f"
> +# this should fail with EINVAL and leave an empty file behind.
>  $XFS_IO_PROG -f -c "copy_range -s 5 -l 1      $testdir/file" "$testdir/g"
>  echo -n "a"    | cmp $testdir/a
>  echo -n "b"    | cmp $testdir/b
> diff --git a/tests/generic/431.out b/tests/generic/431.out
> index 978c4a1b56fc..834a5db6f56f 100644
> --- a/tests/generic/431.out
> +++ b/tests/generic/431.out
> @@ -4,6 +4,7 @@ Original md5sums:
>  ab56b4d92b40713acc5af89985d4b786  TEST_DIR/test-431/file
>  ab56b4d92b40713acc5af89985d4b786  TEST_DIR/test-431/copy
>  Small copies from various points in the original file
> +copy_range: Invalid argument
>  md5sums after small copies
>  ab56b4d92b40713acc5af89985d4b786  TEST_DIR/test-431/file
>  0cc175b9c0f1b6a831c399e269772661  TEST_DIR/test-431/a
> diff --git a/tests/generic/434 b/tests/generic/434
> index 032f933dff76..4bcaf9bac04b 100755
> --- a/tests/generic/434
> +++ b/tests/generic/434
> @@ -41,15 +41,16 @@ $XFS_IO_PROG -f -c 'pwrite -S 0x61 0 1000' $testdir/file >> $seqres.full 2>&1
>  mknod $testdir/dev1 c 1 3
>  mkfifo $testdir/fifo
>  
> -echo "Try to copy when source pos > source size"
> +echo "Try to copy when source pos > source size - should fail"
>  $XFS_IO_PROG -f -c "copy_range -s 1000 -l 100 $testdir/file" "$testdir/copy"
> -md5sum $testdir/copy | _filter_test_dir
>  
>  echo "Try to copy to a read-only file"
> +rm -f $testdir/copy
>  $XFS_IO_PROG -r -f -c "copy_range -s 0 -l 100 $testdir/file" "$testdir/copy"
>  md5sum $testdir/copy | _filter_test_dir
>  
>  echo "Try to copy to an append-only file"
> +rm -f $testdir/copy
>  $XFS_IO_PROG -a -f -c "copy_range -s 0 -l 100 $testdir/file" "$testdir/copy"
>  md5sum $testdir/copy | _filter_test_dir
>  
> diff --git a/tests/generic/434.out b/tests/generic/434.out
> index 4532ebbaf864..3659592b949b 100644
> --- a/tests/generic/434.out
> +++ b/tests/generic/434.out
> @@ -1,7 +1,7 @@
>  QA output created by 434
>  Create the original files
> -Try to copy when source pos > source size
> -d41d8cd98f00b204e9800998ecf8427e  TEST_DIR/test-434/copy
> +Try to copy when source pos > source size - should fail
> +copy_range: Invalid argument
>  Try to copy to a read-only file
>  copy_range: Bad file descriptor
>  d41d8cd98f00b204e9800998ecf8427e  TEST_DIR/test-434/copy
> diff --git a/tests/generic/group b/tests/generic/group
> index 58318608e7a9..cc05792ba3b6 100644
> --- a/tests/generic/group
> +++ b/tests/generic/group
> @@ -432,11 +432,11 @@
>  427 auto quick aio rw
>  428 auto quick dax
>  429 auto encrypt
> -430 auto quick copy
> -431 auto quick copy
> -432 auto quick copy
> -433 auto quick copy
> -434 auto quick copy
> +430 auto quick copy_range
> +431 auto quick copy_range
> +432 auto quick copy_range
> +433 auto quick copy_range
> +434 auto quick copy_range
>  435 auto encrypt
>  436 auto quick rw
>  437 auto quick dax
> -- 
> 2.19.1
> 

  parent reply	other threads:[~2018-12-03 16:47 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-12-03  6:42 [PATCH 0/3] fstests: copy_file_range() bounds testing Dave Chinner
2018-12-03  6:42 ` [PATCH 1/3] common: add _require_test_swapfile Dave Chinner
2018-12-03 16:43   ` Darrick J. Wong
2018-12-13 12:16   ` Xiao Yang
2018-12-18 21:54     ` Dave Chinner
2018-12-03  6:42 ` [PATCH 2/3] generic/43[014]: copy_range beyond source EOF should fail Dave Chinner
2018-12-03  7:30   ` Amir Goldstein
2018-12-03  8:10     ` Dave Chinner
2018-12-03 16:47   ` Darrick J. Wong [this message]
2018-12-05 22:23   ` Dave Chinner
2018-12-03  6:42 ` [PATCH 3/3] generic: copy_file_range bounds test Dave Chinner
2018-12-03  7:25   ` Amir Goldstein
2018-12-03  8:17     ` Dave Chinner
2018-12-03  9:22       ` Amir Goldstein
2018-12-03 13:15         ` Amir Goldstein
2019-05-13  6:03         ` Amir Goldstein
2018-12-03 16:58   ` Darrick J. Wong
2019-05-21  5:33   ` Amir Goldstein
2018-12-03 16:41 ` [PATCH 0/3] fstests: copy_file_range() bounds testing Darrick J. Wong

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=20181203164705.GD8115@magnolia \
    --to=darrick.wong@oracle.com \
    --cc=david@fromorbit.com \
    --cc=fstests@vger.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox