xemu/tests/qemu-iotests/048
Daniel P. Berrange 06af39ecf9 iotests: skip 048 with qcow which doesn't support resize
Test 048 is designed to verify data preservation during an
image resize. The qcow (v1) format impl has never supported
resize so always fails.

Reviewed-by: Max Reitz <mreitz@redhat.com>
Reviewed-by: Alberto Garcia <berto@igalia.com>
Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
Message-id: 20170623162419.26068-7-berrange@redhat.com
Signed-off-by: Max Reitz <mreitz@redhat.com>
2017-07-11 17:44:55 +02:00

98 lines
2.3 KiB
Bash
Executable File

#!/bin/bash
##
## qemu-img compare test
##
##
## Copyright (C) 2013 Red Hat, Inc.
##
## 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=mrezanin@redhat.com
seq=`basename $0`
echo "QA output created by $seq"
status=1 # failure is the default!
_cleanup()
{
echo "Cleanup"
_cleanup_test_img
rm "${TEST_IMG_FILE2}"
}
trap "_cleanup; exit \$status" 0 1 2 3 15
_compare()
{
$QEMU_IMG compare $QEMU_IMG_EXTRA_ARGS "$@" "$TEST_IMG" "${TEST_IMG2}"
echo $?
}
# get standard environment, filters and checks
. ./common.rc
. ./common.filter
. ./common.pattern
_supported_fmt raw qcow2 qed luks
_supported_proto file
_supported_os Linux
# Remove once all tests are fixed to use TEST_IMG_FILE
# correctly and common.rc sets it unconditionally
test -z "$TEST_IMG_FILE" && TEST_IMG_FILE=$TEST_IMG
# Setup test basic parameters
TEST_IMG2=$TEST_IMG.2
TEST_IMG_FILE2=$TEST_IMG_FILE.2
CLUSTER_SIZE=4096
size=128M
_make_test_img $size
io_pattern write 524288 $CLUSTER_SIZE $CLUSTER_SIZE 4 45
# Compare identical images
cp "$TEST_IMG_FILE" "${TEST_IMG_FILE2}"
_compare
_compare -q
# Compare images with different size
if [ "$IMGOPTSSYNTAX" = "true" ]; then
$QEMU_IMG resize $QEMU_IMG_EXTRA_ARGS "$TEST_IMG" +32M
else
$QEMU_IMG resize -f $IMGFMT "$TEST_IMG" +32M
fi
# Ensure extended space is zero-initialized
$QEMU_IO "$TEST_IMG" -c "write -z $size 32M" | _filter_qemu_io
_compare
_compare -s
# Compare images with different content
io_pattern write 1228800 $CLUSTER_SIZE 0 1 67
_compare
io_pattern write 0 $CLUSTER_SIZE 0 1 123
_compare
# Test unaligned case of mismatch offsets in allocated clusters
_make_test_img $size
io_pattern write 0 512 0 1 100
cp "$TEST_IMG_FILE" "$TEST_IMG_FILE2"
io_pattern write 512 512 0 1 101
_compare
# Cleanup
status=0