qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Maxim Levitsky <mlevitsk@redhat.com>
To: Max Reitz <mreitz@redhat.com>, qemu-block@nongnu.org
Cc: Kevin Wolf <kwolf@redhat.com>, qemu-devel@nongnu.org
Subject: Re: [PATCH 15/18] iotests: Make 137 work with data_file
Date: Mon, 30 Sep 2019 16:46:28 +0300	[thread overview]
Message-ID: <4067372d453e08515b079cff564f9d56fba2a21b.camel@redhat.com> (raw)
In-Reply-To: <5dff56b6-dca2-a28a-4a6a-2a6638300ff3@redhat.com>

On Mon, 2019-09-30 at 15:38 +0200, Max Reitz wrote:
> On 29.09.19 18:38, Maxim Levitsky wrote:
> > On Fri, 2019-09-27 at 11:42 +0200, Max Reitz wrote:
> > > When using an external data file, there are no refcounts for data
> > > clusters.  We thus have to adjust the corruption test in this patch to
> > > not be based around a data cluster allocation, but the L2 table
> > > allocation (L2 tables are still refcounted with external data files).
> > > 
> > > Doing so means this test works both with and without external data
> > > files.
> > > 
> > > Signed-off-by: Max Reitz <mreitz@redhat.com>
> > > ---
> > >  tests/qemu-iotests/137     | 10 ++++++----
> > >  tests/qemu-iotests/137.out |  4 +---
> > >  2 files changed, 7 insertions(+), 7 deletions(-)
> > > 
> > > diff --git a/tests/qemu-iotests/137 b/tests/qemu-iotests/137
> > > index 6cf2997577..dd3484205e 100755
> > > --- a/tests/qemu-iotests/137
> > > +++ b/tests/qemu-iotests/137
> > > @@ -138,14 +138,16 @@ $QEMU_IO \
> > >      "$TEST_IMG" 2>&1 | _filter_qemu_io
> > >  
> > >  # The dirty bit must not be set
> > > -$PYTHON qcow2.py "$TEST_IMG" dump-header | grep incompatible_features
> > > +# (Filter the external data file bit)
> > > +$PYTHON qcow2.py "$TEST_IMG" dump-header | grep incompatible_features \
> > > +    | sed -e 's/0x4/0x0/'
> > 
> > Maybe it is better to filter all the feature bits, but the dirty bit,
> > since only it is needed here, so that when we start running tests with
> > more features, we won't need to do this again?
> 
> I’d hate a filter s/[02468ace]$/no dirty bit/ though.
Nothing a helper function can't solve IMHO, I would convert this to a number,
and then check bitwise the bit 2, assuming that is the dirty bit)
Again, note that my approach to code is to make it as easy as possible for the
next guy to change, so I am noticing such places. Eventually someone of us,
will be that next guy. Then again, I don't mind leaving this as is, just noting this.
> 
> > >  
> > >  # Similarly we can test whether corruption detection has been enabled:
> > > -# Create L1/L2, overwrite first entry in refcount block, allocate something.
> > > +# Create L1, overwrite refcounts, force allocation of L2 by writing
> > > +# data.
> > >  # Disabling the checks should fail, so the corruption must be detected.
> > >  _make_test_img 64M
> > > -$QEMU_IO -c "write 0 64k" "$TEST_IMG" | _filter_qemu_io
> > > -poke_file "$TEST_IMG" "$((0x20000))" "\x00\x00"
> > > +poke_file "$TEST_IMG" "$((0x20000))" "\x00\x00\x00\x00\x00\x00\x00\x00"
> > 
> > I am wondering if there is any better way to do this (regardless of this patch),
> > Basically the above code pokes into the 3rd cluster on the disk I *think*, and I don't
> > understand why it has to contain refcounts. Hmm...
> > First cluster I can guess will have the header, 2nd cluster probably L1 table, and 3rd, refcounts?
> > If so, the test should specify that it needs 64K clusters, because the day will come when
> > we will need to test this as well, but I guess in a separate patch,
> 
> When that day comes, a whole lot of other stuff will break, too.
I guess so, won't argue about this one.

Best regards,
	Maxim Levitsky


> 
> Max
> 




  reply	other threads:[~2019-09-30 13:50 UTC|newest]

Thread overview: 60+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-09-27  9:42 [PATCH 00/18] iotests: Allow ./check -o data_file Max Reitz
2019-09-27  9:42 ` [PATCH 01/18] iotests: Filter refcount_order in 036 Max Reitz
2019-09-29 16:31   ` Maxim Levitsky
2019-09-30 12:43     ` Max Reitz
2019-09-30 13:40       ` Maxim Levitsky
2019-09-30 13:44         ` Max Reitz
2019-09-30 13:58           ` Maxim Levitsky
2019-09-30 14:04             ` Max Reitz
2019-09-30 14:14               ` Maxim Levitsky
2019-09-27  9:42 ` [PATCH 02/18] iotests: Replace IMGOPTS by _unsupported_imgopts Max Reitz
2019-09-29 16:31   ` Maxim Levitsky
2019-09-30 12:59     ` Max Reitz
2019-09-30 14:47       ` Maxim Levitsky
2019-09-30 14:59         ` Max Reitz
2019-09-27  9:42 ` [PATCH 03/18] iotests: Drop compat=1.1 in 050 Max Reitz
2019-09-29 16:32   ` Maxim Levitsky
2019-09-27  9:42 ` [PATCH 04/18] iotests: Let _make_test_img parse its parameters Max Reitz
2019-09-29 16:32   ` Maxim Levitsky
2019-09-27  9:42 ` [PATCH 05/18] iotests: Add -o and --no-opts to _make_test_img Max Reitz
2019-09-29 16:32   ` Maxim Levitsky
2019-09-27  9:42 ` [PATCH 06/18] iotests: Inject space into -ocompat=0.10 in 051 Max Reitz
2019-09-29 16:32   ` Maxim Levitsky
2019-09-27  9:42 ` [PATCH 07/18] iotests: Replace IMGOPTS= by -o Max Reitz
2019-09-29 16:33   ` Maxim Levitsky
2019-09-30 13:00     ` Max Reitz
2019-09-30 14:30       ` Maxim Levitsky
2019-09-27  9:42 ` [PATCH 08/18] iotests: Replace IMGOPTS='' by --no-opts Max Reitz
2019-09-29 16:33   ` Maxim Levitsky
2019-09-27  9:42 ` [PATCH 09/18] iotests: Drop IMGOPTS use in 267 Max Reitz
2019-09-29 16:33   ` Maxim Levitsky
2019-09-30 13:01     ` Max Reitz
2019-09-30 14:32       ` Maxim Levitsky
2019-09-30 15:01         ` Max Reitz
2019-09-30 15:06           ` Maxim Levitsky
2019-09-27  9:42 ` [PATCH 10/18] iotests: Avoid qemu-img create Max Reitz
2019-09-29 16:33   ` Maxim Levitsky
2019-09-27  9:42 ` [PATCH 11/18] iotests: Use _rm_test_img for deleting test images Max Reitz
2019-09-29 16:33   ` Maxim Levitsky
2019-09-27  9:42 ` [PATCH 12/18] iotests: Avoid cp/mv of " Max Reitz
2019-09-29 16:33   ` Maxim Levitsky
2019-09-27  9:42 ` [PATCH 13/18] iotests: Make 091 work with data_file Max Reitz
2019-09-29 16:34   ` Maxim Levitsky
2019-09-30 13:07     ` Max Reitz
2019-09-27  9:42 ` [PATCH 14/18] iotests: Make 110 " Max Reitz
2019-09-29 16:34   ` Maxim Levitsky
2019-09-30 13:34     ` Max Reitz
2019-09-30 13:41       ` Maxim Levitsky
2019-09-27  9:42 ` [PATCH 15/18] iotests: Make 137 " Max Reitz
2019-09-29 16:38   ` Maxim Levitsky
2019-09-30 13:38     ` Max Reitz
2019-09-30 13:46       ` Maxim Levitsky [this message]
2019-09-30 13:57         ` Max Reitz
2019-09-30 14:06           ` Maxim Levitsky
2019-09-27  9:42 ` [PATCH 16/18] iotests: Make 198 " Max Reitz
2019-09-29 16:38   ` Maxim Levitsky
2019-09-27  9:42 ` [PATCH 17/18] iotests: Disable data_file where it cannot be used Max Reitz
2019-09-29 16:39   ` Maxim Levitsky
2019-09-27  9:42 ` [PATCH 18/18] iotests: Allow check -o data_file Max Reitz
2019-09-29 16:39   ` Maxim Levitsky
2019-09-30 13:43     ` Max Reitz

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=4067372d453e08515b079cff564f9d56fba2a21b.camel@redhat.com \
    --to=mlevitsk@redhat.com \
    --cc=kwolf@redhat.com \
    --cc=mreitz@redhat.com \
    --cc=qemu-block@nongnu.org \
    --cc=qemu-devel@nongnu.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;
as well as URLs for NNTP newsgroup(s).