qemu/tests/qemu-iotests/015
Kevin Wolf bfe8524862 qemu-iotests: Update filter for default cluster size
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>
2012-02-23 10:29:47 +01:00

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