bfe8524862
Until recently, qemu-img create displayed cluster_size=0 for the default cluster size. It is changed to display the real cluster size now, which results in the cluster size not being filtered out any more. If the cluster size is specified explicitly in CLUSTER_SIZE, keep the output, and if using the default, filter it out. This mostly restores the old behaviour of the test cases; test 015 must be fixed to use CLUSTER_SIZE instead of using extra_img_options for it. Signed-off-by: Kevin Wolf <kwolf@redhat.com> Signed-off-by: Christoph Hellwig <hch@lst.de>
86 lines
2.4 KiB
Bash
Executable File
86 lines
2.4 KiB
Bash
Executable File
#!/bin/bash
|
|
#
|
|
# Combined test to grow the refcount table and test snapshots.
|
|
#
|
|
# Copyright (C) 2009 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=kwolf@redhat.com
|
|
|
|
seq=`basename $0`
|
|
echo "QA output created by $seq"
|
|
|
|
here=`pwd`
|
|
tmp=/tmp/$$
|
|
status=1 # failure is the default!
|
|
|
|
_cleanup()
|
|
{
|
|
_cleanup_test_img
|
|
true
|
|
}
|
|
trap "_cleanup; exit \$status" 0 1 2 3 15
|
|
|
|
# get standard environment, filters and checks
|
|
. ./common.rc
|
|
. ./common.filter
|
|
|
|
# actually any format that supports snapshots
|
|
_supported_fmt qcow2
|
|
_supported_proto generic
|
|
_supported_os Linux
|
|
|
|
echo
|
|
echo "creating image"
|
|
|
|
# With 1k clusters a refcount block contains 512 clusters
|
|
# This makes 512k of the image file covered by a refcount block
|
|
# A refcount table that spans one clusters has 128 refcount
|
|
# tables which makes up 64M in the image file.
|
|
#
|
|
# We use a 36M image, so initially we can be sure that only one cluster is used
|
|
# for the refcount table. On the other hand this is big enough to cause a
|
|
# refcount table growth when rewriting the image after creating one snapshot.
|
|
size=36M
|
|
CLUSTER_SIZE=1k
|
|
_make_test_img $size
|
|
|
|
# Create two snapshots which fill the image with two different patterns
|
|
echo "creating first snapshot"
|
|
$QEMU_IO -c "aio_write -P 123 0 $size" $TEST_IMG | _filter_qemu_io
|
|
$QEMU_IMG snapshot -c snap1 $TEST_IMG
|
|
echo "creating second snapshot"
|
|
$QEMU_IO -c "aio_write -P 165 0 $size" $TEST_IMG | _filter_qemu_io
|
|
$QEMU_IMG snapshot -c snap2 $TEST_IMG
|
|
|
|
# Now check the pattern
|
|
echo "checking first snapshot"
|
|
$QEMU_IMG snapshot -a snap1 $TEST_IMG
|
|
$QEMU_IO -c "aio_read -P 123 0 $size" $TEST_IMG | _filter_qemu_io
|
|
echo "checking second snapshot"
|
|
$QEMU_IMG snapshot -a snap2 $TEST_IMG
|
|
$QEMU_IO -c "aio_read -P 165 0 $size" $TEST_IMG | _filter_qemu_io
|
|
|
|
echo
|
|
echo "checking image for errors"
|
|
_check_test_img
|
|
|
|
# success, all done
|
|
echo "*** done"
|
|
rm -f $seq.full
|
|
status=0
|