mirror of https://github.com/xemu-project/xemu.git
qemu-iotests: test bdrv_truncate
This patch adds an image resize grow test to ensure that existing data is not lost during grow and new space is zeroed. Signed-off-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com> Signed-off-by: Christoph Hellwig <hch@lst.de>
This commit is contained in:
parent
908eaf6802
commit
596f4f961c
|
@ -0,0 +1,77 @@
|
||||||
|
#!/bin/bash
|
||||||
|
#
|
||||||
|
# Resizing images
|
||||||
|
#
|
||||||
|
# Copyright (C) 2010 IBM, Corp.
|
||||||
|
#
|
||||||
|
# This program is free software; you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation; either version 2 of the License, or
|
||||||
|
# (at your option) any later version.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
#
|
||||||
|
|
||||||
|
# creator
|
||||||
|
owner=stefanha@linux.vnet.ibm.com
|
||||||
|
|
||||||
|
seq=`basename $0`
|
||||||
|
echo "QA output created by $seq"
|
||||||
|
|
||||||
|
here=`pwd`
|
||||||
|
tmp=/tmp/$$
|
||||||
|
status=1 # failure is the default!
|
||||||
|
|
||||||
|
_cleanup()
|
||||||
|
{
|
||||||
|
_cleanup_test_img
|
||||||
|
}
|
||||||
|
trap "_cleanup; exit \$status" 0 1 2 3 15
|
||||||
|
|
||||||
|
# get standard environment, filters and checks
|
||||||
|
. ./common.rc
|
||||||
|
. ./common.filter
|
||||||
|
. ./common.pattern
|
||||||
|
|
||||||
|
_supported_fmt raw qcow2
|
||||||
|
_supported_os Linux
|
||||||
|
|
||||||
|
echo "=== Creating image"
|
||||||
|
echo
|
||||||
|
small_size=$((128 * 1024 * 1024))
|
||||||
|
big_size=$((384 * 1024 * 1024))
|
||||||
|
_make_test_img $small_size
|
||||||
|
|
||||||
|
echo
|
||||||
|
echo "=== Writing whole image"
|
||||||
|
io_pattern write 0 $small_size 0 1 0xc5
|
||||||
|
_check_test_img
|
||||||
|
|
||||||
|
echo
|
||||||
|
echo "=== Resizing image"
|
||||||
|
$QEMU_IO $TEST_IMG <<EOF
|
||||||
|
length
|
||||||
|
truncate $big_size
|
||||||
|
length
|
||||||
|
EOF
|
||||||
|
_check_test_img
|
||||||
|
|
||||||
|
echo
|
||||||
|
echo "=== Verifying image size after reopen"
|
||||||
|
$QEMU_IO -c "length" $TEST_IMG
|
||||||
|
|
||||||
|
echo
|
||||||
|
echo "=== Verifying resized image"
|
||||||
|
io_pattern read 0 $small_size 0 1 0xc5
|
||||||
|
io_pattern read $small_size $(($big_size - $small_size)) 0 1 0
|
||||||
|
|
||||||
|
# success, all done
|
||||||
|
echo "*** done"
|
||||||
|
rm -f $seq.full
|
||||||
|
status=0
|
|
@ -0,0 +1,27 @@
|
||||||
|
QA output created by 025
|
||||||
|
=== Creating image
|
||||||
|
|
||||||
|
Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=134217728
|
||||||
|
|
||||||
|
=== Writing whole image
|
||||||
|
=== IO: pattern 0xc5
|
||||||
|
qemu-io> wrote 134217728/134217728 bytes at offset 0
|
||||||
|
128 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
|
qemu-io> No errors were found on the image.
|
||||||
|
|
||||||
|
=== Resizing image
|
||||||
|
qemu-io> 128 MiB
|
||||||
|
qemu-io> qemu-io> 384 MiB
|
||||||
|
qemu-io> No errors were found on the image.
|
||||||
|
|
||||||
|
=== Verifying image size after reopen
|
||||||
|
384 MiB
|
||||||
|
|
||||||
|
=== Verifying resized image
|
||||||
|
=== IO: pattern 0xc5
|
||||||
|
qemu-io> read 134217728/134217728 bytes at offset 0
|
||||||
|
128 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
|
qemu-io> === IO: pattern 0
|
||||||
|
qemu-io> read 268435456/268435456 bytes at offset 134217728
|
||||||
|
256 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
|
qemu-io> *** done
|
|
@ -31,3 +31,4 @@
|
||||||
022 rw snapshot auto
|
022 rw snapshot auto
|
||||||
023 rw auto
|
023 rw auto
|
||||||
024 rw backing auto
|
024 rw backing auto
|
||||||
|
025 rw auto
|
||||||
|
|
Loading…
Reference in New Issue