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

Attachment: signature.asc
Description: PGP signature

_______________________________________________
Libguestfs mailing list
[email protected]
https://listman.redhat.com/mailman/listinfo/libguestfs

Reply via email to