* [PATCH] fstests: generic/353 should accomodate other pwrite behaviors
@ 2023-08-30 12:50 Bill O'Donnell
2023-08-31 16:46 ` Bill O'Donnell
2023-09-01 15:48 ` Zorro Lang
0 siblings, 2 replies; 4+ messages in thread
From: Bill O'Donnell @ 2023-08-30 12:50 UTC (permalink / raw)
To: fstests; +Cc: Bill O'Donnell
xfs_io pwrite issues a series of block size writes, but there is no
guarantee that the resulting extent(s) will be singular or contiguous.
This behavior is acceptable, but the test is flawed in that it expects
a single extent for a pwrite.
Modify test to use actual blocksize for pwrite and reflink. Also
modify it to accommodate pwrite and reflink that produce different
mapping results.
Signed-off-by: Bill O'Donnell <bodonnel@redhat.com>
---
tests/generic/353 | 27 ++++++++++++++-------------
tests/generic/353.out | 14 --------------
2 files changed, 14 insertions(+), 27 deletions(-)
diff --git a/tests/generic/353 b/tests/generic/353
index 9a1471bd..03b038a6 100755
--- a/tests/generic/353
+++ b/tests/generic/353
@@ -29,31 +29,32 @@ _require_xfs_io_command "fiemap"
_scratch_mkfs > /dev/null 2>&1
_scratch_mount
-blocksize=64k
+blocksize=$(_get_file_block_size $SCRATCH_MNT)
+
file1="$SCRATCH_MNT/file1"
file2="$SCRATCH_MNT/file2"
+extmap1="$SCRATCH_MNT/extmap1"
+extmap2="$SCRATCH_MNT/extmap2"
# write the initial file
-_pwrite_byte 0xcdcdcdcd 0 $blocksize $file1 | _filter_xfs_io
+_pwrite_byte 0xcdcdcdcd 0 $blocksize $file1 > /dev/null
# reflink initial file
-_reflink_range $file1 0 $file2 0 $blocksize | _filter_xfs_io
+_reflink_range $file1 0 $file2 0 $blocksize > /dev/null
# check their fiemap to make sure it's correct
-echo "before sync:"
-echo "$file1" | _filter_scratch
-$XFS_IO_PROG -c "fiemap -v" $file1 | _filter_fiemap_flags
-echo "$file2" | _filter_scratch
-$XFS_IO_PROG -c "fiemap -v" $file2 | _filter_fiemap_flags
+$XFS_IO_PROG -c "fiemap -v" $file1 | _filter_fiemap_flags > $extmap1
+$XFS_IO_PROG -c "fiemap -v" $file2 | _filter_fiemap_flags > $extmap2
+
+cmp -s $extmap1 $extmap2 || echo "mismatched extent maps before sync"
# sync and recheck, to make sure the fiemap doesn't change just
# due to sync
sync
-echo "after sync:"
-echo "$file1" | _filter_scratch
-$XFS_IO_PROG -c "fiemap -v" $file1 | _filter_fiemap_flags
-echo "$file2" | _filter_scratch
-$XFS_IO_PROG -c "fiemap -v" $file2 | _filter_fiemap_flags
+$XFS_IO_PROG -c "fiemap -v" $file1 | _filter_fiemap_flags > $extmap1
+$XFS_IO_PROG -c "fiemap -v" $file2 | _filter_fiemap_flags > $extmap2
+
+cmp -s $extmap1 $extmap2 || echo "mismatched extent maps after sync"
# success, all done
status=0
diff --git a/tests/generic/353.out b/tests/generic/353.out
index 4f6e0b92..86cece4f 100644
--- a/tests/generic/353.out
+++ b/tests/generic/353.out
@@ -1,15 +1 @@
QA output created by 353
-wrote 65536/65536 bytes at offset 0
-XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
-linked 65536/65536 bytes at offset 0
-XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
-before sync:
-SCRATCH_MNT/file1
-0: [0..127]: shared|last
-SCRATCH_MNT/file2
-0: [0..127]: shared|last
-after sync:
-SCRATCH_MNT/file1
-0: [0..127]: shared|last
-SCRATCH_MNT/file2
-0: [0..127]: shared|last
--
2.41.0
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH] fstests: generic/353 should accomodate other pwrite behaviors
2023-08-30 12:50 [PATCH] fstests: generic/353 should accomodate other pwrite behaviors Bill O'Donnell
@ 2023-08-31 16:46 ` Bill O'Donnell
2023-09-01 15:48 ` Zorro Lang
1 sibling, 0 replies; 4+ messages in thread
From: Bill O'Donnell @ 2023-08-31 16:46 UTC (permalink / raw)
To: Bill O'Donnell; +Cc: fstests, quwenruo.btrfs
cc Qu Wenruo
On Wed, Aug 30, 2023 at 07:50:56AM -0500, Bill O'Donnell wrote:
> xfs_io pwrite issues a series of block size writes, but there is no
> guarantee that the resulting extent(s) will be singular or contiguous.
> This behavior is acceptable, but the test is flawed in that it expects
> a single extent for a pwrite.
>
> Modify test to use actual blocksize for pwrite and reflink. Also
> modify it to accommodate pwrite and reflink that produce different
> mapping results.
>
> Signed-off-by: Bill O'Donnell <bodonnel@redhat.com>
> ---
> tests/generic/353 | 27 ++++++++++++++-------------
> tests/generic/353.out | 14 --------------
> 2 files changed, 14 insertions(+), 27 deletions(-)
>
> diff --git a/tests/generic/353 b/tests/generic/353
> index 9a1471bd..03b038a6 100755
> --- a/tests/generic/353
> +++ b/tests/generic/353
> @@ -29,31 +29,32 @@ _require_xfs_io_command "fiemap"
> _scratch_mkfs > /dev/null 2>&1
> _scratch_mount
>
> -blocksize=64k
> +blocksize=$(_get_file_block_size $SCRATCH_MNT)
> +
> file1="$SCRATCH_MNT/file1"
> file2="$SCRATCH_MNT/file2"
> +extmap1="$SCRATCH_MNT/extmap1"
> +extmap2="$SCRATCH_MNT/extmap2"
>
> # write the initial file
> -_pwrite_byte 0xcdcdcdcd 0 $blocksize $file1 | _filter_xfs_io
> +_pwrite_byte 0xcdcdcdcd 0 $blocksize $file1 > /dev/null
>
> # reflink initial file
> -_reflink_range $file1 0 $file2 0 $blocksize | _filter_xfs_io
> +_reflink_range $file1 0 $file2 0 $blocksize > /dev/null
>
> # check their fiemap to make sure it's correct
> -echo "before sync:"
> -echo "$file1" | _filter_scratch
> -$XFS_IO_PROG -c "fiemap -v" $file1 | _filter_fiemap_flags
> -echo "$file2" | _filter_scratch
> -$XFS_IO_PROG -c "fiemap -v" $file2 | _filter_fiemap_flags
> +$XFS_IO_PROG -c "fiemap -v" $file1 | _filter_fiemap_flags > $extmap1
> +$XFS_IO_PROG -c "fiemap -v" $file2 | _filter_fiemap_flags > $extmap2
> +
> +cmp -s $extmap1 $extmap2 || echo "mismatched extent maps before sync"
>
> # sync and recheck, to make sure the fiemap doesn't change just
> # due to sync
> sync
> -echo "after sync:"
> -echo "$file1" | _filter_scratch
> -$XFS_IO_PROG -c "fiemap -v" $file1 | _filter_fiemap_flags
> -echo "$file2" | _filter_scratch
> -$XFS_IO_PROG -c "fiemap -v" $file2 | _filter_fiemap_flags
> +$XFS_IO_PROG -c "fiemap -v" $file1 | _filter_fiemap_flags > $extmap1
> +$XFS_IO_PROG -c "fiemap -v" $file2 | _filter_fiemap_flags > $extmap2
> +
> +cmp -s $extmap1 $extmap2 || echo "mismatched extent maps after sync"
>
> # success, all done
> status=0
> diff --git a/tests/generic/353.out b/tests/generic/353.out
> index 4f6e0b92..86cece4f 100644
> --- a/tests/generic/353.out
> +++ b/tests/generic/353.out
> @@ -1,15 +1 @@
> QA output created by 353
> -wrote 65536/65536 bytes at offset 0
> -XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
> -linked 65536/65536 bytes at offset 0
> -XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
> -before sync:
> -SCRATCH_MNT/file1
> -0: [0..127]: shared|last
> -SCRATCH_MNT/file2
> -0: [0..127]: shared|last
> -after sync:
> -SCRATCH_MNT/file1
> -0: [0..127]: shared|last
> -SCRATCH_MNT/file2
> -0: [0..127]: shared|last
> --
> 2.41.0
>
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] fstests: generic/353 should accomodate other pwrite behaviors
2023-08-30 12:50 [PATCH] fstests: generic/353 should accomodate other pwrite behaviors Bill O'Donnell
2023-08-31 16:46 ` Bill O'Donnell
@ 2023-09-01 15:48 ` Zorro Lang
2023-09-01 16:00 ` Bill O'Donnell
1 sibling, 1 reply; 4+ messages in thread
From: Zorro Lang @ 2023-09-01 15:48 UTC (permalink / raw)
To: Bill O'Donnell; +Cc: fstests
On Wed, Aug 30, 2023 at 07:50:56AM -0500, Bill O'Donnell wrote:
> xfs_io pwrite issues a series of block size writes, but there is no
> guarantee that the resulting extent(s) will be singular or contiguous.
> This behavior is acceptable, but the test is flawed in that it expects
> a single extent for a pwrite.
>
> Modify test to use actual blocksize for pwrite and reflink. Also
> modify it to accommodate pwrite and reflink that produce different
> mapping results.
>
> Signed-off-by: Bill O'Donnell <bodonnel@redhat.com>
> ---
> tests/generic/353 | 27 ++++++++++++++-------------
> tests/generic/353.out | 14 --------------
> 2 files changed, 14 insertions(+), 27 deletions(-)
>
> diff --git a/tests/generic/353 b/tests/generic/353
> index 9a1471bd..03b038a6 100755
> --- a/tests/generic/353
> +++ b/tests/generic/353
> @@ -29,31 +29,32 @@ _require_xfs_io_command "fiemap"
> _scratch_mkfs > /dev/null 2>&1
> _scratch_mount
>
> -blocksize=64k
> +blocksize=$(_get_file_block_size $SCRATCH_MNT)
> +
> file1="$SCRATCH_MNT/file1"
> file2="$SCRATCH_MNT/file2"
> +extmap1="$SCRATCH_MNT/extmap1"
> +extmap2="$SCRATCH_MNT/extmap2"
>
> # write the initial file
> -_pwrite_byte 0xcdcdcdcd 0 $blocksize $file1 | _filter_xfs_io
> +_pwrite_byte 0xcdcdcdcd 0 $blocksize $file1 > /dev/null
>
> # reflink initial file
> -_reflink_range $file1 0 $file2 0 $blocksize | _filter_xfs_io
> +_reflink_range $file1 0 $file2 0 $blocksize > /dev/null
>
> # check their fiemap to make sure it's correct
> -echo "before sync:"
> -echo "$file1" | _filter_scratch
> -$XFS_IO_PROG -c "fiemap -v" $file1 | _filter_fiemap_flags
> -echo "$file2" | _filter_scratch
> -$XFS_IO_PROG -c "fiemap -v" $file2 | _filter_fiemap_flags
> +$XFS_IO_PROG -c "fiemap -v" $file1 | _filter_fiemap_flags > $extmap1
> +$XFS_IO_PROG -c "fiemap -v" $file2 | _filter_fiemap_flags > $extmap2
> +
> +cmp -s $extmap1 $extmap2 || echo "mismatched extent maps before sync"
>
> # sync and recheck, to make sure the fiemap doesn't change just
> # due to sync
> sync
> -echo "after sync:"
> -echo "$file1" | _filter_scratch
> -$XFS_IO_PROG -c "fiemap -v" $file1 | _filter_fiemap_flags
> -echo "$file2" | _filter_scratch
> -$XFS_IO_PROG -c "fiemap -v" $file2 | _filter_fiemap_flags
> +$XFS_IO_PROG -c "fiemap -v" $file1 | _filter_fiemap_flags > $extmap1
> +$XFS_IO_PROG -c "fiemap -v" $file2 | _filter_fiemap_flags > $extmap2
> +
> +cmp -s $extmap1 $extmap2 || echo "mismatched extent maps after sync"
>
> # success, all done
> status=0
> diff --git a/tests/generic/353.out b/tests/generic/353.out
> index 4f6e0b92..86cece4f 100644
> --- a/tests/generic/353.out
> +++ b/tests/generic/353.out
> @@ -1,15 +1 @@
> QA output created by 353
> -wrote 65536/65536 bytes at offset 0
> -XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
> -linked 65536/65536 bytes at offset 0
> -XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
> -before sync:
> -SCRATCH_MNT/file1
> -0: [0..127]: shared|last
> -SCRATCH_MNT/file2
> -0: [0..127]: shared|last
> -after sync:
> -SCRATCH_MNT/file1
> -0: [0..127]: shared|last
> -SCRATCH_MNT/file2
> -0: [0..127]: shared|last
If you hope to remove all output messages, we generally have a
"Silence is golden".
> --
> 2.41.0
>
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] fstests: generic/353 should accomodate other pwrite behaviors
2023-09-01 15:48 ` Zorro Lang
@ 2023-09-01 16:00 ` Bill O'Donnell
0 siblings, 0 replies; 4+ messages in thread
From: Bill O'Donnell @ 2023-09-01 16:00 UTC (permalink / raw)
To: Zorro Lang; +Cc: fstests
On Fri, Sep 01, 2023 at 11:48:40PM +0800, Zorro Lang wrote:
> On Wed, Aug 30, 2023 at 07:50:56AM -0500, Bill O'Donnell wrote:
> > xfs_io pwrite issues a series of block size writes, but there is no
> > guarantee that the resulting extent(s) will be singular or contiguous.
> > This behavior is acceptable, but the test is flawed in that it expects
> > a single extent for a pwrite.
> >
> > Modify test to use actual blocksize for pwrite and reflink. Also
> > modify it to accommodate pwrite and reflink that produce different
> > mapping results.
> >
> > Signed-off-by: Bill O'Donnell <bodonnel@redhat.com>
> > ---
> > tests/generic/353 | 27 ++++++++++++++-------------
> > tests/generic/353.out | 14 --------------
> > 2 files changed, 14 insertions(+), 27 deletions(-)
> >
> > diff --git a/tests/generic/353 b/tests/generic/353
> > index 9a1471bd..03b038a6 100755
> > --- a/tests/generic/353
> > +++ b/tests/generic/353
> > @@ -29,31 +29,32 @@ _require_xfs_io_command "fiemap"
> > _scratch_mkfs > /dev/null 2>&1
> > _scratch_mount
> >
> > -blocksize=64k
> > +blocksize=$(_get_file_block_size $SCRATCH_MNT)
> > +
> > file1="$SCRATCH_MNT/file1"
> > file2="$SCRATCH_MNT/file2"
> > +extmap1="$SCRATCH_MNT/extmap1"
> > +extmap2="$SCRATCH_MNT/extmap2"
> >
> > # write the initial file
> > -_pwrite_byte 0xcdcdcdcd 0 $blocksize $file1 | _filter_xfs_io
> > +_pwrite_byte 0xcdcdcdcd 0 $blocksize $file1 > /dev/null
> >
> > # reflink initial file
> > -_reflink_range $file1 0 $file2 0 $blocksize | _filter_xfs_io
> > +_reflink_range $file1 0 $file2 0 $blocksize > /dev/null
> >
> > # check their fiemap to make sure it's correct
> > -echo "before sync:"
> > -echo "$file1" | _filter_scratch
> > -$XFS_IO_PROG -c "fiemap -v" $file1 | _filter_fiemap_flags
> > -echo "$file2" | _filter_scratch
> > -$XFS_IO_PROG -c "fiemap -v" $file2 | _filter_fiemap_flags
> > +$XFS_IO_PROG -c "fiemap -v" $file1 | _filter_fiemap_flags > $extmap1
> > +$XFS_IO_PROG -c "fiemap -v" $file2 | _filter_fiemap_flags > $extmap2
> > +
> > +cmp -s $extmap1 $extmap2 || echo "mismatched extent maps before sync"
> >
> > # sync and recheck, to make sure the fiemap doesn't change just
> > # due to sync
> > sync
> > -echo "after sync:"
> > -echo "$file1" | _filter_scratch
> > -$XFS_IO_PROG -c "fiemap -v" $file1 | _filter_fiemap_flags
> > -echo "$file2" | _filter_scratch
> > -$XFS_IO_PROG -c "fiemap -v" $file2 | _filter_fiemap_flags
> > +$XFS_IO_PROG -c "fiemap -v" $file1 | _filter_fiemap_flags > $extmap1
> > +$XFS_IO_PROG -c "fiemap -v" $file2 | _filter_fiemap_flags > $extmap2
> > +
> > +cmp -s $extmap1 $extmap2 || echo "mismatched extent maps after sync"
> >
> > # success, all done
> > status=0
> > diff --git a/tests/generic/353.out b/tests/generic/353.out
> > index 4f6e0b92..86cece4f 100644
> > --- a/tests/generic/353.out
> > +++ b/tests/generic/353.out
> > @@ -1,15 +1 @@
> > QA output created by 353
> > -wrote 65536/65536 bytes at offset 0
> > -XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
> > -linked 65536/65536 bytes at offset 0
> > -XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
> > -before sync:
> > -SCRATCH_MNT/file1
> > -0: [0..127]: shared|last
> > -SCRATCH_MNT/file2
> > -0: [0..127]: shared|last
> > -after sync:
> > -SCRATCH_MNT/file1
> > -0: [0..127]: shared|last
> > -SCRATCH_MNT/file2
> > -0: [0..127]: shared|last
>
> If you hope to remove all output messages, we generally have a
> "Silence is golden".
I thought about that and forgot to do it. I'll send a v2.
Thanks-
Bill
>
> > --
> > 2.41.0
> >
>
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2023-09-01 16:01 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-08-30 12:50 [PATCH] fstests: generic/353 should accomodate other pwrite behaviors Bill O'Donnell
2023-08-31 16:46 ` Bill O'Donnell
2023-09-01 15:48 ` Zorro Lang
2023-09-01 16:00 ` Bill O'Donnell
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox