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 <[email protected]> --- 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
signature.asc
Description: PGP signature
_______________________________________________ Libguestfs mailing list [email protected] https://listman.redhat.com/mailman/listinfo/libguestfs
