[Libguestfs] [nbdkit PATCH] tests: Check that cache-min-block-size works properly

Martin Kletzander mkletzan at redhat.com
Fri Aug 6 12:07:37 UTC 2021


On Wed, Aug 04, 2021 at 04:48:08PM +0100, Richard W.M. Jones wrote:
>On Wed, Aug 04, 2021 at 05:08:32PM +0200, Martin Kletzander wrote:
>> Signed-off-by: Martin Kletzander <mkletzan at redhat.com>
>> ---
>>  tests/test-cache-block-size.sh | 33 ++++++++++++++++++++++-----------
>>  1 file changed, 22 insertions(+), 11 deletions(-)
>>
>> diff --git a/tests/test-cache-block-size.sh b/tests/test-cache-block-size.sh
>> index d20cc94002b6..5e83ebc1cfaa 100755
>> --- a/tests/test-cache-block-size.sh
>> +++ b/tests/test-cache-block-size.sh
>> @@ -47,24 +47,35 @@ truncate -s 128K cache-block-size.img
>>
>>  # Run nbdkit with the caching filter.
>>  start_nbdkit -P cache-block-size.pid -U $sock --filter=cache \
>> -             file cache-block-size.img cache-min-block-size=4K
>> +             file cache-block-size.img cache-min-block-size=64K \
>
>Because of commit c1905b0a2 ("cache, cow: Use a 64K block size by
>default"), 64K is the default block size.  So this doesn't test that
>the parameter works.  Maybe choose a different block size here?
>

I tried that it fails with 32K, but I can double all the numbers in this
test if you want.

>Rest of it is fine, so ACK, but better if the block size above was
>changed.
>
>Rich.
>
>> +             cache-on-read=true
>>
>>  nbdsh --connect "nbd+unix://?socket=$sock" \
>>        -c '
>> -# Write some pattern data to the overlay and check it reads back OK.
>> -buf = b"abcd" * 16384
>> -h.pwrite(buf, 32768)
>> +# Read half of cache-min-block-size
>> +
>>  zero = h.pread(32768, 0)
>>  assert zero == bytearray(32768)
>> -buf2 = h.pread(65536, 32768)
>> -assert buf == buf2
>>
>> -# Flushing should write through to the underlying file.
>> -h.flush()
>> +buf = b"abcd" * 8192
>>
>> +# Write past the first read
>> +with open("cache-block-size.img", "wb") as file:
>> +    file.seek(32768)
>> +    file.write(buf * 2)
>> +    file.truncate(131072)
>> +
>> +# Check that it got written
>>  with open("cache-block-size.img", "rb") as file:
>> -    zero = file.read(32768)
>> -    assert zero == bytearray(32768)
>> +    file.seek(32768)
>>      buf2 = file.read(65536)
>> -    assert buf == buf2
>> +    assert (buf * 2) == buf2
>> +
>> +# Now read the rest of the cache-min-block-size, it should stay empty
>> +zero = h.pread(32768, 32768)
>> +assert zero == bytearray(32768)
>> +
>> +# Read past that, the pattern should be visible there
>> +buf2 = h.pread(32768, 65536)
>> +assert buf == buf2
>>  '
>> --
>> 2.32.0
>
>-- 
>Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones
>Read my programming and virtualization blog: http://rwmj.wordpress.com
>virt-p2v converts physical machines to virtual machines.  Boot with a
>live CD or over the network (PXE) and turn machines into KVM guests.
>http://libguestfs.org/virt-v2v
>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: not available
URL: <http://listman.redhat.com/archives/libguestfs/attachments/20210806/dcaeff7e/attachment.sig>


More information about the Libguestfs mailing list