On Fri, Mar 18, 2022 at 04:36:44PM -0400, John Snow wrote: > qemu-io fails on read/write with zero-length raw images, so skip these > when running the zero-length image tests.
On my first read, I wondered what we accomplish by rejecting zero-length reads on a zero-length image, and whether entering the rabbit hole of trying to make that corner case "work" differently makes more sense... > > Signed-off-by: John Snow <js...@redhat.com> > --- > tests/qemu-iotests/040 | 14 ++++++++++++-- > 1 file changed, 12 insertions(+), 2 deletions(-) > > diff --git a/tests/qemu-iotests/040 b/tests/qemu-iotests/040 > index adf5815781..c4a90937dc 100755 > --- a/tests/qemu-iotests/040 > +++ b/tests/qemu-iotests/040 > @@ -86,8 +86,10 @@ class TestSingleDrive(ImageCommitTestCase): > qemu_img('create', '-f', iotests.imgfmt, > '-o', 'backing_file=%s' % mid_img, > '-F', iotests.imgfmt, test_img) > - qemu_io('-f', 'raw', '-c', 'write -P 0xab 0 524288', backing_img) > - qemu_io('-f', iotests.imgfmt, '-c', 'write -P 0xef 524288 524288', > mid_img) > + if self.image_len: > + qemu_io('-f', 'raw', '-c', 'write -P 0xab 0 524288', backing_img) > + qemu_io('-f', iotests.imgfmt, '-c', 'write -P 0xef 524288 > 524288', > + mid_img) ...but now it is obvious - one of our test cases is attempting a non-zero-length modification to a zero-length file, and it does make sense for that modification attempt to fail, in which case, making the test special case the zero-length file is the right thing to do. Reviewed-by: Eric Blake <ebl...@redhat.com> -- Eric Blake, Principal Software Engineer Red Hat, Inc. +1-919-301-3266 Virtualization: qemu.org | libvirt.org