Eric Blake <ebl...@redhat.com> writes:

> Prove that blockdev-mirror can now result in sparse raw destination
> files, regardless of whether the source is raw or qcow2.  By making
> this a separate test, it was possible to test effects of individual
> patches for the various pieces that all have to work together for a
> sparse mirror to be successful.
>
> Note that ./check -file produces different job lengths than ./check
> -qcow2 (the test uses a filter to normalize); that's because when
> deciding how much of the image to be mirrored, the code looks at how
> much of the source image was allocated (for qcow2, this is only the
> written clusters; for raw, it is the entire file).  But the important
> part is that the destination file ends up smaller than 3M, rather than
> the 20M it used to be before this patch series.
>
> Signed-off-by: Eric Blake <ebl...@redhat.com>
> Message-ID: <20250509204341.3553601-28-ebl...@redhat.com>
> Reviewed-by: Stefan Hajnoczi <stefa...@redhat.com>

Fails for me:

    TAP version 13
    # QEMU          -- "/work/armbru/qemu/bld/qemu-system-x86_64" -nodefaults 
-display none -accel qtest
    # QEMU_IMG      -- "/work/armbru/qemu/bld/qemu-img" 
    # QEMU_IO       -- "/work/armbru/qemu/bld/qemu-io" --cache writeback --aio 
threads -f qcow2
    # QEMU_NBD      -- "/work/armbru/qemu/bld/qemu-nbd" 
    # IMGFMT        -- qcow2
    # IMGPROTO      -- file
    # PLATFORM      -- Linux/x86_64 dusky 6.12.7-200.fc41.x86_64
    # TEST_DIR      -- /work/armbru/qemu/bld-x86/scratch
    # SOCK_DIR      -- /tmp/qemu-iotests-nqettsyq
    # GDB_OPTIONS   -- 
    # VALGRIND_QEMU -- 
    # PRINT_QEMU_OUTPUT -- 
    # 
    1..1
    # running qcow2 mirror-sparse
    not ok qcow2 mirror-sparse
    --- /work/armbru/qemu/tests/qemu-iotests/tests/mirror-sparse.out
    +++ 
/work/armbru/qemu/bld-x86/scratch/qcow2-file-mirror-sparse/mirror-sparse.out.bad
    @@ -140,7 +140,7 @@
     {"timestamp": {"seconds":  TIMESTAMP, "microseconds":  TIMESTAMP}, 
"event": "JOB_STATUS_CHANGE", "data": {"status": "null", "id": "job2"}}
     {"return": {}}
     Images are identical.
    -Destination is sparse; expected sparse
    +Destination is unknown; expected sparse

     === Testing creation=off discard=unmap zeroes=off ===

    @@ -184,7 +184,7 @@
     {"timestamp": {"seconds":  TIMESTAMP, "microseconds":  TIMESTAMP}, 
"event": "JOB_STATUS_CHANGE", "data": {"status": "null", "id": "job2"}}
     {"return": {}}
     Images are identical.
    -Destination is sparse; expected sparse
    +Destination is unknown; expected sparse

     === Testing creation=off discard=unmap zeroes=unmap ===


Reply via email to