diff options
author | Max Reitz | 2020-02-25 15:31:30 +0100 |
---|---|---|
committer | Kevin Wolf | 2020-03-06 17:15:37 +0100 |
commit | 81311255f217859413c94f2cd9cebf2684bbda94 (patch) | |
tree | 437c6af1733d333215734160bb73f6dd5ace13ed /tests/qemu-iotests/026 | |
parent | iotests/026: Test EIO on preallocated zero cluster (diff) | |
download | qemu-81311255f217859413c94f2cd9cebf2684bbda94.tar.gz qemu-81311255f217859413c94f2cd9cebf2684bbda94.tar.xz qemu-81311255f217859413c94f2cd9cebf2684bbda94.zip |
iotests/026: Test EIO on allocation in a data-file
Test what happens when writing data to an external data file, where the
write requires an L2 entry to be allocated, but the data write fails.
Signed-off-by: Max Reitz <mreitz@redhat.com>
Message-Id: <20200225143130.111267-4-mreitz@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Diffstat (limited to 'tests/qemu-iotests/026')
-rwxr-xr-x | tests/qemu-iotests/026 | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/tests/qemu-iotests/026 b/tests/qemu-iotests/026 index 0c1273c339..b05a4692cf 100755 --- a/tests/qemu-iotests/026 +++ b/tests/qemu-iotests/026 @@ -30,6 +30,7 @@ _cleanup() { _cleanup_test_img rm "$TEST_DIR/blkdebug.conf" + rm -f "$TEST_IMG.data_file" } trap "_cleanup; exit \$status" 0 1 2 3 15 @@ -239,6 +240,37 @@ $QEMU_IO -c "write 0 $CLUSTER_SIZE" "$BLKDBG_TEST_IMG" | _filter_qemu_io _check_test_img +echo +echo === Avoid freeing external data clusters on failure === +echo + +# Similar test as the last one, except we test what happens when there +# is an error when writing to an external data file instead of when +# writing to a preallocated zero cluster +_make_test_img -o "data_file=$TEST_IMG.data_file" $CLUSTER_SIZE + +# Put blkdebug above the data-file, and a raw node on top of that so +# that blkdebug will see a write_aio event and emit an error +$QEMU_IO -c "write 0 $CLUSTER_SIZE" \ + "json:{ + 'driver': 'qcow2', + 'file': { 'driver': 'file', 'filename': '$TEST_IMG' }, + 'data-file': { + 'driver': 'raw', + 'file': { + 'driver': 'blkdebug', + 'config': '$TEST_DIR/blkdebug.conf', + 'image': { + 'driver': 'file', + 'filename': '$TEST_IMG.data_file' + } + } + } + }" \ + | _filter_qemu_io + +_check_test_img + # success, all done echo "*** done" rm -f $seq.full |