qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [RFC PATCH 2/2] iotests: add 222 to test basic fleecing


From: John Snow
Subject: Re: [Qemu-devel] [RFC PATCH 2/2] iotests: add 222 to test basic fleecing
Date: Wed, 27 Jun 2018 01:51:59 -0400
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.8.0


On 06/26/2018 09:49 PM, Eric Blake wrote:
> On 06/26/2018 05:22 PM, John Snow wrote:
>> Signed-off-by: John Snow <address@hidden>
>> ---
>>   tests/qemu-iotests/222   | 121

Probably would have helped to include 222.out, though.

>> +++++++++++++++++++++++++++++++++++++++++++++++
>>   tests/qemu-iotests/group |   1 +
>>   2 files changed, 122 insertions(+)
>>   create mode 100644 tests/qemu-iotests/222
>>
>> diff --git a/tests/qemu-iotests/222 b/tests/qemu-iotests/222
>> new file mode 100644
>> index 0000000000..133d10c351
>> --- /dev/null
>> +++ b/tests/qemu-iotests/222
>> @@ -0,0 +1,121 @@
>> +#!/usr/bin/env python
>> +#
>> +# This test covers the basic fleecing workflow.
>> +#
>> +# Copyright (C) 2018 Red Hat, Inc.
>> +# John helped, too.
> 
> LOL.
> 
>> +
>> +patterns = [("0x5d", "0", "64k"),
>> +            ("0xd5", "1M", "64k"),
>> +            ("0xdc", "32M", "64k"),
>> +            ("0xcd", "67043328", "64k")]  # 64M - 64K
>> +
>> +overwrite = [("0xab", "0",        "64k"), # Full overwrite
>> +             ("0xad", "1015808",  "64k"), # Partial-left (1M-32K)
>> +             ("0x1d", "33587200", "64k"), # Partial-right (32M+32K)
>> +             ("0xea", "64M", "64k")]      # Adjacent-right (64M)
>> +
>> +with iotests.FilePath('base.img') as base_img_path, \
>> +     iotests.FilePath('fleece.img') as fleece_img_path, \
>> +     iotests.FilePath('nbd.sock') as nbd_sock_path, \
>> +     iotests.VM() as vm:
> 
> Does python require \ even after ','?
> 

Dunno. Cargo cult from 216.

> The test looks valid - you are definitely reading data over NBD from the
> point in time that you started the blockdev-backup job, even while the
> source image continues to be modified.
> 
>> +    for p in overwrite:
>> +        cmd = "write -P%s %s %s" % p
>> +        log(cmd)
>> +        log(vm.hmp_qemu_io(srcNode, cmd))
>> +
>> +    log('')
>> +    log('--- Verifying Data ---')
>> +    log('')
>> +
>> +    for p in patterns:
>> +        cmd = "read -P%s %s %s" % p
>> +        log(cmd)
>> +        assert qemu_io_silent('-r', '-f', 'raw', '-c', cmd, nbd_uri)
>> == 0
> 
> Perhaps additional steps would be to then stop the NBD export, stop the
> block job, delete the tgtNode fleecing file, then stop qemu, and finally
> check that the overwritten patterns correctly show up in the source
> image (that is, also prove that we can tear down a job, and that the
> overwrites worked).  And we may want to enhance this test (or use it as
> a starting point to copy into a new test) to play with persistent dirty
> bitmaps thrown into the mix as well.  But what you have is already a
> great start to prevent regressions, so:
> 

Good suggestions. I'm working toward throwing bitmaps in now, but
actually cleaning up the VM properly and stopping the NBD server and
testing some of the latter-half paths would be nice. This was just a bit
of an RFC to get the bits out there sooner rather than later.

> Reviewed-by: Eric Blake <address@hidden>
> 

Too many changes I need to pepper in for v2, but thanks for the vote of
confidence :)



reply via email to

[Prev in Thread] Current Thread [Next in Thread]