mirror of https://github.com/xqemu/xqemu.git
qemu-iotests/059: Fix leaked image files
qemu-iotests 059 left a whole lot of image files behind in the scratch
directory because VMDK creates additional files for extents and cleaning
them up requires the original image intact (it parses qemu-img info
output to find all extent files), but the image overwrote it many times
like it works for all other image formats.
In addition, _use_sample_img overwrites the TEST_IMG variable, causing
new images created afterwards to reuse the name of the sample file
rather than the usual t.IMGFMT.
This patch adds an intermediate _cleanup_test_img after each subtest
that created an image file with additional extent files, and also after
each use of a sample image. _cleanup_test_img is also changed so that it
resets TEST_IMG after a sample image is cleaned up.
Note that this test was failing before this commit and continues to do
so after it. This failure was introduced in commit 9877860
('block/vmdk:
Report failures in vmdk_read_cid()') and needs to be dealt with
separately.
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Reviewed-by: Jeff Cody <jcody@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
This commit is contained in:
parent
1803f3f6cf
commit
59fa68f3f3
|
@ -29,7 +29,8 @@ status=1 # failure is the default!
|
||||||
|
|
||||||
_cleanup()
|
_cleanup()
|
||||||
{
|
{
|
||||||
_cleanup_test_img
|
_cleanup_test_img
|
||||||
|
rm -f "$TEST_IMG.qcow2"
|
||||||
}
|
}
|
||||||
trap "_cleanup; exit \$status" 0 1 2 3 15
|
trap "_cleanup; exit \$status" 0 1 2 3 15
|
||||||
|
|
||||||
|
@ -72,15 +73,18 @@ echo
|
||||||
echo "=== Testing monolithicFlat creation and opening ==="
|
echo "=== Testing monolithicFlat creation and opening ==="
|
||||||
IMGOPTS="subformat=monolithicFlat" _make_test_img 2G
|
IMGOPTS="subformat=monolithicFlat" _make_test_img 2G
|
||||||
_img_info
|
_img_info
|
||||||
|
_cleanup_test_img
|
||||||
|
|
||||||
echo
|
echo
|
||||||
echo "=== Testing monolithicFlat with zeroed_grain ==="
|
echo "=== Testing monolithicFlat with zeroed_grain ==="
|
||||||
IMGOPTS="subformat=monolithicFlat,zeroed_grain=on" _make_test_img 2G
|
IMGOPTS="subformat=monolithicFlat,zeroed_grain=on" _make_test_img 2G
|
||||||
|
_cleanup_test_img
|
||||||
|
|
||||||
echo
|
echo
|
||||||
echo "=== Testing big twoGbMaxExtentFlat ==="
|
echo "=== Testing big twoGbMaxExtentFlat ==="
|
||||||
IMGOPTS="subformat=twoGbMaxExtentFlat" _make_test_img 1000G
|
IMGOPTS="subformat=twoGbMaxExtentFlat" _make_test_img 1000G
|
||||||
$QEMU_IMG info $TEST_IMG | _filter_testdir | sed -e 's/cid: [0-9]*/cid: XXXXXXXX/'
|
$QEMU_IMG info $TEST_IMG | _filter_testdir | sed -e 's/cid: [0-9]*/cid: XXXXXXXX/'
|
||||||
|
_cleanup_test_img
|
||||||
|
|
||||||
echo
|
echo
|
||||||
echo "=== Testing malformed VMFS extent description line ==="
|
echo "=== Testing malformed VMFS extent description line ==="
|
||||||
|
@ -114,6 +118,7 @@ echo "=== Testing monolithicFlat with internally generated JSON file name ==="
|
||||||
IMGOPTS="subformat=monolithicFlat" _make_test_img 64M
|
IMGOPTS="subformat=monolithicFlat" _make_test_img 64M
|
||||||
$QEMU_IO -c "open -o driver=$IMGFMT,file.driver=blkdebug,file.image.filename=$TEST_IMG,file.inject-error.0.event=read_aio" 2>&1 \
|
$QEMU_IO -c "open -o driver=$IMGFMT,file.driver=blkdebug,file.image.filename=$TEST_IMG,file.inject-error.0.event=read_aio" 2>&1 \
|
||||||
| _filter_testdir | _filter_imgfmt
|
| _filter_testdir | _filter_imgfmt
|
||||||
|
_cleanup_test_img
|
||||||
|
|
||||||
echo
|
echo
|
||||||
echo "=== Testing version 3 ==="
|
echo "=== Testing version 3 ==="
|
||||||
|
@ -123,6 +128,7 @@ for i in {0..99}; do
|
||||||
$QEMU_IO -r -c "read -P $(( i % 10 + 0x30 )) $(( i * 64 * 1024 * 10 + i * 512 )) 512" $TEST_IMG \
|
$QEMU_IO -r -c "read -P $(( i % 10 + 0x30 )) $(( i * 64 * 1024 * 10 + i * 512 )) 512" $TEST_IMG \
|
||||||
| _filter_qemu_io
|
| _filter_qemu_io
|
||||||
done
|
done
|
||||||
|
_cleanup_test_img
|
||||||
|
|
||||||
echo
|
echo
|
||||||
echo "=== Testing 4TB monolithicFlat creation and IO ==="
|
echo "=== Testing 4TB monolithicFlat creation and IO ==="
|
||||||
|
@ -130,6 +136,7 @@ IMGOPTS="subformat=monolithicFlat" _make_test_img 4T
|
||||||
_img_info
|
_img_info
|
||||||
$QEMU_IO -c "write -P 0xa 900G 512" "$TEST_IMG" | _filter_qemu_io
|
$QEMU_IO -c "write -P 0xa 900G 512" "$TEST_IMG" | _filter_qemu_io
|
||||||
$QEMU_IO -c "read -v 900G 1024" "$TEST_IMG" | _filter_qemu_io
|
$QEMU_IO -c "read -v 900G 1024" "$TEST_IMG" | _filter_qemu_io
|
||||||
|
_cleanup_test_img
|
||||||
|
|
||||||
echo
|
echo
|
||||||
echo "=== Testing qemu-img map on extents ==="
|
echo "=== Testing qemu-img map on extents ==="
|
||||||
|
@ -139,12 +146,14 @@ for fmt in monolithicSparse twoGbMaxExtentSparse; do
|
||||||
$QEMU_IO -c "write 2147483136 1k" "$TEST_IMG" | _filter_qemu_io
|
$QEMU_IO -c "write 2147483136 1k" "$TEST_IMG" | _filter_qemu_io
|
||||||
$QEMU_IO -c "write 5G 1k" "$TEST_IMG" | _filter_qemu_io
|
$QEMU_IO -c "write 5G 1k" "$TEST_IMG" | _filter_qemu_io
|
||||||
$QEMU_IMG map "$TEST_IMG" | _filter_testdir
|
$QEMU_IMG map "$TEST_IMG" | _filter_testdir
|
||||||
|
_cleanup_test_img
|
||||||
done
|
done
|
||||||
|
|
||||||
echo
|
echo
|
||||||
echo "=== Testing afl image with a very large capacity ==="
|
echo "=== Testing afl image with a very large capacity ==="
|
||||||
_use_sample_img afl9.vmdk.bz2
|
_use_sample_img afl9.vmdk.bz2
|
||||||
_img_info
|
_img_info
|
||||||
|
_cleanup_test_img
|
||||||
|
|
||||||
# success, all done
|
# success, all done
|
||||||
echo "*** done"
|
echo "*** done"
|
||||||
|
|
|
@ -2259,8 +2259,8 @@ read 512/512 bytes at offset 64931328
|
||||||
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
|
|
||||||
=== Testing 4TB monolithicFlat creation and IO ===
|
=== Testing 4TB monolithicFlat creation and IO ===
|
||||||
Formatting 'TEST_DIR/iotest-version3.IMGFMT', fmt=IMGFMT size=4398046511104 subformat=monolithicFlat
|
Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=4398046511104 subformat=monolithicFlat
|
||||||
image: TEST_DIR/iotest-version3.IMGFMT
|
image: TEST_DIR/t.IMGFMT
|
||||||
file format: IMGFMT
|
file format: IMGFMT
|
||||||
virtual size: 4.0T (4398046511104 bytes)
|
virtual size: 4.0T (4398046511104 bytes)
|
||||||
wrote 512/512 bytes at offset 966367641600
|
wrote 512/512 bytes at offset 966367641600
|
||||||
|
@ -2333,7 +2333,7 @@ read 1024/1024 bytes at offset 966367641600
|
||||||
1 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
1 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
|
|
||||||
=== Testing qemu-img map on extents ===
|
=== Testing qemu-img map on extents ===
|
||||||
Formatting 'TEST_DIR/iotest-version3.IMGFMT', fmt=IMGFMT size=33285996544 subformat=monolithicSparse
|
Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=33285996544 subformat=monolithicSparse
|
||||||
wrote 1024/1024 bytes at offset 65024
|
wrote 1024/1024 bytes at offset 65024
|
||||||
1 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
1 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 1024/1024 bytes at offset 2147483136
|
wrote 1024/1024 bytes at offset 2147483136
|
||||||
|
@ -2341,10 +2341,10 @@ wrote 1024/1024 bytes at offset 2147483136
|
||||||
wrote 1024/1024 bytes at offset 5368709120
|
wrote 1024/1024 bytes at offset 5368709120
|
||||||
1 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
1 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
Offset Length Mapped to File
|
Offset Length Mapped to File
|
||||||
0 0x20000 0x3f0000 TEST_DIR/iotest-version3.vmdk
|
0 0x20000 0x3f0000 TEST_DIR/t.vmdk
|
||||||
0x7fff0000 0x20000 0x410000 TEST_DIR/iotest-version3.vmdk
|
0x7fff0000 0x20000 0x410000 TEST_DIR/t.vmdk
|
||||||
0x140000000 0x10000 0x430000 TEST_DIR/iotest-version3.vmdk
|
0x140000000 0x10000 0x430000 TEST_DIR/t.vmdk
|
||||||
Formatting 'TEST_DIR/iotest-version3.IMGFMT', fmt=IMGFMT size=33285996544 subformat=twoGbMaxExtentSparse
|
Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=33285996544 subformat=twoGbMaxExtentSparse
|
||||||
wrote 1024/1024 bytes at offset 65024
|
wrote 1024/1024 bytes at offset 65024
|
||||||
1 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
1 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
wrote 1024/1024 bytes at offset 2147483136
|
wrote 1024/1024 bytes at offset 2147483136
|
||||||
|
@ -2352,10 +2352,10 @@ wrote 1024/1024 bytes at offset 2147483136
|
||||||
wrote 1024/1024 bytes at offset 5368709120
|
wrote 1024/1024 bytes at offset 5368709120
|
||||||
1 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
1 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
Offset Length Mapped to File
|
Offset Length Mapped to File
|
||||||
0 0x20000 0x50000 TEST_DIR/iotest-version3-s001.vmdk
|
0 0x20000 0x50000 TEST_DIR/t-s001.vmdk
|
||||||
0x7fff0000 0x10000 0x70000 TEST_DIR/iotest-version3-s001.vmdk
|
0x7fff0000 0x10000 0x70000 TEST_DIR/t-s001.vmdk
|
||||||
0x80000000 0x10000 0x50000 TEST_DIR/iotest-version3-s002.vmdk
|
0x80000000 0x10000 0x50000 TEST_DIR/t-s002.vmdk
|
||||||
0x140000000 0x10000 0x50000 TEST_DIR/iotest-version3-s003.vmdk
|
0x140000000 0x10000 0x50000 TEST_DIR/t-s003.vmdk
|
||||||
|
|
||||||
=== Testing afl image with a very large capacity ===
|
=== Testing afl image with a very large capacity ===
|
||||||
qemu-img: Can't get image size 'TEST_DIR/afl9.IMGFMT': File too large
|
qemu-img: Can't get image size 'TEST_DIR/afl9.IMGFMT': File too large
|
||||||
|
|
|
@ -92,6 +92,7 @@ else
|
||||||
TEST_IMG=$IMGPROTO:$TEST_DIR/t.$IMGFMT
|
TEST_IMG=$IMGPROTO:$TEST_DIR/t.$IMGFMT
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
ORIG_TEST_IMG="$TEST_IMG"
|
||||||
|
|
||||||
_optstr_add()
|
_optstr_add()
|
||||||
{
|
{
|
||||||
|
@ -228,6 +229,8 @@ _cleanup_test_img()
|
||||||
if [ -n "$SAMPLE_IMG_FILE" ]
|
if [ -n "$SAMPLE_IMG_FILE" ]
|
||||||
then
|
then
|
||||||
rm -f "$TEST_DIR/$SAMPLE_IMG_FILE"
|
rm -f "$TEST_DIR/$SAMPLE_IMG_FILE"
|
||||||
|
SAMPLE_IMG_FILE=
|
||||||
|
TEST_IMG="$ORIG_TEST_IMG"
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue