Extend test case 026 by an aio_write fail test, which should not result in any leaked clusters.
Signed-off-by: Max Reitz <mre...@redhat.com> --- tests/qemu-iotests/026 | 31 +++++++++++++++++++++++++++++++ tests/qemu-iotests/026.out | 8 ++++++++ tests/qemu-iotests/026.out.nocache | 8 ++++++++ 3 files changed, 47 insertions(+) diff --git a/tests/qemu-iotests/026 b/tests/qemu-iotests/026 index ebe29d0..a9dfe36 100755 --- a/tests/qemu-iotests/026 +++ b/tests/qemu-iotests/026 @@ -193,6 +193,37 @@ done done done +echo +echo === Write leak test === +echo +CLUSTER_SIZE=512 + +for event in write_aio; do +for errno in 28; do +for imm in off; do +for once in on; do + +cat > "$TEST_DIR/blkdebug.conf" <<EOF +[inject-error] +event = "$event" +errno = "$errno" +immediately = "$imm" +once = "$once" +EOF + +_make_test_img 1G + +echo +echo "Event: $event; errno: $errno; imm: $imm; once: $once" +$QEMU_IO -c "write 0 128k" "$BLKDBG_TEST_IMG" | _filter_qemu_io + +_check_test_img 2>&1 | grep -v "refcount=1 reference=0" + +done +done +done +done + # success, all done echo "*** done" rm -f $seq.full diff --git a/tests/qemu-iotests/026.out b/tests/qemu-iotests/026.out index 1504579..c94daca 100644 --- a/tests/qemu-iotests/026.out +++ b/tests/qemu-iotests/026.out @@ -599,4 +599,12 @@ write failed: No space left on device 96 leaked clusters were found on the image. This means waste of disk space, but no harm to data. + +=== Write leak test === + +Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=1073741824 + +Event: write_aio; errno: 28; imm: off; once: on +write failed: No space left on device +No errors were found on the image. *** done diff --git a/tests/qemu-iotests/026.out.nocache b/tests/qemu-iotests/026.out.nocache index c9d242e..962bb71 100644 --- a/tests/qemu-iotests/026.out.nocache +++ b/tests/qemu-iotests/026.out.nocache @@ -607,4 +607,12 @@ write failed: No space left on device 96 leaked clusters were found on the image. This means waste of disk space, but no harm to data. + +=== Write leak test === + +Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=1073741824 + +Event: write_aio; errno: 28; imm: off; once: on +write failed: No space left on device +No errors were found on the image. *** done -- 1.8.3.1